caseblocks_api 0.2.12 → 0.2.13

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.
data/README.rdoc CHANGED
@@ -8,7 +8,22 @@ Create a new Case:
8
8
 
9
9
  `caseblocks.create_case({:title => "This is a Case!", :due_at => "tomorrow")`
10
10
 
11
- Description goes here.
11
+ Searching for cases:
12
+
13
+ `caseblocks.search('CaseTypeName', {telephone_number: '12334', given_name: 'Smith'})`
14
+
15
+ Searching with pagination:
16
+
17
+ `caseblocks.search('CaseTypeName', {given_name: 'Smith'}, page: 0, page_size: 10)`
18
+
19
+ Searching with sorting:
20
+
21
+ `caseblocks.search('CaseTypeName', {given_name: 'Smith'}, sort_by: [{field: 'created_at', direction: 'desc'}])`
22
+ `caseblocks.search('CaseTypeName', {given_name: 'Smith'}, sort_by: [{field: 'created_at', direction: 'asc'}])`
23
+
24
+ Searching for a reduced response:
25
+
26
+ `caseblocks.search('CaseTypeName', {given_name: 'Smith'}, fields: ['id', 'given_name', ''created_at'}])`
12
27
 
13
28
  == Contributing to caseblocks_api
14
29
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.12
1
+ 0.2.13
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "caseblocks_api"
8
- s.version = "0.2.12"
8
+ s.version = "0.2.13"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Mark Provan"]
12
- s.date = "2013-02-07"
12
+ s.date = "2013-02-19"
13
13
  s.email = "development@emergeadapt.com"
14
14
  s.extra_rdoc_files = [
15
15
  "LICENSE.txt",
@@ -29,13 +29,13 @@ Gem::Specification.new do |s|
29
29
  "lib/caseblocks_api.rb",
30
30
  "lib/caseblocks_api/authentication_exception.rb",
31
31
  "lib/caseblocks_api/bucket_results.rb",
32
- "lib/caseblocks_api/finder.rb",
33
32
  "lib/caseblocks_api/get_cases.rb",
33
+ "lib/caseblocks_api/searcher.rb",
34
34
  "lib/caseblocks_api/update_case.rb",
35
35
  "spec/caseblocks_api_spec.rb",
36
36
  "spec/lib/caseblocks_api/bucket_results_spec.rb",
37
- "spec/lib/caseblocks_api/find_case_by_property_spec.rb",
38
37
  "spec/lib/caseblocks_api/get_cases_spec.rb",
38
+ "spec/lib/caseblocks_api/searcher_spec.rb",
39
39
  "spec/lib/caseblocks_api/update_case_spec.rb",
40
40
  "spec/spec_helper.rb",
41
41
  "spec/support/fake_http_party.rb"
@@ -5,7 +5,7 @@ require "caseblocks_api/authentication_exception"
5
5
 
6
6
  module CaseblocksAPI
7
7
  require 'caseblocks_api/bucket_results'
8
- require 'caseblocks_api/finder'
8
+ require 'caseblocks_api/searcher'
9
9
  require 'caseblocks_api/update_case'
10
10
  require 'caseblocks_api/get_cases'
11
11
 
@@ -0,0 +1,21 @@
1
+ require 'caseblocks_api'
2
+ require 'active_support/inflector'
3
+
4
+ module CaseblocksAPI
5
+ class Searcher
6
+ def initialize(client)
7
+ @client = client
8
+ end
9
+
10
+ def execute_search(case_type, criteria, options={})
11
+ body = {properties: criteria}.merge(options).to_json
12
+ @client.post("/case_blocks/#{case_type}/search", :body => body)
13
+ end
14
+ end
15
+
16
+ class Client
17
+ def search(case_type, criteria, options={})
18
+ Searcher.new(self.class).execute_search(case_type, criteria, options)
19
+ end
20
+ end
21
+ end
@@ -1,7 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe CaseblocksAPI::GetCases do
4
-
5
4
  it "should call the API with a list of ids" do
6
5
  ids = ['1', '2']
7
6
  client = double('client')
@@ -0,0 +1,33 @@
1
+ require 'spec_helper'
2
+
3
+ describe CaseblocksAPI::Searcher do
4
+
5
+ let(:client) { double('client') }
6
+ let(:finder) { CaseblocksAPI::Searcher.new(client) }
7
+ let(:case_type) { 'the_case_type' }
8
+
9
+ context "search with case type alone and empty properties" do
10
+ it "should pass them onto a POST request" do
11
+ expected_body = {body: {properties: {}}.to_json}
12
+ client.should_receive(:post).with("/case_blocks/#{case_type}/search", expected_body)
13
+ finder.execute_search(case_type, {})
14
+ end
15
+ end
16
+
17
+ context "search with case type with properties" do
18
+ it "should pass them onto a POST request" do
19
+ expected_body = {body: {properties: {order_number: '12334', client_surname: 'Smith'}}.to_json}
20
+ client.should_receive(:post).with("/case_blocks/#{case_type}/search", expected_body)
21
+ finder.execute_search(case_type, {order_number: '12334', client_surname: 'Smith'})
22
+ end
23
+ end
24
+
25
+ context "search with case type with properties and options" do
26
+ it "should pass them onto a POST request" do
27
+ expected_body = {body: {properties: {order_number: '12334', client_surname: 'Smith'}, page: 0, page_size: 10}.to_json}
28
+ client.should_receive(:post).with("/case_blocks/#{case_type}/search", expected_body)
29
+ finder.execute_search(case_type, {order_number: '12334', client_surname: 'Smith'}, page: 0, page_size: 10)
30
+ end
31
+ end
32
+
33
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: caseblocks_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.12
4
+ version: 0.2.13
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-02-07 00:00:00.000000000 Z
12
+ date: 2013-02-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: httparty
@@ -192,13 +192,13 @@ files:
192
192
  - lib/caseblocks_api.rb
193
193
  - lib/caseblocks_api/authentication_exception.rb
194
194
  - lib/caseblocks_api/bucket_results.rb
195
- - lib/caseblocks_api/finder.rb
196
195
  - lib/caseblocks_api/get_cases.rb
196
+ - lib/caseblocks_api/searcher.rb
197
197
  - lib/caseblocks_api/update_case.rb
198
198
  - spec/caseblocks_api_spec.rb
199
199
  - spec/lib/caseblocks_api/bucket_results_spec.rb
200
- - spec/lib/caseblocks_api/find_case_by_property_spec.rb
201
200
  - spec/lib/caseblocks_api/get_cases_spec.rb
201
+ - spec/lib/caseblocks_api/searcher_spec.rb
202
202
  - spec/lib/caseblocks_api/update_case_spec.rb
203
203
  - spec/spec_helper.rb
204
204
  - spec/support/fake_http_party.rb
@@ -217,7 +217,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
217
217
  version: '0'
218
218
  segments:
219
219
  - 0
220
- hash: -453322463455403595
220
+ hash: 2296649421097839558
221
221
  required_rubygems_version: !ruby/object:Gem::Requirement
222
222
  none: false
223
223
  requirements:
@@ -1,28 +0,0 @@
1
- require 'caseblocks_api'
2
- require 'active_support/inflector'
3
-
4
- module CaseblocksAPI
5
- class Finder
6
- def initialize(client)
7
- @client = client
8
- end
9
-
10
- def execute_single(case_type, property_name, value, page, page_size)
11
- @client.get("/case_blocks/#{case_type}/search", {query: {search: true, property: property_name, value: value, page: page, page_size: page_size}})
12
- end
13
-
14
- def execute_multiple(case_type, properties, page, page_size)
15
- @client.post("/case_blocks/#{case_type}/search", :body => {search: true, properties: properties, page: page, page_size: page_size }.to_json)
16
- end
17
- end
18
-
19
- class Client
20
- def find_by_property(case_type, property_name, value, page, page_size)
21
- Finder.new(self.class).execute_single(case_type, property_name, value, page, page_size)
22
- end
23
-
24
- def find_by_properties(case_type, properties, page, page_size)
25
- Finder.new(self.class).execute_multiple(case_type, properties, page, page_size)
26
- end
27
- end
28
- end
@@ -1,31 +0,0 @@
1
- require 'spec_helper'
2
-
3
-
4
- describe CaseblocksAPI::Finder do
5
-
6
- Given (:client) { FakeHttpParty.new }
7
- Given (:case_type) { 'the_case_type' }
8
-
9
- context "find by a single property" do
10
- Given (:property_name) { "order_number" }
11
- Given (:value) { "2000391" }
12
- Given (:page) { "0" }
13
- Given (:page_size) { "100" }
14
- Given (:find_by_property) { CaseblocksAPI::Finder.new(client) }
15
- When (:result) { find_by_property.execute_single(case_type, property_name, value, page, page_size) }
16
- Then { expect(result).to eql client.result}
17
- Then { expect(client.requested_url).to eql "/case_blocks/#{case_type}/search" }
18
- Then { expect(client.params).to eql({query: {search: true, property: property_name, value: value, page: page, page_size: page_size}}) }
19
- end
20
-
21
- context "finding by multiple properties" do
22
- Given (:properties) { {order_number: '12334', client_surname: 'Smith'} }
23
- Given (:page) { "0" }
24
- Given (:page_size) { "100" }
25
- Given (:find_by_properties) { CaseblocksAPI::Finder.new(client) }
26
- When (:result) { find_by_properties.execute_multiple(case_type, properties, page, page_size) }
27
- Then { expect(client.requested_url).to eql "/case_blocks/#{case_type}/search" }
28
- Then { expect(client.params).to eql({body: {search: true, properties: properties, page: page, page_size: page_size}.to_json}) }
29
- end
30
-
31
- end