caren-api 0.7.0 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.7.0
1
+ 0.8.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.7.0"
8
+ s.version = "0.8.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-09-11"
12
+ s.date = "2012-10-04"
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_message.rb",
35
36
  "lib/caren/client.rb",
36
37
  "lib/caren/employee.rb",
37
38
  "lib/caren/error.rb",
@@ -52,6 +53,7 @@ Gem::Specification.new do |s|
52
53
  "spec/.DS_Store",
53
54
  "spec/care_provider_spec.rb",
54
55
  "spec/caren_spec.rb",
56
+ "spec/chat_session_message_spec.rb",
55
57
  "spec/client_spec.rb",
56
58
  "spec/employee_spec.rb",
57
59
  "spec/event_slot_container_spec.rb",
@@ -73,6 +75,8 @@ Gem::Specification.new do |s|
73
75
  "spec/fixtures/caren_care_provider_validation.xml",
74
76
  "spec/fixtures/caren_care_providers.xml",
75
77
  "spec/fixtures/caren_care_providers_search.xml",
78
+ "spec/fixtures/caren_chat_session_message.xml",
79
+ "spec/fixtures/caren_chat_session_messages.xml",
76
80
  "spec/fixtures/caren_event.xml",
77
81
  "spec/fixtures/caren_events.xml",
78
82
  "spec/fixtures/caren_external_message.xml",
data/lib/caren/caren.rb CHANGED
@@ -120,6 +120,7 @@ module Caren
120
120
  def self.supported_incoming_objects
121
121
  { :links => Caren::Link,
122
122
  :external_messages => Caren::ExternalMessage,
123
+ :chat_session_messages => Caren::ChatSessionMessage,
123
124
  :care_providers => Caren::CareProvider,
124
125
  :billable_categories => Caren::Store::BillableCategory,
125
126
  :billables => Caren::Store::Billable,
@@ -0,0 +1,59 @@
1
+ class Caren::ChatSessionMessage < 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)
7
+ :external_person_id, # String (Your person id)
8
+ :care_provider_id, # Integer (Caren CP id)
9
+ :body, # Text
10
+ :external_id, # String (Your message id)
11
+ :in_reply_to_id, # Integer (Caren message id)
12
+ :in_reply_to_type, # The type of message this is a reply to. (Always ChatSessionMessage if reply is set)
13
+ :subject_id # Integer (Caren person id)
14
+ ] + super
15
+ end
16
+
17
+ def self.all subject_id, session
18
+ from_xml session.get(self.resource_url(subject_id))
19
+ end
20
+
21
+ def self.find subject_id, id, session
22
+ from_xml session.get(self.resource_url(subject_id,id))
23
+ end
24
+
25
+ def create session
26
+ self.class.from_xml session.post self.class.resource_url(self.subject_id), self.to_xml
27
+ end
28
+
29
+ def self.array_root
30
+ :chat_session_messages
31
+ end
32
+
33
+ def self.node_root
34
+ :chat_session_message
35
+ end
36
+
37
+ def as_xml
38
+ { :person_name => self.person_name,
39
+ :external_person_id => self.external_person_id,
40
+ :body => self.body,
41
+ :external_id => self.external_id,
42
+ :in_reply_to_id => self.in_reply_to_id }
43
+ end
44
+
45
+ def self.resource_location
46
+ "/api/pro/people/%i/chat_session_messages"
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_message"
19
20
  require "caren/link"
20
21
  require "caren/store/store"
21
22
  require "caren/store/billable"
@@ -0,0 +1,64 @@
1
+ require 'spec_helper'
2
+
3
+ describe "ChatSessionMessage", "converting to xml" do
4
+
5
+ before do
6
+ @chat_session_message_a = Caren::ChatSessionMessage.new( :person_name => "Andre Foeken",
7
+ :external_person_id => 1,
8
+ :body => "Test message",
9
+ :external_id => 1,
10
+ :in_reply_to_id => nil )
11
+
12
+ @chat_session_message_b = Caren::ChatSessionMessage.new( :person_name => "Ria Foeken",
13
+ :external_person_id => 2,
14
+ :body => "Test message reply",
15
+ :external_id => 2,
16
+ :in_reply_to_id => 99 )
17
+ end
18
+
19
+ it "should be able to convert a chat session messages to valid xml" do
20
+ @chat_session_message_a.should convert_to_valid_caren_xml
21
+ end
22
+
23
+ it "should be able to convert an array of chat session messages to valid xml" do
24
+ [@chat_session_message_a,@chat_session_message_b].should convert_to_valid_caren_array_xml
25
+ end
26
+
27
+ end
28
+
29
+ describe "ExternalMessage", "REST methods" do
30
+
31
+ before do
32
+ message = File.read("spec/fixtures/caren_chat_session_message.xml")
33
+ messages = File.read("spec/fixtures/caren_chat_session_messages.xml")
34
+
35
+ messages_url = Caren::Api.session.url_for( Caren::ChatSessionMessage.resource_url(1) )
36
+ message_url = Caren::Api.session.url_for( Caren::ChatSessionMessage.resource_url(1,1) )
37
+ timestamp = DateTime.now.to_i
38
+
39
+ FakeWeb.register_uri(:get, messages_url, :body => messages, :signature => Caren::Api.session.sign(timestamp,nil,messages), :timestamp => timestamp )
40
+ FakeWeb.register_uri(:get, message_url, :body => message, :signature => Caren::Api.session.sign(timestamp,nil,message), :timestamp => timestamp )
41
+ FakeWeb.register_uri(:post, messages_url, :status => 201, :signature => Caren::Api.session.sign(timestamp), :timestamp => timestamp )
42
+ FakeWeb.register_uri(:delete, message_url, :signature => Caren::Api.session.sign(timestamp), :timestamp => timestamp )
43
+ end
44
+
45
+ it "should be able to find all chat session messages" do
46
+ messages = Caren::ChatSessionMessage.all 1, Caren::Api.session
47
+ messages.should have(2).things
48
+ messages.first.body.should == "Test"
49
+ end
50
+
51
+ it "should be able to find one chat session messages" do
52
+ message = Caren::ChatSessionMessage.find 1, 1, Caren::Api.session
53
+ message.body.should == "Test"
54
+ end
55
+
56
+ it "should be able to create a chat session message" do
57
+ lambda{ Caren::ChatSessionMessage.new( :person_name => "Andre Foeken",
58
+ :external_person_id => 1,
59
+ :body => "Test message",
60
+ :external_id => 1,
61
+ :subject_id => 1 ).create(Caren::Api.session) }.should_not raise_error
62
+ end
63
+
64
+ end
@@ -16,11 +16,11 @@ describe "ExternalMessage", "converting to xml" do
16
16
  :in_reply_to_id => 99 )
17
17
  end
18
18
 
19
- it "should be able to convert a link to valid xml" do
19
+ it "should be able to convert an external message to valid xml" do
20
20
  @external_message_a.should convert_to_valid_caren_xml
21
21
  end
22
22
 
23
- it "should be able to convert an array of links to valid xml" do
23
+ it "should be able to convert an array of external messages to valid xml" do
24
24
  [@external_message_a,@external_message_b].should convert_to_valid_caren_array_xml
25
25
  end
26
26
 
@@ -0,0 +1,13 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <chat-session-message>
3
+ <created-at type="datetime">2011-09-09T15:14:13+02:00</created-at>
4
+ <body>Test</body>
5
+ <updated-at type="datetime">2011-09-09T15:14:13+02:00</updated-at>
6
+ <in-reply-to-id type="integer" nil="true"></in-reply-to-id>
7
+ <subject-id type="integer">5</subject-id>
8
+ <id type="integer">1</id>
9
+ <in-reply-to-type nil="true"></in-reply-to-type>
10
+ <care-provider-id type="integer">1</care-provider-id>
11
+ <person-id type="integer">1</person-id>
12
+ <external-person-id nil="true"></external-person-id>
13
+ </chat-session-message>
@@ -0,0 +1,27 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <chat-session-messages type="array">
3
+ <chat-session-message>
4
+ <created-at type="datetime">2011-09-09T15:14:13+02:00</created-at>
5
+ <body>Test</body>
6
+ <updated-at type="datetime">2011-09-09T15:14:13+02:00</updated-at>
7
+ <in-reply-to-id type="integer" nil="true"></in-reply-to-id>
8
+ <subject-id type="integer">5</subject-id>
9
+ <id type="integer">1</id>
10
+ <in-reply-to-type nil="true"></in-reply-to-type>
11
+ <care-provider-id type="integer">1</care-provider-id>
12
+ <person-id type="integer">1</person-id>
13
+ <external-person-id nil="true"></external-person-id>
14
+ </chat-session-message>
15
+ <chat-session-message>
16
+ <created-at type="datetime">2011-09-09T15:14:13+02:00</created-at>
17
+ <body>Does it work ...</body>
18
+ <updated-at type="datetime">2011-09-09T15:14:13+02:00</updated-at>
19
+ <in-reply-to-id type="integer" nil="true"></in-reply-to-id>
20
+ <subject-id type="integer">5</subject-id>
21
+ <id type="integer">2</id>
22
+ <in-reply-to-type nil="true"></in-reply-to-type>
23
+ <care-provider-id type="integer">1</care-provider-id>
24
+ <person-id type="integer">1</person-id>
25
+ <external-person-id nil="true"></external-person-id>
26
+ </chat-session-message>
27
+ </chat-session-messages>
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.7.0
4
+ version: 0.8.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-09-11 00:00:00.000000000 Z
12
+ date: 2012-10-04 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_message.rb
182
183
  - lib/caren/client.rb
183
184
  - lib/caren/employee.rb
184
185
  - lib/caren/error.rb
@@ -199,6 +200,7 @@ files:
199
200
  - spec/.DS_Store
200
201
  - spec/care_provider_spec.rb
201
202
  - spec/caren_spec.rb
203
+ - spec/chat_session_message_spec.rb
202
204
  - spec/client_spec.rb
203
205
  - spec/employee_spec.rb
204
206
  - spec/event_slot_container_spec.rb
@@ -220,6 +222,8 @@ files:
220
222
  - spec/fixtures/caren_care_provider_validation.xml
221
223
  - spec/fixtures/caren_care_providers.xml
222
224
  - spec/fixtures/caren_care_providers_search.xml
225
+ - spec/fixtures/caren_chat_session_message.xml
226
+ - spec/fixtures/caren_chat_session_messages.xml
223
227
  - spec/fixtures/caren_event.xml
224
228
  - spec/fixtures/caren_events.xml
225
229
  - spec/fixtures/caren_external_message.xml
@@ -261,7 +265,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
261
265
  version: '0'
262
266
  segments:
263
267
  - 0
264
- hash: -2135287108305207608
268
+ hash: 127445655277471062
265
269
  required_rubygems_version: !ruby/object:Gem::Requirement
266
270
  none: false
267
271
  requirements: