caren-api 0.8.0 → 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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.8.0
1
+ 0.9.0
data/caren-api.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "caren-api"
8
- s.version = "0.8.0"
8
+ s.version = "0.9.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Andre Foeken"]
12
- s.date = "2012-10-04"
12
+ s.date = "2012-10-05"
13
13
  s.description = "You can use this gem as inspiration of the base of your connections with Caren."
14
14
  s.email = "andre.foeken@nedap.com"
15
15
  s.extra_rdoc_files = [
@@ -32,6 +32,7 @@ Gem::Specification.new do |s|
32
32
  "lib/caren/base.rb",
33
33
  "lib/caren/care_provider.rb",
34
34
  "lib/caren/caren.rb",
35
+ "lib/caren/chat_session.rb",
35
36
  "lib/caren/chat_session_message.rb",
36
37
  "lib/caren/client.rb",
37
38
  "lib/caren/employee.rb",
@@ -54,6 +55,7 @@ Gem::Specification.new do |s|
54
55
  "spec/care_provider_spec.rb",
55
56
  "spec/caren_spec.rb",
56
57
  "spec/chat_session_message_spec.rb",
58
+ "spec/chat_session_spec.rb",
57
59
  "spec/client_spec.rb",
58
60
  "spec/employee_spec.rb",
59
61
  "spec/event_slot_container_spec.rb",
@@ -75,8 +77,10 @@ Gem::Specification.new do |s|
75
77
  "spec/fixtures/caren_care_provider_validation.xml",
76
78
  "spec/fixtures/caren_care_providers.xml",
77
79
  "spec/fixtures/caren_care_providers_search.xml",
80
+ "spec/fixtures/caren_chat_session.xml",
78
81
  "spec/fixtures/caren_chat_session_message.xml",
79
82
  "spec/fixtures/caren_chat_session_messages.xml",
83
+ "spec/fixtures/caren_chat_sessions.xml",
80
84
  "spec/fixtures/caren_event.xml",
81
85
  "spec/fixtures/caren_events.xml",
82
86
  "spec/fixtures/caren_external_message.xml",
data/lib/caren/base.rb CHANGED
@@ -37,7 +37,7 @@ class Caren::Base
37
37
  def self.node_root
38
38
  :object
39
39
  end
40
-
40
+
41
41
  # Override this for instance specific node roots
42
42
  def node_root
43
43
  nil
@@ -0,0 +1,59 @@
1
+ class Caren::ChatSession < Caren::Base
2
+
3
+ def self.keys
4
+ [ :id, # Integer (Caren message id)
5
+ :person_name, # String (Andre Foeken)
6
+ :person_id, # Integer (Caren person id, if applicable)
7
+ :external_person_id, # String (Your person id)
8
+ :care_provider_id, # Integer (Caren CP id)
9
+ :comment, # Text
10
+ :external_id, # String (Your message id)
11
+ :billable_id, # String (Caren billable id)
12
+ :event_id, # String (Caren event id)
13
+ :starts_at, # DateTime
14
+ :ends_at, # DateTime
15
+ :duration, # DateTime
16
+ :subject_id # Integer (Caren person id)
17
+ ] + super
18
+ end
19
+
20
+ def self.all subject_id, session
21
+ from_xml session.get(self.resource_url(subject_id))
22
+ end
23
+
24
+ def self.find subject_id, id, session
25
+ from_xml session.get(self.resource_url(subject_id,id))
26
+ end
27
+
28
+ def update session
29
+ self.class.from_xml session.put self.class.resource_url(self.subject_id,self.id), self.to_xml
30
+ end
31
+
32
+ def self.array_root
33
+ :chat_sessions
34
+ end
35
+
36
+ def self.node_root
37
+ :chat_session
38
+ end
39
+
40
+ def as_xml
41
+ { :starts_at => self.starts_at,
42
+ :ends_at => self.ends_at }
43
+ end
44
+
45
+ def self.resource_location
46
+ "/api/pro/people/%i/chat_sessions"
47
+ end
48
+
49
+ private
50
+
51
+ def resource_url subject_id, id=nil
52
+ self.class.resource_url(subject_id,id)
53
+ end
54
+
55
+ def self.resource_url subject_id, id=nil
56
+ "#{self.resource_location % subject_id}#{id}"
57
+ end
58
+
59
+ end
data/lib/caren-api.rb CHANGED
@@ -16,6 +16,7 @@ require "caren/client"
16
16
  require "caren/employee"
17
17
  require "caren/care_provider"
18
18
  require "caren/external_message"
19
+ require "caren/chat_session"
19
20
  require "caren/chat_session_message"
20
21
  require "caren/link"
21
22
  require "caren/store/store"
@@ -26,7 +26,7 @@ describe "ChatSessionMessage", "converting to xml" do
26
26
 
27
27
  end
28
28
 
29
- describe "ExternalMessage", "REST methods" do
29
+ describe "ChatSessionMessage", "REST methods" do
30
30
 
31
31
  before do
32
32
  message = File.read("spec/fixtures/caren_chat_session_message.xml")
@@ -0,0 +1,50 @@
1
+ require 'spec_helper'
2
+
3
+ describe "ChatSession", "converting to xml" do
4
+
5
+ before do
6
+ @chat_session_a = Caren::ChatSessionMessage.new( :starts_at => DateTime.now, :ends_at => 2.hours.from_now )
7
+ @chat_session_b = Caren::ChatSessionMessage.new( :starts_at => DateTime.now, :ends_at => 3.hours.from_now )
8
+ end
9
+
10
+ it "should be able to convert a chat session messages to valid xml" do
11
+ @chat_session_a.should convert_to_valid_caren_xml
12
+ end
13
+
14
+ it "should be able to convert an array of chat session messages to valid xml" do
15
+ [@chat_session_a,@chat_session_b].should convert_to_valid_caren_array_xml
16
+ end
17
+
18
+ end
19
+
20
+ describe "ChatSession", "REST methods" do
21
+
22
+ before do
23
+ session = File.read("spec/fixtures/caren_chat_session.xml")
24
+ sessions = File.read("spec/fixtures/caren_chat_sessions.xml")
25
+
26
+ sessions_url = Caren::Api.session.url_for( Caren::ChatSession.resource_url(1) )
27
+ session_url = Caren::Api.session.url_for( Caren::ChatSession.resource_url(1,1) )
28
+ timestamp = DateTime.now.to_i
29
+
30
+ FakeWeb.register_uri(:get, sessions_url, :body => sessions, :signature => Caren::Api.session.sign(timestamp,nil,sessions), :timestamp => timestamp )
31
+ FakeWeb.register_uri(:get, session_url, :body => session, :signature => Caren::Api.session.sign(timestamp,nil,session), :timestamp => timestamp )
32
+ FakeWeb.register_uri(:put, session_url, :status => 204, :signature => Caren::Api.session.sign(timestamp), :timestamp => timestamp )
33
+ end
34
+
35
+ it "should be able to find all chat sessions" do
36
+ sessions = Caren::ChatSession.all 1, Caren::Api.session
37
+ sessions.should have(2).things
38
+ sessions.first.comment.should == "Test"
39
+ end
40
+
41
+ it "should be able to find one chat session" do
42
+ sessions = Caren::ChatSession.find 1, 1, Caren::Api.session
43
+ sessions.comment.should == "Test"
44
+ end
45
+
46
+ it "should be able to update a chat session" do
47
+ lambda{ Caren::ChatSession.new( :starts_at => DateTime.now, :id => 1, :subject_id => 1 ).update(Caren::Api.session) }.should_not raise_error
48
+ end
49
+
50
+ end
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <chat-session>
3
+ <billable-id type="integer"></billable-id>
4
+ <care-provider-id type="integer"></care-provider-id>
5
+ <comment>Test</comment>
6
+ <created-at type="datetime"></created-at>
7
+ <duration type="integer"></duration>
8
+ <ends-at type="datetime"></ends-at>
9
+ <external-id>1</external-id>
10
+ <external-person-id></external-person-id>
11
+ <id type="integer"></id>
12
+ <person-id type="integer"></person-id>
13
+ <person-name></person-name>
14
+ <starts-at type="datetime"></starts-at>
15
+ <subject-id type="integer"></subject-id>
16
+ <updated-at type="datetime"></updated-at>
17
+ <event-id>1</event-id>
18
+ </chat-session>
@@ -0,0 +1,37 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <chat-sessions type="array">
3
+ <chat-session>
4
+ <billable-id type="integer"></billable-id>
5
+ <care-provider-id type="integer"></care-provider-id>
6
+ <comment>Test</comment>
7
+ <created-at type="datetime"></created-at>
8
+ <duration type="integer"></duration>
9
+ <ends-at type="datetime"></ends-at>
10
+ <external-id>1</external-id>
11
+ <external-person-id></external-person-id>
12
+ <id type="integer"></id>
13
+ <person-id type="integer"></person-id>
14
+ <person-name></person-name>
15
+ <starts-at type="datetime"></starts-at>
16
+ <subject-id type="integer"></subject-id>
17
+ <updated-at type="datetime"></updated-at>
18
+ <event-id>1</event-id>
19
+ </chat-session>
20
+ <chat-session>
21
+ <billable-id type="integer"></billable-id>
22
+ <care-provider-id type="integer"></care-provider-id>
23
+ <comment>Test</comment>
24
+ <created-at type="datetime"></created-at>
25
+ <duration type="integer"></duration>
26
+ <ends-at type="datetime"></ends-at>
27
+ <external-id>2</external-id>
28
+ <external-person-id></external-person-id>
29
+ <id type="integer"></id>
30
+ <person-id type="integer"></person-id>
31
+ <person-name></person-name>
32
+ <starts-at type="datetime"></starts-at>
33
+ <subject-id type="integer"></subject-id>
34
+ <updated-at type="datetime"></updated-at>
35
+ <event-id>1</event-id>
36
+ </chat-session>
37
+ </chat-sessions>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: caren-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.9.0
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: 2012-10-04 00:00:00.000000000 Z
12
+ date: 2012-10-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: i18n
@@ -179,6 +179,7 @@ files:
179
179
  - lib/caren/base.rb
180
180
  - lib/caren/care_provider.rb
181
181
  - lib/caren/caren.rb
182
+ - lib/caren/chat_session.rb
182
183
  - lib/caren/chat_session_message.rb
183
184
  - lib/caren/client.rb
184
185
  - lib/caren/employee.rb
@@ -201,6 +202,7 @@ files:
201
202
  - spec/care_provider_spec.rb
202
203
  - spec/caren_spec.rb
203
204
  - spec/chat_session_message_spec.rb
205
+ - spec/chat_session_spec.rb
204
206
  - spec/client_spec.rb
205
207
  - spec/employee_spec.rb
206
208
  - spec/event_slot_container_spec.rb
@@ -222,8 +224,10 @@ files:
222
224
  - spec/fixtures/caren_care_provider_validation.xml
223
225
  - spec/fixtures/caren_care_providers.xml
224
226
  - spec/fixtures/caren_care_providers_search.xml
227
+ - spec/fixtures/caren_chat_session.xml
225
228
  - spec/fixtures/caren_chat_session_message.xml
226
229
  - spec/fixtures/caren_chat_session_messages.xml
230
+ - spec/fixtures/caren_chat_sessions.xml
227
231
  - spec/fixtures/caren_event.xml
228
232
  - spec/fixtures/caren_events.xml
229
233
  - spec/fixtures/caren_external_message.xml
@@ -265,7 +269,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
265
269
  version: '0'
266
270
  segments:
267
271
  - 0
268
- hash: 127445655277471062
272
+ hash: 3668323460698022586
269
273
  required_rubygems_version: !ruby/object:Gem::Requirement
270
274
  none: false
271
275
  requirements: