cortex-client 0.8.2 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1e3d73ec9aa82a9f0aa4931fe30731c32537f9f4
4
- data.tar.gz: aa513546927675339846803412df7b0b9cf9f76c
3
+ metadata.gz: 0ae9160a1f77ff75bbdd94a1dd24c2158dd24dd2
4
+ data.tar.gz: 32696a70d36bfb41f7b3769ef6d8c86f71ad7c1f
5
5
  SHA512:
6
- metadata.gz: 949ddcb080dfd027f6367ca6d44553ee79e81c042222b6eff8d81ae4df88ea5965493d0afbe11623fa9308d50e17d0fd3132118fc0ec338091bf346e6d2100fd
7
- data.tar.gz: 2a118370b5fa03731bd4dcd1b89a9e2f161240559f2ad5ec40858098436788d7056d041695ab8570d6209640fd4cce1d66d38d66dacfb625e5ef196d05fc0626
6
+ metadata.gz: a6bd08c5ae793a6aaac1e5bb8c320164cd2c776a1515a76f7860b305c7daacf59fc30a175f8d2383f2fa3bd99dcb90777fe4aee13408114adfae60aebcffc6fd
7
+ data.tar.gz: 4342fc1a3198dda90259324c55b0f7bc821300eb9f7a1f98e8d461b909acc6e8e8949ba9ca13c0545afba720ae01ad617832c16c230600a488bc8629061a0595
@@ -3,7 +3,7 @@ Version History
3
3
  * All Version bumps are required to update this file as well!!
4
4
  ----
5
5
 
6
- * 0.8.2 - Revert ETag caching flow implementation
6
+ * 0.9.0 - Add total pages, next page, and prev page to result object
7
7
  * 0.8.0 - Revert ETag caching flow implementation
8
8
  * 0.7.0 - Implement ability to specify OAuth scopes
9
9
  * 0.6.1 - Update various dependencies
data/README.md CHANGED
@@ -22,13 +22,17 @@ Alternatively, cortex-client will handle OAuth2 authentication for you:
22
22
  ```ruby
23
23
  require 'cortex-client'
24
24
 
25
- client = Cortex::Client.new(key: 'my-app-id', secret: 'secrey-key-ssh', base_url: 'base_url', scopes: 'view:posts view:media')
25
+ client = Cortex::Client.new(key: 'my-app-id', secret: 'my-app-secret', base_url: 'base_url', scopes: 'view:posts view:media')
26
26
 
27
27
  client.posts.query().each do |post|
28
28
  puts post
29
29
  end
30
30
  ```
31
31
 
32
+ ## Authorization
33
+
34
+ For more information about `scopes` and how to obtain an application `key` and `secret`, check [Cortex's authorization documentation](https://github.com/cbdr/cortex#authorization).
35
+
32
36
  ## Result object
33
37
 
34
38
  Cortex::Client will return a Cortex::Result object. The following methods are available:
@@ -1,13 +1,12 @@
1
1
  require 'hashie'
2
2
  module Cortex
3
3
  class Result
4
- attr_reader :raw_headers, :contents, :total_items, :page, :per_page, :errors, :range_start, :range_end, :range, :status
4
+ attr_reader :raw_headers, :contents, :total_items, :page, :per_page, :errors, :range_start, :range_end, :range, :status, :total_pages, :next_page, :prev_page
5
5
 
6
6
  def initialize(body, headers, status)
7
7
  @contents = parse(body)
8
8
  @raw_headers = headers
9
9
  @status = status
10
- @total_items = headers['x-total-items'] unless headers['x-total-items'].nil?
11
10
  parse_headers(headers)
12
11
  @errors = find_errors
13
12
  end
@@ -20,15 +19,16 @@ module Cortex
20
19
 
21
20
  def parse_headers(headers)
22
21
  if headers['X-Total']
22
+ @total_items = headers['X-Total']
23
23
  @count = headers['X-Total'].to_i
24
- end
25
- if headers['X-Total']
26
24
  @page = headers['X-Page'].to_i
27
25
  @per_page = headers['X-Per-Page'].to_i
28
26
  @range_start = (@page-1) * @per_page
29
27
  @range_end = @per_page * @page - 1
30
28
  @range = "#{@range_start}-#{@range_end}"
31
-
29
+ @total_pages = headers['X-Total-Pages']
30
+ @next_page = headers['X-Next-Page']
31
+ @prev_page = headers['X-Prev-Page']
32
32
  end
33
33
  end
34
34
 
@@ -1,3 +1,3 @@
1
1
  module Cortex
2
- VERSION = '0.8.2'
2
+ VERSION = '0.9.0'
3
3
  end
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  RSpec.describe Cortex::Result do
4
- let(:result) { Cortex::Result.new('body', {'X-Total' => 10, 'X-Page' => "1", "X-Per-Page" => "10"}, 200) }
4
+ let(:result) { Cortex::Result.new('body', { 'X-Total' => '40', 'X-Page' => "1", 'X-Per-Page' => "10", 'X-Total-Pages' => '4', 'X-Next-Page' => '2', 'X-Prev-Page' => nil }, 200) }
5
5
  let(:failed) { Cortex::Result.new('failed body', {}, 403) }
6
6
 
7
7
  it 'should construct' do
@@ -31,7 +31,7 @@ RSpec.describe Cortex::Result do
31
31
  end
32
32
 
33
33
  it 'should expose the headers' do
34
- expect(result.raw_headers).to eq({ 'X-Total' => 10, 'X-Page' => "1", "X-Per-Page" => "10" })
34
+ expect(result.raw_headers).to eq({ 'X-Total' => '40', 'X-Page' => "1", 'X-Per-Page' => "10", 'X-Total-Pages' => '4', 'X-Next-Page' => '2', 'X-Prev-Page' => nil })
35
35
  expect(failed.raw_headers).to eq({})
36
36
  end
37
37
 
@@ -40,4 +40,28 @@ RSpec.describe Cortex::Result do
40
40
  expect(failed.status).to eq 403
41
41
  end
42
42
 
43
+ describe '#total_pages' do
44
+ it 'returns the value of "X-Total-Pages"' do
45
+ expect(result.total_pages).to eq '4'
46
+ end
47
+ end
48
+
49
+ describe '#next_page' do
50
+ it 'returns_the_value of "X-Next-Page"' do
51
+ expect(result.next_page).to eq '2'
52
+ end
53
+ end
54
+
55
+ describe '#prev_page' do
56
+ it 'returns nil when on the first page' do
57
+ expect(result.prev_page).to be_nil
58
+ end
59
+
60
+ context 'on the 2nd page' do
61
+ let(:result) { Cortex::Result.new('body', { 'X-Total' => '40', 'X-Page' => "2", 'X-Per-Page' => "10", 'X-Total-Pages' => '4', 'X-Next-Page' => '3', 'X-Prev-Page' => '1' }, 200) }
62
+ it 'returns the value if "X-Prev-Page"' do
63
+ expect(result.prev_page).to eq '1'
64
+ end
65
+ end
66
+ end
43
67
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cortex-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.2
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - CB Content Enablement
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-13 00:00:00.000000000 Z
11
+ date: 2016-12-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -173,7 +173,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
173
173
  version: '0'
174
174
  requirements: []
175
175
  rubyforge_project:
176
- rubygems_version: 2.5.2
176
+ rubygems_version: 2.5.1
177
177
  signing_key:
178
178
  specification_version: 4
179
179
  summary: Cortex API Client