caren-api 0.4.30 → 0.4.31
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 +1 -1
- data/caren-api.gemspec +1 -1
- data/lib/caren/billable_category.rb +9 -9
- data/lib/caren/care_provider.rb +14 -14
- data/lib/caren/caren.rb +48 -48
- data/lib/caren/client.rb +5 -5
- data/lib/caren/error.rb +8 -8
- data/lib/caren/event.rb +6 -6
- data/lib/caren/event_slot.rb +1 -1
- data/lib/caren/external_message.rb +16 -16
- data/lib/caren-api.rb +11 -11
- data/spec/billable_category_spec.rb +14 -14
- data/spec/billable_spec.rb +16 -16
- data/spec/care_provider_spec.rb +21 -21
- data/spec/caren_spec.rb +22 -22
- data/spec/client_spec.rb +22 -22
- data/spec/external_message_spec.rb +19 -19
- data/spec/link_spec.rb +14 -14
- metadata +3 -3
    
        data/VERSION
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
            0.4. | 
| 1 | 
            +
            0.4.31
         | 
    
        data/caren-api.gemspec
    CHANGED
    
    
| @@ -1,5 +1,5 @@ | |
| 1 1 | 
             
            class Caren::BillableCategory < Caren::Base
         | 
| 2 | 
            -
             | 
| 2 | 
            +
             | 
| 3 3 | 
             
              def self.keys
         | 
| 4 4 | 
             
                [ :id,                    # Integer (Id of this category in Caren)
         | 
| 5 5 | 
             
                  :name,                  # String
         | 
| @@ -8,29 +8,29 @@ class Caren::BillableCategory < Caren::Base | |
| 8 8 | 
             
                  :billable_category_id    # Integer (Parent category; Caren id; Nil for root node)
         | 
| 9 9 | 
             
                ] + super
         | 
| 10 10 | 
             
              end
         | 
| 11 | 
            -
             | 
| 11 | 
            +
             | 
| 12 12 | 
             
              def self.search key, value, session
         | 
| 13 13 | 
             
                from_xml session.get( self.search_url(key,value) )
         | 
| 14 14 | 
             
              end
         | 
| 15 | 
            -
             | 
| 15 | 
            +
             | 
| 16 16 | 
             
              def self.find id, session
         | 
| 17 17 | 
             
                from_xml session.get(self.resource_url(id))
         | 
| 18 18 | 
             
              end
         | 
| 19 | 
            -
             | 
| 19 | 
            +
             | 
| 20 20 | 
             
              def self.all session
         | 
| 21 21 | 
             
                from_xml session.get(self.resource_url)
         | 
| 22 22 | 
             
              end
         | 
| 23 | 
            -
             | 
| 23 | 
            +
             | 
| 24 24 | 
             
              def self.array_root
         | 
| 25 25 | 
             
                :billable_categories
         | 
| 26 26 | 
             
              end
         | 
| 27 | 
            -
             | 
| 27 | 
            +
             | 
| 28 28 | 
             
              def self.node_root
         | 
| 29 29 | 
             
                :billable_category
         | 
| 30 30 | 
             
              end
         | 
| 31 | 
            -
             | 
| 31 | 
            +
             | 
| 32 32 | 
             
              def self.resource_location
         | 
| 33 33 | 
             
                "/api/pro/store/billable_categories"
         | 
| 34 34 | 
             
              end
         | 
| 35 | 
            -
             | 
| 36 | 
            -
            end
         | 
| 35 | 
            +
             | 
| 36 | 
            +
            end
         | 
    
        data/lib/caren/care_provider.rb
    CHANGED
    
    | @@ -3,7 +3,7 @@ | |
| 3 3 | 
             
            # * Get a list of care providers
         | 
| 4 4 | 
             
            # * Search for a specific care provider based on key/value
         | 
| 5 5 | 
             
            class Caren::CareProvider < Caren::Base
         | 
| 6 | 
            -
             | 
| 6 | 
            +
             | 
| 7 7 | 
             
              def self.keys
         | 
| 8 8 | 
             
                [ :id,                          # Integer (The id of this CP inside Caren)
         | 
| 9 9 | 
             
                  :name,                        # String
         | 
| @@ -28,30 +28,30 @@ class Caren::CareProvider < Caren::Base | |
| 28 28 | 
             
                  :closed_beta,                 # Boolean
         | 
| 29 29 | 
             
                  :locale,                      # String
         | 
| 30 30 | 
             
                  :lat,
         | 
| 31 | 
            -
                  :lng | 
| 31 | 
            +
                  :lng
         | 
| 32 32 | 
             
                ] + super
         | 
| 33 33 | 
             
              end
         | 
| 34 | 
            -
             | 
| 34 | 
            +
             | 
| 35 35 | 
             
              def self.search key, value, session
         | 
| 36 36 | 
             
                from_xml session.get( self.search_url(key,value) )
         | 
| 37 37 | 
             
              end
         | 
| 38 | 
            -
             | 
| 38 | 
            +
             | 
| 39 39 | 
             
              def self.find id, session
         | 
| 40 40 | 
             
                from_xml session.get(self.resource_url(id))
         | 
| 41 41 | 
             
              end
         | 
| 42 | 
            -
             | 
| 42 | 
            +
             | 
| 43 43 | 
             
              def self.all session
         | 
| 44 44 | 
             
                from_xml session.get(self.resource_url)
         | 
| 45 45 | 
             
              end
         | 
| 46 | 
            -
             | 
| 46 | 
            +
             | 
| 47 47 | 
             
              def update session
         | 
| 48 48 | 
             
                self.class.from_xml session.put(self.resource_url(self.id), self.to_xml)
         | 
| 49 49 | 
             
              end
         | 
| 50 | 
            -
             | 
| 50 | 
            +
             | 
| 51 51 | 
             
              def update_logo logo_hash_or_path, session
         | 
| 52 52 | 
             
                self.class.from_xml session.put(self.resource_url(self.id), self.to_logo_xml(logo_hash_or_path))
         | 
| 53 53 | 
             
              end
         | 
| 54 | 
            -
             | 
| 54 | 
            +
             | 
| 55 55 | 
             
              def as_xml
         | 
| 56 56 | 
             
                { :name => self.name,
         | 
| 57 57 | 
             
                  :telephone => self.telephone,
         | 
| @@ -76,7 +76,7 @@ class Caren::CareProvider < Caren::Base | |
| 76 76 | 
             
                  :lng => self.lng
         | 
| 77 77 | 
             
                }
         | 
| 78 78 | 
             
              end
         | 
| 79 | 
            -
             | 
| 79 | 
            +
             | 
| 80 80 | 
             
              def to_logo_xml logo_hash_or_path
         | 
| 81 81 | 
             
                builder = Builder::XmlMarkup.new
         | 
| 82 82 | 
             
                logo = self.class.hash_from_image(logo_hash_or_path)
         | 
| @@ -84,17 +84,17 @@ class Caren::CareProvider < Caren::Base | |
| 84 84 | 
             
                  care_provider.tag!("logo", logo[:content], "name" => logo[:name], "content-type" => logo[:content_type] ) if logo
         | 
| 85 85 | 
             
                end
         | 
| 86 86 | 
             
              end
         | 
| 87 | 
            -
             | 
| 87 | 
            +
             | 
| 88 88 | 
             
              def self.resource_location
         | 
| 89 89 | 
             
                "/api/pro/care_providers"
         | 
| 90 90 | 
             
              end
         | 
| 91 | 
            -
             | 
| 91 | 
            +
             | 
| 92 92 | 
             
              def self.array_root
         | 
| 93 93 | 
             
                :care_providers
         | 
| 94 94 | 
             
              end
         | 
| 95 | 
            -
             | 
| 95 | 
            +
             | 
| 96 96 | 
             
              def self.node_root
         | 
| 97 97 | 
             
                :care_provider
         | 
| 98 98 | 
             
              end
         | 
| 99 | 
            -
             | 
| 100 | 
            -
            end
         | 
| 99 | 
            +
             | 
| 100 | 
            +
            end
         | 
    
        data/lib/caren/caren.rb
    CHANGED
    
    | @@ -1,34 +1,34 @@ | |
| 1 1 | 
             
            module Caren
         | 
| 2 | 
            -
             | 
| 2 | 
            +
             | 
| 3 3 | 
             
              module Exceptions
         | 
| 4 | 
            -
             | 
| 4 | 
            +
             | 
| 5 5 | 
             
                class StandardError < ::StandardError ; end
         | 
| 6 | 
            -
             | 
| 6 | 
            +
             | 
| 7 7 | 
             
                class SignatureMismatch < Caren::Exceptions::StandardError ; end
         | 
| 8 | 
            -
             | 
| 8 | 
            +
             | 
| 9 9 | 
             
                class InvalidXmlResponse < Caren::Exceptions::StandardError ; end
         | 
| 10 | 
            -
             | 
| 10 | 
            +
             | 
| 11 11 | 
             
                class ServerSideError < Caren::Exceptions::StandardError
         | 
| 12 | 
            -
             | 
| 12 | 
            +
             | 
| 13 13 | 
             
                  attr_accessor :errors
         | 
| 14 | 
            -
             | 
| 14 | 
            +
             | 
| 15 15 | 
             
                  def initialize errors=[]
         | 
| 16 16 | 
             
                    self.errors = errors
         | 
| 17 17 | 
             
                  end
         | 
| 18 | 
            -
             | 
| 18 | 
            +
             | 
| 19 19 | 
             
                end
         | 
| 20 | 
            -
             | 
| 20 | 
            +
             | 
| 21 21 | 
             
              end
         | 
| 22 22 |  | 
| 23 23 | 
             
              class Api
         | 
| 24 | 
            -
             | 
| 24 | 
            +
             | 
| 25 25 | 
             
                class << self
         | 
| 26 26 | 
             
                  attr_accessor :session
         | 
| 27 27 | 
             
                end
         | 
| 28 | 
            -
             | 
| 28 | 
            +
             | 
| 29 29 | 
             
                # The user_agent is an optional identifier
         | 
| 30 30 | 
             
                attr_accessor :url, :caren_public_key, :private_key, :user_agent
         | 
| 31 | 
            -
             | 
| 31 | 
            +
             | 
| 32 32 | 
             
                # Initialize new API session. Specify your private key to sign outgoing messages and your care provider url.
         | 
| 33 33 | 
             
                # Optionally you can pass the caren public key used to verify incoming requests.
         | 
| 34 34 | 
             
                def initialize private_key, url, caren_public_key=nil
         | 
| @@ -36,33 +36,33 @@ module Caren | |
| 36 36 | 
             
                  self.private_key = private_key.is_a?(String) ? Caren::Api.key_from_string(private_key) : private_key
         | 
| 37 37 | 
             
                  self.caren_public_key = caren_public_key || Caren::Api.key_from_path("#{File.dirname(__FILE__)}/../../certs/caren-api.pub")
         | 
| 38 38 | 
             
                end
         | 
| 39 | 
            -
             | 
| 39 | 
            +
             | 
| 40 40 | 
             
                # Create key from string
         | 
| 41 41 | 
             
                def self.key_from_string string
         | 
| 42 42 | 
             
                  OpenSSL::PKey::RSA.new(string)
         | 
| 43 43 | 
             
                end
         | 
| 44 | 
            -
             | 
| 44 | 
            +
             | 
| 45 45 | 
             
                # Read a file and create key from string
         | 
| 46 46 | 
             
                def self.key_from_path path
         | 
| 47 47 | 
             
                  self.key_from_string( File.read(path) )
         | 
| 48 48 | 
             
                end
         | 
| 49 | 
            -
             | 
| 49 | 
            +
             | 
| 50 50 | 
             
                # Generate a new private key
         | 
| 51 51 | 
             
                def self.generate_private_key size=2048
         | 
| 52 52 | 
             
                  OpenSSL::PKey::RSA.generate( size )
         | 
| 53 53 | 
             
                end
         | 
| 54 | 
            -
             | 
| 54 | 
            +
             | 
| 55 55 | 
             
                # URL from path using session base url
         | 
| 56 56 | 
             
                def url_for path
         | 
| 57 57 | 
             
                  "#{self.url}#{path}"
         | 
| 58 58 | 
             
                end
         | 
| 59 | 
            -
             | 
| 59 | 
            +
             | 
| 60 60 | 
             
                def put path, xml
         | 
| 61 61 | 
             
                  begin
         | 
| 62 62 | 
             
                    timestamp = DateTime.now.to_i
         | 
| 63 | 
            -
                    response = RestClient.put url_for(path), xml, :content_type => :xml, | 
| 64 | 
            -
                                                                  :accept => :xml, | 
| 65 | 
            -
                                                                  :timestamp => timestamp, | 
| 63 | 
            +
                    response = RestClient.put url_for(path), xml, :content_type => :xml,
         | 
| 64 | 
            +
                                                                  :accept => :xml,
         | 
| 65 | 
            +
                                                                  :timestamp => timestamp,
         | 
| 66 66 | 
             
                                                                  :signature => sign(timestamp,path,xml),
         | 
| 67 67 | 
             
                                                                  :user_agent => user_agent
         | 
| 68 68 | 
             
                    return check_signature(response)
         | 
| @@ -70,13 +70,13 @@ module Caren | |
| 70 70 | 
             
                    handle_error(e.response)
         | 
| 71 71 | 
             
                  end
         | 
| 72 72 | 
             
                end
         | 
| 73 | 
            -
             | 
| 73 | 
            +
             | 
| 74 74 | 
             
                def post path, xml
         | 
| 75 75 | 
             
                  begin
         | 
| 76 76 | 
             
                    timestamp = DateTime.now.to_i
         | 
| 77 | 
            -
                    response = RestClient.post url_for(path), xml, :content_type => :xml, | 
| 78 | 
            -
                                                                   :accept => :xml, | 
| 79 | 
            -
                                                                   :timestamp => timestamp, | 
| 77 | 
            +
                    response = RestClient.post url_for(path), xml, :content_type => :xml,
         | 
| 78 | 
            +
                                                                   :accept => :xml,
         | 
| 79 | 
            +
                                                                   :timestamp => timestamp,
         | 
| 80 80 | 
             
                                                                   :signature => sign(timestamp,path,xml),
         | 
| 81 81 | 
             
                                                                   :user_agent => user_agent
         | 
| 82 82 | 
             
                    return check_signature(response)
         | 
| @@ -84,13 +84,13 @@ module Caren | |
| 84 84 | 
             
                    handle_error(e.response)
         | 
| 85 85 | 
             
                  end
         | 
| 86 86 | 
             
                end
         | 
| 87 | 
            -
             | 
| 87 | 
            +
             | 
| 88 88 | 
             
                def delete path
         | 
| 89 89 | 
             
                  begin
         | 
| 90 90 | 
             
                    timestamp = DateTime.now.to_i
         | 
| 91 | 
            -
                    response = RestClient.delete url_for(path), :content_type => :xml, | 
| 92 | 
            -
                                                                :accept => :xml, | 
| 93 | 
            -
                                                                :timestamp => timestamp, | 
| 91 | 
            +
                    response = RestClient.delete url_for(path), :content_type => :xml,
         | 
| 92 | 
            +
                                                                :accept => :xml,
         | 
| 93 | 
            +
                                                                :timestamp => timestamp,
         | 
| 94 94 | 
             
                                                                :signature => sign(timestamp,path),
         | 
| 95 95 | 
             
                                                                :user_agent => user_agent
         | 
| 96 96 | 
             
                    return check_signature(response)
         | 
| @@ -98,13 +98,13 @@ module Caren | |
| 98 98 | 
             
                    handle_error(e.response)
         | 
| 99 99 | 
             
                  end
         | 
| 100 100 | 
             
                end
         | 
| 101 | 
            -
             | 
| 101 | 
            +
             | 
| 102 102 | 
             
                def get path
         | 
| 103 103 | 
             
                  begin
         | 
| 104 104 | 
             
                    timestamp = DateTime.now.to_i
         | 
| 105 | 
            -
                    response = RestClient.get url_for(path), :content_type => :xml, | 
| 106 | 
            -
                                                             :accept => :xml, | 
| 107 | 
            -
                                                             :timestamp => timestamp, | 
| 105 | 
            +
                    response = RestClient.get url_for(path), :content_type => :xml,
         | 
| 106 | 
            +
                                                             :accept => :xml,
         | 
| 107 | 
            +
                                                             :timestamp => timestamp,
         | 
| 108 108 | 
             
                                                             :signature => sign(timestamp,path),
         | 
| 109 109 | 
             
                                                             :user_agent => user_agent
         | 
| 110 110 | 
             
                    return check_signature(response)
         | 
| @@ -112,17 +112,17 @@ module Caren | |
| 112 112 | 
             
                    handle_error(e.response)
         | 
| 113 113 | 
             
                  end
         | 
| 114 114 | 
             
                end
         | 
| 115 | 
            -
             | 
| 115 | 
            +
             | 
| 116 116 | 
             
                # These types of Caren objects are supported by the Caren::Api.incoming method
         | 
| 117 117 | 
             
                def self.supported_incoming_objects
         | 
| 118 | 
            -
                  { :links => Caren::Link, | 
| 119 | 
            -
                    :external_messages => Caren::ExternalMessage, | 
| 118 | 
            +
                  { :links => Caren::Link,
         | 
| 119 | 
            +
                    :external_messages => Caren::ExternalMessage,
         | 
| 120 120 | 
             
                    :care_providers => Caren::CareProvider,
         | 
| 121 121 | 
             
                    :billable_categories => Caren::BillableCategory,
         | 
| 122 122 | 
             
                    :billables => Caren::Billable
         | 
| 123 123 | 
             
                  }
         | 
| 124 124 | 
             
                end
         | 
| 125 | 
            -
             | 
| 125 | 
            +
             | 
| 126 126 | 
             
                # These types of Caren objects are supported by the Caren::Api.incoming method
         | 
| 127 127 | 
             
                def self.supported_incoming_single_objects
         | 
| 128 128 | 
             
                  singles = {}
         | 
| @@ -131,7 +131,7 @@ module Caren | |
| 131 131 | 
             
                  end
         | 
| 132 132 | 
             
                  return singles
         | 
| 133 133 | 
             
                end
         | 
| 134 | 
            -
             | 
| 134 | 
            +
             | 
| 135 135 | 
             
                # Pass an XML string to be handled. Only a valid caren_objects xml hash will be parsed.
         | 
| 136 136 | 
             
                def incoming xml, signature, timestamp
         | 
| 137 137 | 
             
                  if self.verify_signature(signature,timestamp, xml)
         | 
| @@ -140,22 +140,22 @@ module Caren | |
| 140 140 | 
             
                    raise Caren::Exceptions::SignatureMismatch.new
         | 
| 141 141 | 
             
                  end
         | 
| 142 142 | 
             
                end
         | 
| 143 | 
            -
             | 
| 143 | 
            +
             | 
| 144 144 | 
             
                def parse xml
         | 
| 145 145 | 
             
                  objects = []
         | 
| 146 146 | 
             
                  hash   = Hash.from_xml(xml)
         | 
| 147 147 | 
             
                  if hash["caren_objects"]
         | 
| 148 148 | 
             
                    hash = hash["caren_objects"]
         | 
| 149 | 
            -
                  end | 
| 149 | 
            +
                  end
         | 
| 150 150 | 
             
                  Caren::Api.supported_incoming_objects.each do |key,klass|
         | 
| 151 151 | 
             
                    objects << (hash[key]||hash[key.to_s]||[]).map{ |h| klass.new(h) }
         | 
| 152 152 | 
             
                  end
         | 
| 153 153 | 
             
                  return objects.flatten
         | 
| 154 154 | 
             
                end
         | 
| 155 | 
            -
             | 
| 155 | 
            +
             | 
| 156 156 | 
             
                def parse_object xml
         | 
| 157 157 | 
             
                  hash = Hash.from_xml(xml)
         | 
| 158 | 
            -
                  #todo: rewrite so we lookup the xml tag in the supported_incoming_single_objects hash, faster :) | 
| 158 | 
            +
                  #todo: rewrite so we lookup the xml tag in the supported_incoming_single_objects hash, faster :)
         | 
| 159 159 | 
             
                  Caren::Api.supported_incoming_single_objects.each do |key, klass|
         | 
| 160 160 | 
             
                    object = hash[key] || hash[key.to_s]
         | 
| 161 161 | 
             
                    if object
         | 
| @@ -172,34 +172,34 @@ module Caren | |
| 172 172 | 
             
                  signature = CGI.escape(Base64.encode64(encrypted_digest))
         | 
| 173 173 | 
             
                  return signature
         | 
| 174 174 | 
             
                end
         | 
| 175 | 
            -
             | 
| 175 | 
            +
             | 
| 176 176 | 
             
                # Check the signature of the response from rest-client
         | 
| 177 177 | 
             
                def check_signature response
         | 
| 178 178 | 
             
                  return response if self.verify_signature( response.headers[:signature], response.headers[:timestamp], nil, response )
         | 
| 179 179 | 
             
                  raise Caren::Exceptions::SignatureMismatch.new
         | 
| 180 180 | 
             
                end
         | 
| 181 | 
            -
             | 
| 181 | 
            +
             | 
| 182 182 | 
             
                # Verify the signature using the caren public key
         | 
| 183 183 | 
             
                def verify_signature signature, timestamp, path, string=nil, public_key=self.caren_public_key
         | 
| 184 184 | 
             
                  return false unless public_key
         | 
| 185 185 | 
             
                  signature = Base64.decode64(CGI.unescape(signature.to_s))
         | 
| 186 186 | 
             
                  public_key.verify( OpenSSL::Digest::SHA1.new, signature, path.to_s + string.to_s + timestamp.to_s )
         | 
| 187 187 | 
             
                end
         | 
| 188 | 
            -
             | 
| 188 | 
            +
             | 
| 189 189 | 
             
                def create_photo_signature url_shortcut, external_or_caren_id, private_key=self.private_key
         | 
| 190 190 | 
             
                  digest = OpenSSL::PKey::RSA.new(private_key).sign( OpenSSL::Digest::SHA1.new, url_shortcut.to_s + external_or_caren_id.to_s )
         | 
| 191 191 | 
             
                  return CGI.escape(Base64.encode64(digest))
         | 
| 192 192 | 
             
                end
         | 
| 193 | 
            -
             | 
| 193 | 
            +
             | 
| 194 194 | 
             
                # Verify photo url signature using the caren public key
         | 
| 195 195 | 
             
                def verify_photo_signature signature, url_shortcut, external_id, public_key=self.caren_public_key
         | 
| 196 196 | 
             
                  return false unless public_key
         | 
| 197 197 | 
             
                  signature = Base64.decode64(CGI.unescape(signature.to_s))
         | 
| 198 198 | 
             
                  public_key.verify( OpenSSL::Digest::SHA1.new, signature, url_shortcut.to_s + external_id.to_s )
         | 
| 199 199 | 
             
                end
         | 
| 200 | 
            -
             | 
| 200 | 
            +
             | 
| 201 201 | 
             
                private
         | 
| 202 | 
            -
             | 
| 202 | 
            +
             | 
| 203 203 | 
             
                # Raise a Caren exception on errors
         | 
| 204 204 | 
             
                def handle_error response
         | 
| 205 205 | 
             
                  errors = []
         | 
| @@ -214,7 +214,7 @@ module Caren | |
| 214 214 | 
             
                  end
         | 
| 215 215 | 
             
                  raise Caren::Exceptions::ServerSideError.new(errors)
         | 
| 216 216 | 
             
                end
         | 
| 217 | 
            -
             | 
| 217 | 
            +
             | 
| 218 218 | 
             
              end
         | 
| 219 219 |  | 
| 220 220 | 
             
            end
         | 
    
        data/lib/caren/client.rb
    CHANGED
    
    | @@ -1,5 +1,5 @@ | |
| 1 1 | 
             
            class Caren::Client < Caren::Base
         | 
| 2 | 
            -
             | 
| 2 | 
            +
             | 
| 3 3 | 
             
              def self.keys
         | 
| 4 4 | 
             
                [ :external_id,     # String (Your client id)
         | 
| 5 5 | 
             
                  :uid,             # String (Customer unique code)
         | 
| @@ -13,13 +13,13 @@ class Caren::Client < Caren::Base | |
| 13 13 | 
             
                  :address_country  # String
         | 
| 14 14 | 
             
                ] + super
         | 
| 15 15 | 
             
              end
         | 
| 16 | 
            -
             | 
| 16 | 
            +
             | 
| 17 17 | 
             
              def self.array_root
         | 
| 18 18 | 
             
                :clients
         | 
| 19 19 | 
             
              end
         | 
| 20 | 
            -
             | 
| 20 | 
            +
             | 
| 21 21 | 
             
              def self.node_root
         | 
| 22 22 | 
             
                :client
         | 
| 23 23 | 
             
              end
         | 
| 24 | 
            -
             | 
| 25 | 
            -
            end
         | 
| 24 | 
            +
             | 
| 25 | 
            +
            end
         | 
    
        data/lib/caren/error.rb
    CHANGED
    
    | @@ -1,24 +1,24 @@ | |
| 1 1 | 
             
            # This class provides a wrapper for caren's server side errors.
         | 
| 2 | 
            -
            class Caren::Error | 
| 3 | 
            -
             | 
| 2 | 
            +
            class Caren::Error
         | 
| 3 | 
            +
             | 
| 4 4 | 
             
              attr_accessor :category, :message, :attributes
         | 
| 5 | 
            -
             | 
| 5 | 
            +
             | 
| 6 6 | 
             
              def initialize category, message="", attributes={}
         | 
| 7 7 | 
             
                self.category = category
         | 
| 8 8 | 
             
                self.message = message
         | 
| 9 9 | 
             
                self.attributes = attributes
         | 
| 10 10 | 
             
              end
         | 
| 11 | 
            -
             | 
| 11 | 
            +
             | 
| 12 12 | 
             
            end
         | 
| 13 13 |  | 
| 14 14 | 
             
            class Caren::ValidationError < Caren::Error
         | 
| 15 | 
            -
             | 
| 15 | 
            +
             | 
| 16 16 | 
             
              def field
         | 
| 17 17 | 
             
                attributes[:on]
         | 
| 18 18 | 
             
              end
         | 
| 19 | 
            -
             | 
| 19 | 
            +
             | 
| 20 20 | 
             
              def to_s
         | 
| 21 21 | 
             
                "`#{field}` #{message}"
         | 
| 22 22 | 
             
              end
         | 
| 23 | 
            -
             | 
| 24 | 
            -
            end
         | 
| 23 | 
            +
             | 
| 24 | 
            +
            end
         | 
    
        data/lib/caren/event.rb
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 | 
            -
            # This class is just an intermediate for exporting events to Caren. | 
| 2 | 
            -
            # It has the correct format for exports. | 
| 1 | 
            +
            # This class is just an intermediate for exporting events to Caren.
         | 
| 2 | 
            +
            # It has the correct format for exports.
         | 
| 3 3 | 
             
            class Caren::Event < Caren::Base
         | 
| 4 | 
            -
             | 
| 4 | 
            +
             | 
| 5 5 | 
             
              def self.keys
         | 
| 6 6 | 
             
                [ :external_id,       # String Unique identifying string (Your event id)
         | 
| 7 7 | 
             
                  :name,              # String
         | 
| @@ -17,7 +17,7 @@ class Caren::Event < Caren::Base | |
| 17 17 | 
             
                  :source             # String (remote_schedule,remote_realisation)
         | 
| 18 18 | 
             
                ] + super
         | 
| 19 19 | 
             
              end
         | 
| 20 | 
            -
             | 
| 20 | 
            +
             | 
| 21 21 | 
             
              def self.array_root
         | 
| 22 22 | 
             
               :events
         | 
| 23 23 | 
             
              end
         | 
| @@ -25,5 +25,5 @@ class Caren::Event < Caren::Base | |
| 25 25 | 
             
              def self.node_root
         | 
| 26 26 | 
             
               :event
         | 
| 27 27 | 
             
              end
         | 
| 28 | 
            -
             | 
| 29 | 
            -
            end
         | 
| 28 | 
            +
             | 
| 29 | 
            +
            end
         | 
    
        data/lib/caren/event_slot.rb
    CHANGED
    
    
| @@ -1,10 +1,10 @@ | |
| 1 1 | 
             
            class Caren::ExternalMessage < Caren::Base
         | 
| 2 | 
            -
             | 
| 2 | 
            +
             | 
| 3 3 | 
             
              def self.keys
         | 
| 4 | 
            -
                [ :id,                  # Integer (Caren message id) | 
| 4 | 
            +
                [ :id,                  # Integer (Caren message id)
         | 
| 5 5 | 
             
                  :person_name,         # String (Andre Foeken)
         | 
| 6 | 
            -
                  :person_id,           # Integer (Caren person id) | 
| 7 | 
            -
                  :external_person_id,  # String (Your person id) | 
| 6 | 
            +
                  :person_id,           # Integer (Caren person id)
         | 
| 7 | 
            +
                  :external_person_id,  # String (Your person id)
         | 
| 8 8 | 
             
                  :care_provider_id,    # Integer (Caren CP id)
         | 
| 9 9 | 
             
                  :body,                # Text
         | 
| 10 10 | 
             
                  :external_id,         # String (Your message id)
         | 
| @@ -13,31 +13,31 @@ class Caren::ExternalMessage < Caren::Base | |
| 13 13 | 
             
                  :subject_id           # Integer (Caren person id)
         | 
| 14 14 | 
             
                ] + super
         | 
| 15 15 | 
             
              end
         | 
| 16 | 
            -
             | 
| 16 | 
            +
             | 
| 17 17 | 
             
              def self.all subject_id, session
         | 
| 18 18 | 
             
                from_xml session.get(self.resource_url(subject_id))
         | 
| 19 19 | 
             
              end
         | 
| 20 | 
            -
             | 
| 20 | 
            +
             | 
| 21 21 | 
             
              def self.find subject_id, id, session
         | 
| 22 22 | 
             
                from_xml session.get(self.resource_url(subject_id,id))
         | 
| 23 23 | 
             
              end
         | 
| 24 | 
            -
             | 
| 24 | 
            +
             | 
| 25 25 | 
             
              def create session
         | 
| 26 26 | 
             
                self.class.from_xml session.post self.class.resource_url(self.subject_id), self.to_xml
         | 
| 27 27 | 
             
              end
         | 
| 28 | 
            -
             | 
| 28 | 
            +
             | 
| 29 29 | 
             
              def delete session
         | 
| 30 30 | 
             
                session.delete self.class.resource_url(self.subject_id,self.id)
         | 
| 31 31 | 
             
              end
         | 
| 32 | 
            -
             | 
| 32 | 
            +
             | 
| 33 33 | 
             
              def self.array_root
         | 
| 34 34 | 
             
                :external_messages
         | 
| 35 35 | 
             
              end
         | 
| 36 | 
            -
             | 
| 36 | 
            +
             | 
| 37 37 | 
             
              def self.node_root
         | 
| 38 38 | 
             
                :external_message
         | 
| 39 39 | 
             
              end
         | 
| 40 | 
            -
             | 
| 40 | 
            +
             | 
| 41 41 | 
             
              def as_xml
         | 
| 42 42 | 
             
                { :person_name => self.person_name,
         | 
| 43 43 | 
             
                  :external_person_id => self.external_person_id,
         | 
| @@ -45,19 +45,19 @@ class Caren::ExternalMessage < Caren::Base | |
| 45 45 | 
             
                  :external_id => self.external_id,
         | 
| 46 46 | 
             
                  :in_reply_to_id => self.in_reply_to_id }
         | 
| 47 47 | 
             
              end
         | 
| 48 | 
            -
             | 
| 48 | 
            +
             | 
| 49 49 | 
             
              def self.resource_location
         | 
| 50 50 | 
             
                "/api/pro/people/%i/external_messages"
         | 
| 51 51 | 
             
              end
         | 
| 52 | 
            -
             | 
| 52 | 
            +
             | 
| 53 53 | 
             
              private
         | 
| 54 54 |  | 
| 55 55 | 
             
              def resource_url subject_id, id=nil
         | 
| 56 56 | 
             
                self.class.resource_url(subject_id,id)
         | 
| 57 57 | 
             
              end
         | 
| 58 | 
            -
             | 
| 58 | 
            +
             | 
| 59 59 | 
             
              def self.resource_url subject_id, id=nil
         | 
| 60 60 | 
             
                "#{self.resource_location % subject_id}#{id}"
         | 
| 61 61 | 
             
              end
         | 
| 62 | 
            -
             | 
| 63 | 
            -
            end
         | 
| 62 | 
            +
             | 
| 63 | 
            +
            end
         | 
    
        data/lib/caren-api.rb
    CHANGED
    
    | @@ -6,14 +6,14 @@ require "rest_client" | |
| 6 6 | 
             
            require "rexml/document"
         | 
| 7 7 | 
             
            require "base64"
         | 
| 8 8 |  | 
| 9 | 
            -
            require "caren/caren | 
| 10 | 
            -
            require "caren/error | 
| 11 | 
            -
            require "caren/base | 
| 12 | 
            -
            require "caren/event | 
| 13 | 
            -
            require "caren/event_slot | 
| 14 | 
            -
            require "caren/client | 
| 15 | 
            -
            require "caren/care_provider | 
| 16 | 
            -
            require "caren/external_message | 
| 17 | 
            -
            require "caren/link | 
| 18 | 
            -
            require "caren/billable | 
| 19 | 
            -
            require "caren/billable_category | 
| 9 | 
            +
            require "caren/caren"
         | 
| 10 | 
            +
            require "caren/error"
         | 
| 11 | 
            +
            require "caren/base"
         | 
| 12 | 
            +
            require "caren/event"
         | 
| 13 | 
            +
            require "caren/event_slot"
         | 
| 14 | 
            +
            require "caren/client"
         | 
| 15 | 
            +
            require "caren/care_provider"
         | 
| 16 | 
            +
            require "caren/external_message"
         | 
| 17 | 
            +
            require "caren/link"
         | 
| 18 | 
            +
            require "caren/billable"
         | 
| 19 | 
            +
            require "caren/billable_category"
         | 
| @@ -1,40 +1,40 @@ | |
| 1 1 | 
             
            require 'spec_helper'
         | 
| 2 2 |  | 
| 3 3 | 
             
            describe "BillableCategory", "converting to xml" do
         | 
| 4 | 
            -
             | 
| 4 | 
            +
             | 
| 5 5 | 
             
              before do
         | 
| 6 6 | 
             
                @billable_category_a = Caren::BillableCategory.new( :name => "Services" )
         | 
| 7 7 | 
             
                @billable_category_b = Caren::BillableCategory.new( :name => "Products" )
         | 
| 8 8 | 
             
              end
         | 
| 9 | 
            -
             | 
| 9 | 
            +
             | 
| 10 10 | 
             
              it "should be able to convert a product to valid xml" do
         | 
| 11 11 | 
             
                @billable_category_a.should convert_to_valid_caren_xml
         | 
| 12 12 | 
             
              end
         | 
| 13 | 
            -
             | 
| 13 | 
            +
             | 
| 14 14 | 
             
              it "should be able to convert an array of products to valid xml" do
         | 
| 15 15 | 
             
                [@billable_category_a,@billable_category_b].should convert_to_valid_caren_array_xml
         | 
| 16 16 | 
             
              end
         | 
| 17 | 
            -
             | 
| 17 | 
            +
             | 
| 18 18 | 
             
            end
         | 
| 19 19 |  | 
| 20 20 | 
             
            describe "BillableCategory", "REST methods" do
         | 
| 21 | 
            -
             | 
| 21 | 
            +
             | 
| 22 22 | 
             
              before do
         | 
| 23 23 | 
             
                billable_category = File.read("spec/fixtures/caren_billable_category.xml")
         | 
| 24 24 | 
             
                billable_categories = File.read("spec/fixtures/caren_billable_categories.xml")
         | 
| 25 25 | 
             
                billable_categories_search = File.read("spec/fixtures/caren_billable_categories_search.xml")
         | 
| 26 | 
            -
             | 
| 26 | 
            +
             | 
| 27 27 | 
             
                billable_category_url = Caren::Api.session.url_for( Caren::BillableCategory.resource_url(1) )
         | 
| 28 28 | 
             
                billable_categories_url = Caren::Api.session.url_for( Caren::BillableCategory.resource_url )
         | 
| 29 29 | 
             
                search_url = Caren::Api.session.url_for( "#{Caren::BillableCategory.resource_url}?key=name&value=billables" )
         | 
| 30 | 
            -
             | 
| 30 | 
            +
             | 
| 31 31 | 
             
                timestamp = DateTime.now.to_i
         | 
| 32 | 
            -
             | 
| 33 | 
            -
                FakeWeb.register_uri(:get, billable_categories_url, :body => billable_categories, :timestamp => timestamp, :signature => Caren::Api.session.sign(timestamp,nil,billable_categories) ) | 
| 34 | 
            -
                FakeWeb.register_uri(:get, billable_category_url, :body => billable_category, :timestamp => timestamp, :signature => Caren::Api.session.sign(timestamp,nil,billable_category) ) | 
| 32 | 
            +
             | 
| 33 | 
            +
                FakeWeb.register_uri(:get, billable_categories_url, :body => billable_categories, :timestamp => timestamp, :signature => Caren::Api.session.sign(timestamp,nil,billable_categories) )
         | 
| 34 | 
            +
                FakeWeb.register_uri(:get, billable_category_url, :body => billable_category, :timestamp => timestamp, :signature => Caren::Api.session.sign(timestamp,nil,billable_category) )
         | 
| 35 35 | 
             
                FakeWeb.register_uri(:get, search_url, :body => billable_categories_search, :timestamp => timestamp, :signature => Caren::Api.session.sign(timestamp,nil,billable_categories_search) )
         | 
| 36 36 | 
             
              end
         | 
| 37 | 
            -
             | 
| 37 | 
            +
             | 
| 38 38 | 
             
              it "should be able to search for a specific billable category" do
         | 
| 39 39 | 
             
                billable_categories = Caren::BillableCategory.search :name, "billables", Caren::Api.session
         | 
| 40 40 | 
             
                billable_categories.should have(1).things
         | 
| @@ -45,11 +45,11 @@ describe "BillableCategory", "REST methods" do | |
| 45 45 | 
             
                billable_category = Caren::BillableCategory.find 1, Caren::Api.session
         | 
| 46 46 | 
             
                billable_category.name.should == "Billables"
         | 
| 47 47 | 
             
              end
         | 
| 48 | 
            -
             | 
| 48 | 
            +
             | 
| 49 49 | 
             
              it "should be able to find all billable category" do
         | 
| 50 50 | 
             
                billable_categories = Caren::BillableCategory.all Caren::Api.session
         | 
| 51 51 | 
             
                billable_categories.should have(2).things
         | 
| 52 52 | 
             
                billable_categories.first.name.should == "Products"
         | 
| 53 53 | 
             
              end
         | 
| 54 | 
            -
             | 
| 55 | 
            -
            end
         | 
| 54 | 
            +
             | 
| 55 | 
            +
            end
         | 
    
        data/spec/billable_spec.rb
    CHANGED
    
    | @@ -1,46 +1,46 @@ | |
| 1 1 | 
             
            require 'spec_helper'
         | 
| 2 2 |  | 
| 3 3 | 
             
            describe "Billable", "converting to xml" do
         | 
| 4 | 
            -
             | 
| 4 | 
            +
             | 
| 5 5 | 
             
              before do
         | 
| 6 6 | 
             
                @billable_a = Caren::Billable.new( :name => "Washing", :price => 100.euros, :in_store => true, :type => "Product" )
         | 
| 7 7 | 
             
                @billable_b = Caren::Billable.new( :name => "Bedpan", :price => 100.euros, :in_store => false, :type => "Product" )
         | 
| 8 8 | 
             
              end
         | 
| 9 | 
            -
             | 
| 9 | 
            +
             | 
| 10 10 | 
             
              it "should be able to convert a billable to valid xml" do
         | 
| 11 11 | 
             
                @billable_a.should convert_to_valid_caren_xml
         | 
| 12 12 | 
             
              end
         | 
| 13 | 
            -
             | 
| 13 | 
            +
             | 
| 14 14 | 
             
              it "should be able to convert an array of billables to valid xml" do
         | 
| 15 15 | 
             
                [@billable_a,@billable_b].should convert_to_valid_caren_array_xml
         | 
| 16 16 | 
             
              end
         | 
| 17 | 
            -
             | 
| 17 | 
            +
             | 
| 18 18 | 
             
            end
         | 
| 19 19 |  | 
| 20 20 | 
             
            describe "Billable", "REST methods" do
         | 
| 21 | 
            -
             | 
| 21 | 
            +
             | 
| 22 22 | 
             
              before do
         | 
| 23 23 | 
             
                billable = File.read("spec/fixtures/caren_billable.xml")
         | 
| 24 24 | 
             
                billables = File.read("spec/fixtures/caren_billables.xml")
         | 
| 25 25 | 
             
                billable_search = File.read("spec/fixtures/caren_billables_search.xml")
         | 
| 26 | 
            -
             | 
| 27 | 
            -
                billable_url = Caren::Api.session.url_for( Caren::Billable.resource_url(1) ) | 
| 26 | 
            +
             | 
| 27 | 
            +
                billable_url = Caren::Api.session.url_for( Caren::Billable.resource_url(1) )
         | 
| 28 28 | 
             
                billables_url = Caren::Api.session.url_for( Caren::Billable.resource_url )
         | 
| 29 29 | 
             
                search_url = Caren::Api.session.url_for( "#{Caren::Billable.resource_url}?key=name&value=bedpan" )
         | 
| 30 | 
            -
             | 
| 30 | 
            +
             | 
| 31 31 | 
             
                timestamp = DateTime.now.to_i
         | 
| 32 32 |  | 
| 33 33 | 
             
                FakeWeb.register_uri(:post, billables_url, :timestamp => timestamp, :signature => Caren::Api.session.sign(timestamp) )
         | 
| 34 34 | 
             
                FakeWeb.register_uri(:put, billable_url, :timestamp => timestamp, :signature => Caren::Api.session.sign(timestamp) )
         | 
| 35 | 
            -
                FakeWeb.register_uri(:get, billables_url, :body => billables, :timestamp => timestamp, :signature => Caren::Api.session.sign(timestamp,nil,billables) ) | 
| 36 | 
            -
                FakeWeb.register_uri(:get, billable_url, :body => billable, :timestamp => timestamp, :signature => Caren::Api.session.sign(timestamp,nil,billable) ) | 
| 35 | 
            +
                FakeWeb.register_uri(:get, billables_url, :body => billables, :timestamp => timestamp, :signature => Caren::Api.session.sign(timestamp,nil,billables) )
         | 
| 36 | 
            +
                FakeWeb.register_uri(:get, billable_url, :body => billable, :timestamp => timestamp, :signature => Caren::Api.session.sign(timestamp,nil,billable) )
         | 
| 37 37 | 
             
                FakeWeb.register_uri(:get, search_url, :body => billable_search, :timestamp => timestamp, :signature => Caren::Api.session.sign(timestamp,nil,billable_search) )
         | 
| 38 38 | 
             
              end
         | 
| 39 | 
            -
             | 
| 39 | 
            +
             | 
| 40 40 | 
             
              it "should be able to update a billable" do
         | 
| 41 41 | 
             
                lambda{ Caren::Billable.new( :id => 1, :name => "Bedpan" ).update( Caren::Api.session ) }.should_not raise_error
         | 
| 42 42 | 
             
              end
         | 
| 43 | 
            -
             | 
| 43 | 
            +
             | 
| 44 44 | 
             
              it "should be able to update the photo for a product" do
         | 
| 45 45 | 
             
                lambda{ Caren::Billable.new( :id => 1 ).update_photo( "spec/fixtures/bacon.jpg", Caren::Api.session ) }.should_not raise_error
         | 
| 46 46 | 
             
              end
         | 
| @@ -49,17 +49,17 @@ describe "Billable", "REST methods" do | |
| 49 49 | 
             
                billable = Caren::Billable.find 1, Caren::Api.session
         | 
| 50 50 | 
             
                billable.name.should == "Dishwashing"
         | 
| 51 51 | 
             
              end
         | 
| 52 | 
            -
             | 
| 52 | 
            +
             | 
| 53 53 | 
             
              it "should be able to search for a specific product" do
         | 
| 54 54 | 
             
                billables = Caren::Billable.search :name, "bedpan", Caren::Api.session
         | 
| 55 55 | 
             
                billables.should have(1).things
         | 
| 56 56 | 
             
                billables.first.name.should == "bedpan"
         | 
| 57 57 | 
             
              end
         | 
| 58 | 
            -
             | 
| 58 | 
            +
             | 
| 59 59 | 
             
              it "should be able to find all billables" do
         | 
| 60 60 | 
             
                billables = Caren::Billable.all Caren::Api.session
         | 
| 61 61 | 
             
                billables.should have(2).things
         | 
| 62 62 | 
             
                billables.first.name.should == "Dishwashing"
         | 
| 63 63 | 
             
              end
         | 
| 64 | 
            -
             | 
| 65 | 
            -
            end
         | 
| 64 | 
            +
             | 
| 65 | 
            +
            end
         | 
    
        data/spec/care_provider_spec.rb
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            require 'spec_helper'
         | 
| 2 2 |  | 
| 3 3 | 
             
            describe "CareProvider", "converting to xml" do
         | 
| 4 | 
            -
             | 
| 4 | 
            +
             | 
| 5 5 | 
             
              before do
         | 
| 6 6 | 
             
                @care_provider_a = Caren::CareProvider.new( :name => "Zuwe",
         | 
| 7 7 | 
             
                  :telephone => "112",
         | 
| @@ -17,7 +17,7 @@ describe "CareProvider", "converting to xml" do | |
| 17 17 | 
             
                  :show_employee_name_as_title => true,
         | 
| 18 18 | 
             
                  :show_employee_names => true,
         | 
| 19 19 | 
             
                  :communication => true )
         | 
| 20 | 
            -
             | 
| 20 | 
            +
             | 
| 21 21 | 
             
                @care_provider_b = Caren::CareProvider.new( :name => "Aveant",
         | 
| 22 22 | 
             
                  :telephone => "112",
         | 
| 23 23 | 
             
                  :website => "http://www.aveant.nl",
         | 
| @@ -31,17 +31,17 @@ describe "CareProvider", "converting to xml" do | |
| 31 31 | 
             
                  :max_start => "00:00",
         | 
| 32 32 | 
             
                  :show_employee_name_as_title => true,
         | 
| 33 33 | 
             
                  :show_employee_names => true,
         | 
| 34 | 
            -
                  :communication => true ) | 
| 34 | 
            +
                  :communication => true )
         | 
| 35 35 | 
             
              end
         | 
| 36 | 
            -
             | 
| 36 | 
            +
             | 
| 37 37 | 
             
              it "should be able to convert a person to valid xml" do
         | 
| 38 38 | 
             
                @care_provider_a.should convert_to_valid_caren_xml
         | 
| 39 39 | 
             
              end
         | 
| 40 | 
            -
             | 
| 40 | 
            +
             | 
| 41 41 | 
             
              it "should be able to convert an array of people to valid xml" do
         | 
| 42 42 | 
             
                [@care_provider_a,@care_provider_b].should convert_to_valid_caren_array_xml
         | 
| 43 43 | 
             
              end
         | 
| 44 | 
            -
             | 
| 44 | 
            +
             | 
| 45 45 | 
             
              it "should be able to generate a proper xml file to update the logo" do
         | 
| 46 46 | 
             
                filename = "spec/fixtures/bacon.jpg"
         | 
| 47 47 | 
             
                xml = @care_provider_a.to_logo_xml filename
         | 
| @@ -52,11 +52,11 @@ describe "CareProvider", "converting to xml" do | |
| 52 52 | 
             
                  cp.text.should == Base64.encode64(File.open(filename).read)
         | 
| 53 53 | 
             
                end
         | 
| 54 54 | 
             
              end
         | 
| 55 | 
            -
             | 
| 55 | 
            +
             | 
| 56 56 | 
             
            end
         | 
| 57 57 |  | 
| 58 58 | 
             
            describe "CareProvider" do
         | 
| 59 | 
            -
             | 
| 59 | 
            +
             | 
| 60 60 | 
             
              it "should be able to convert a image file path to a hash suited for xml conversion" do
         | 
| 61 61 | 
             
                filename = "spec/fixtures/bacon.jpg"
         | 
| 62 62 | 
             
                logo = Caren::CareProvider.hash_from_image( filename )
         | 
| @@ -64,53 +64,53 @@ describe "CareProvider" do | |
| 64 64 | 
             
                logo[:name].should == "bacon.jpg"
         | 
| 65 65 | 
             
                logo[:content].should == Base64.encode64(File.open(filename).read)
         | 
| 66 66 | 
             
              end
         | 
| 67 | 
            -
             | 
| 67 | 
            +
             | 
| 68 68 | 
             
            end
         | 
| 69 69 |  | 
| 70 70 | 
             
            describe "CareProvider", "REST methods" do
         | 
| 71 | 
            -
             | 
| 71 | 
            +
             | 
| 72 72 | 
             
              before do
         | 
| 73 73 | 
             
                care_provider = File.read("spec/fixtures/caren_care_provider.xml")
         | 
| 74 74 | 
             
                care_providers = File.read("spec/fixtures/caren_care_providers.xml")
         | 
| 75 75 | 
             
                care_providers_search = File.read("spec/fixtures/caren_care_providers_search.xml")
         | 
| 76 76 |  | 
| 77 | 
            -
                care_provider_url = Caren::Api.session.url_for( Caren::CareProvider.resource_url(1) ) | 
| 77 | 
            +
                care_provider_url = Caren::Api.session.url_for( Caren::CareProvider.resource_url(1) )
         | 
| 78 78 | 
             
                care_providers_url = Caren::Api.session.url_for( Caren::CareProvider.resource_url )
         | 
| 79 79 | 
             
                search_url = Caren::Api.session.url_for( "#{Caren::CareProvider.resource_url}?key=url-shortcut&value=pantein" )
         | 
| 80 | 
            -
             | 
| 80 | 
            +
             | 
| 81 81 | 
             
                timestamp = DateTime.now.to_i
         | 
| 82 | 
            -
             | 
| 83 | 
            -
                FakeWeb.register_uri(:put, care_provider_url, :timestamp => timestamp, :signature => Caren::Api.session.sign(timestamp) ) | 
| 82 | 
            +
             | 
| 83 | 
            +
                FakeWeb.register_uri(:put, care_provider_url, :timestamp => timestamp, :signature => Caren::Api.session.sign(timestamp) )
         | 
| 84 84 | 
             
                FakeWeb.register_uri(:get, care_provider_url, :body => care_provider, :timestamp => timestamp, :signature => Caren::Api.session.sign(timestamp,nil,care_provider) )
         | 
| 85 85 | 
             
                FakeWeb.register_uri(:get, care_providers_url, :body => care_providers, :timestamp => timestamp, :signature => Caren::Api.session.sign(timestamp,nil,care_providers) )
         | 
| 86 86 | 
             
                FakeWeb.register_uri(:get, search_url, :body => care_providers_search, :timestamp => timestamp, :signature => Caren::Api.session.sign(timestamp,nil,care_providers_search) )
         | 
| 87 87 | 
             
              end
         | 
| 88 | 
            -
             | 
| 88 | 
            +
             | 
| 89 89 | 
             
              it "should be able to update a care provider" do
         | 
| 90 90 | 
             
                lambda{ Caren::CareProvider.new( :id => 1, :name => "Test" ).update( Caren::Api.session ) }.should_not raise_error
         | 
| 91 91 | 
             
              end
         | 
| 92 | 
            -
             | 
| 92 | 
            +
             | 
| 93 93 | 
             
              it "should be able to update the logo for a care provider" do
         | 
| 94 94 | 
             
                lambda{ Caren::CareProvider.new( :id => 1 ).update_logo( "spec/fixtures/bacon.jpg", Caren::Api.session ) }.should_not raise_error
         | 
| 95 95 | 
             
              end
         | 
| 96 | 
            -
             | 
| 96 | 
            +
             | 
| 97 97 | 
             
              it "should be able to search for a specific care provider" do
         | 
| 98 98 | 
             
                care_providers = Caren::CareProvider.search :url_shortcut, "pantein", Caren::Api.session
         | 
| 99 99 | 
             
                care_providers.should have(1).things
         | 
| 100 100 | 
             
                care_providers.first.name.should == "Pantein"
         | 
| 101 101 | 
             
                care_providers.first.url_shortcut.should == "pantein"
         | 
| 102 102 | 
             
              end
         | 
| 103 | 
            -
             | 
| 103 | 
            +
             | 
| 104 104 | 
             
              it "should be able to find all care providers" do
         | 
| 105 105 | 
             
                care_providers = Caren::CareProvider.all Caren::Api.session
         | 
| 106 106 | 
             
                care_providers.should have(2).things
         | 
| 107 107 | 
             
                care_providers.first.name.should == "Demo"
         | 
| 108 108 | 
             
                care_providers.first.url_shortcut.should == "demo"
         | 
| 109 109 | 
             
              end
         | 
| 110 | 
            -
             | 
| 110 | 
            +
             | 
| 111 111 | 
             
              it "should be able to find one care providers" do
         | 
| 112 112 | 
             
                care_provider = Caren::CareProvider.find 1, Caren::Api.session
         | 
| 113 113 | 
             
                care_provider.name.should == "Demo"
         | 
| 114 114 | 
             
              end
         | 
| 115 | 
            -
             | 
| 116 | 
            -
            end
         | 
| 115 | 
            +
             | 
| 116 | 
            +
            end
         | 
    
        data/spec/caren_spec.rb
    CHANGED
    
    | @@ -1,53 +1,53 @@ | |
| 1 1 | 
             
            require 'spec_helper'
         | 
| 2 2 |  | 
| 3 3 | 
             
            describe "Caren", "signature checks" do
         | 
| 4 | 
            -
             | 
| 4 | 
            +
             | 
| 5 5 | 
             
              before do
         | 
| 6 6 | 
             
                @incorrect_url = "/test_with_incorrect_signature"
         | 
| 7 7 | 
             
                @correct_url   = "/test_with_correct_signature"
         | 
| 8 8 | 
             
                @error_url     = "/test_with_errors"
         | 
| 9 | 
            -
             | 
| 9 | 
            +
             | 
| 10 10 | 
             
                FakeWeb.register_uri(:get, Caren::Api.session.url_for(@incorrect_url), :body => "TEST", :signature => "[INCORRECT]" )
         | 
| 11 11 | 
             
                FakeWeb.register_uri(:post, Caren::Api.session.url_for(@incorrect_url), :body => "TEST", :signature => "[INCORRECT]" )
         | 
| 12 12 | 
             
                FakeWeb.register_uri(:put, Caren::Api.session.url_for(@incorrect_url), :body => "TEST", :signature => "[INCORRECT]" )
         | 
| 13 13 | 
             
                FakeWeb.register_uri(:delete, Caren::Api.session.url_for(@incorrect_url), :body => "TEST", :signature => "[INCORRECT]" )
         | 
| 14 | 
            -
             | 
| 14 | 
            +
             | 
| 15 15 | 
             
                FakeWeb.register_uri(:get, Caren::Api.session.url_for(@correct_url), :body => "TEST", :signature => Caren::Api.session.sign("TEST") )
         | 
| 16 16 | 
             
                FakeWeb.register_uri(:post, Caren::Api.session.url_for(@correct_url), :body => "TEST", :signature => Caren::Api.session.sign("TEST") )
         | 
| 17 17 | 
             
                FakeWeb.register_uri(:put, Caren::Api.session.url_for(@correct_url), :body => "TEST", :signature => Caren::Api.session.sign("TEST") )
         | 
| 18 18 | 
             
                FakeWeb.register_uri(:delete, Caren::Api.session.url_for(@correct_url), :body => "TEST", :signature => Caren::Api.session.sign("TEST") )
         | 
| 19 | 
            -
             | 
| 19 | 
            +
             | 
| 20 20 | 
             
                errors = File.read "spec/fixtures/caren_care_provider_validation.xml"
         | 
| 21 | 
            -
                unauth = File.read "spec/fixtures/caren_unauthorized.xml" | 
| 21 | 
            +
                unauth = File.read "spec/fixtures/caren_unauthorized.xml"
         | 
| 22 22 | 
             
                FakeWeb.register_uri(:get, Caren::Api.session.url_for(@error_url), :status => 406, :body => errors, :signature => Caren::Api.session.sign(errors) )
         | 
| 23 23 | 
             
                FakeWeb.register_uri(:post, Caren::Api.session.url_for(@error_url), :status => 406, :body => errors, :signature => Caren::Api.session.sign(errors) )
         | 
| 24 24 | 
             
                FakeWeb.register_uri(:put, Caren::Api.session.url_for(@error_url), :status => 406, :body => errors, :signature => Caren::Api.session.sign(errors) )
         | 
| 25 25 | 
             
                FakeWeb.register_uri(:delete, Caren::Api.session.url_for(@error_url), :status => 403, :body => unauth, :signature => Caren::Api.session.sign(unauth) )
         | 
| 26 26 | 
             
              end
         | 
| 27 | 
            -
             | 
| 27 | 
            +
             | 
| 28 28 | 
             
              it "should not accept result swith an incorrect signature" do
         | 
| 29 29 | 
             
                lambda{ Caren::Api.session.get @incorrect_url }.should raise_error
         | 
| 30 30 | 
             
                lambda{ Caren::Api.session.post @incorrect_url, "" }.should raise_error
         | 
| 31 31 | 
             
                lambda{ Caren::Api.session.put @incorrect_url, "" }.should raise_error
         | 
| 32 32 | 
             
                lambda{ Caren::Api.session.delete @incorrect_url }.should raise_error
         | 
| 33 33 | 
             
              end
         | 
| 34 | 
            -
             | 
| 34 | 
            +
             | 
| 35 35 | 
             
              it "should accept results with a correct signature" do
         | 
| 36 36 | 
             
                lambda{ Caren::Api.session.get @correct_url }.should_not raise_error
         | 
| 37 37 | 
             
                lambda{ Caren::Api.session.post @correct_url, "" }.should_not raise_error
         | 
| 38 38 | 
             
                lambda{ Caren::Api.session.put @correct_url, "" }.should_not raise_error
         | 
| 39 39 | 
             
                lambda{ Caren::Api.session.delete @correct_url }.should_not raise_error
         | 
| 40 40 | 
             
              end
         | 
| 41 | 
            -
             | 
| 41 | 
            +
             | 
| 42 42 | 
             
              it "should be able to handle server side errors" do
         | 
| 43 | 
            -
             | 
| 43 | 
            +
             | 
| 44 44 | 
             
                lambda{ Caren::Api.session.get @error_url }.should raise_error(Caren::Exceptions::ServerSideError)
         | 
| 45 45 | 
             
                lambda{ Caren::Api.session.put @error_url, "" }.should raise_error(Caren::Exceptions::ServerSideError)
         | 
| 46 46 | 
             
                lambda{ Caren::Api.session.post @error_url, "" }.should raise_error(Caren::Exceptions::ServerSideError)
         | 
| 47 47 | 
             
                lambda{ Caren::Api.session.delete @error_url }.should raise_error(Caren::Exceptions::ServerSideError)
         | 
| 48 | 
            -
             | 
| 48 | 
            +
             | 
| 49 49 | 
             
              end
         | 
| 50 | 
            -
             | 
| 50 | 
            +
             | 
| 51 51 | 
             
              it "should be able to handle authorization errors" do
         | 
| 52 52 | 
             
                begin
         | 
| 53 53 | 
             
                  Caren::Api.session.delete @error_url
         | 
| @@ -56,9 +56,9 @@ describe "Caren", "signature checks" do | |
| 56 56 | 
             
                  e.errors.first.class.should == Caren::Error
         | 
| 57 57 | 
             
                  e.errors.first.category.should == "unauthorized"
         | 
| 58 58 | 
             
                  e.errors.first.message.should == "You are not allowed to perform this action."
         | 
| 59 | 
            -
                end | 
| 59 | 
            +
                end
         | 
| 60 60 | 
             
              end
         | 
| 61 | 
            -
             | 
| 61 | 
            +
             | 
| 62 62 | 
             
              it "should be able to handle validation errors" do
         | 
| 63 63 | 
             
                begin
         | 
| 64 64 | 
             
                  Caren::Api.session.get @error_url
         | 
| @@ -68,25 +68,25 @@ describe "Caren", "signature checks" do | |
| 68 68 | 
             
                  e.errors.first.message.should == "has already been taken"
         | 
| 69 69 | 
             
                  e.errors.first.field.should == :url_shortcut
         | 
| 70 70 | 
             
                  e.errors.first.to_s.should == "`url_shortcut` has already been taken"
         | 
| 71 | 
            -
                end | 
| 71 | 
            +
                end
         | 
| 72 72 | 
             
              end
         | 
| 73 | 
            -
             | 
| 73 | 
            +
             | 
| 74 74 | 
             
              it "should be able to handle incoming xml from caren" do
         | 
| 75 75 | 
             
                incoming = File.read "spec/fixtures/incoming.xml"
         | 
| 76 76 | 
             
                timestamp = DateTime.now.to_i
         | 
| 77 77 | 
             
                results  = Caren::Api.session.incoming(incoming, Caren::Api.session.sign(timestamp, nil, incoming), timestamp )
         | 
| 78 | 
            -
                results.should have(4).things | 
| 78 | 
            +
                results.should have(4).things
         | 
| 79 79 | 
             
                external_messages = results.select{ |x| x.is_a?(Caren::ExternalMessage) }
         | 
| 80 | 
            -
                external_messages.first.id.should == 1 | 
| 80 | 
            +
                external_messages.first.id.should == 1
         | 
| 81 81 | 
             
                links = results.select{ |x| x.is_a?(Caren::Link) }
         | 
| 82 82 | 
             
                links.last.id.should == 3
         | 
| 83 83 | 
             
              end
         | 
| 84 | 
            -
             | 
| 84 | 
            +
             | 
| 85 85 | 
             
              it "should be able to parse just one incoming object from xml from caren" do
         | 
| 86 86 | 
             
                incoming = File.read "spec/fixtures/incoming_single_object.xml"
         | 
| 87 | 
            -
                object = Caren::Api.session.parse_object(incoming) | 
| 88 | 
            -
                object.body.should == 'Expecting this to work somehow ...' | 
| 87 | 
            +
                object = Caren::Api.session.parse_object(incoming)
         | 
| 88 | 
            +
                object.body.should == 'Expecting this to work somehow ...'
         | 
| 89 89 | 
             
                object.id.should == 1
         | 
| 90 90 | 
             
              end
         | 
| 91 | 
            -
             | 
| 92 | 
            -
            end
         | 
| 91 | 
            +
             | 
| 92 | 
            +
            end
         | 
    
        data/spec/client_spec.rb
    CHANGED
    
    | @@ -1,37 +1,37 @@ | |
| 1 1 | 
             
            require 'spec_helper'
         | 
| 2 2 |  | 
| 3 3 | 
             
            describe "Client", "converting to xml" do
         | 
| 4 | 
            -
             | 
| 4 | 
            +
             | 
| 5 5 | 
             
              before do
         | 
| 6 | 
            -
                @client_a = Caren::Client.new( :external_id => 1, | 
| 7 | 
            -
                                               :uid => "ABC123", | 
| 8 | 
            -
                                               :first_name => "Andre", | 
| 9 | 
            -
                                               :last_name => "Foeken", | 
| 10 | 
            -
                                               :male => true, | 
| 6 | 
            +
                @client_a = Caren::Client.new( :external_id => 1,
         | 
| 7 | 
            +
                                               :uid => "ABC123",
         | 
| 8 | 
            +
                                               :first_name => "Andre",
         | 
| 9 | 
            +
                                               :last_name => "Foeken",
         | 
| 10 | 
            +
                                               :male => true,
         | 
| 11 11 | 
             
                                               :date_of_birth => 80.years.ago.to_date,
         | 
| 12 | 
            -
                                               :address_street => "Sesamestreet 1", | 
| 13 | 
            -
                                               :address_zipcode => "7500AA", | 
| 14 | 
            -
                                               :address_city => "Groenlo", | 
| 12 | 
            +
                                               :address_street => "Sesamestreet 1",
         | 
| 13 | 
            +
                                               :address_zipcode => "7500AA",
         | 
| 14 | 
            +
                                               :address_city => "Groenlo",
         | 
| 15 15 | 
             
                                               :address_country => "The Netherlands" )
         | 
| 16 | 
            -
             | 
| 17 | 
            -
                @client_b = Caren::Client.new( :external_id => 2, | 
| 18 | 
            -
                                               :uid => "ABC456", | 
| 19 | 
            -
                                               :first_name => "Oscar", | 
| 20 | 
            -
                                               :last_name => "Foeken", | 
| 21 | 
            -
                                               :male => true, | 
| 16 | 
            +
             | 
| 17 | 
            +
                @client_b = Caren::Client.new( :external_id => 2,
         | 
| 18 | 
            +
                                               :uid => "ABC456",
         | 
| 19 | 
            +
                                               :first_name => "Oscar",
         | 
| 20 | 
            +
                                               :last_name => "Foeken",
         | 
| 21 | 
            +
                                               :male => true,
         | 
| 22 22 | 
             
                                               :date_of_birth => 80.years.ago.to_date,
         | 
| 23 | 
            -
                                               :address_street => "Sesamestreet 1", | 
| 24 | 
            -
                                               :address_zipcode => "7500AA", | 
| 25 | 
            -
                                               :address_city => "Groenlo", | 
| 23 | 
            +
                                               :address_street => "Sesamestreet 1",
         | 
| 24 | 
            +
                                               :address_zipcode => "7500AA",
         | 
| 25 | 
            +
                                               :address_city => "Groenlo",
         | 
| 26 26 | 
             
                                               :address_country => "The Netherlands" )
         | 
| 27 27 | 
             
              end
         | 
| 28 | 
            -
             | 
| 28 | 
            +
             | 
| 29 29 | 
             
              it "should be able to convert a client to valid xml" do
         | 
| 30 30 | 
             
                @client_a.should convert_to_valid_caren_xml
         | 
| 31 31 | 
             
              end
         | 
| 32 | 
            -
             | 
| 32 | 
            +
             | 
| 33 33 | 
             
              it "should be able to convert an array of people to valid xml" do
         | 
| 34 34 | 
             
                [@client_a,@client_b].should convert_to_valid_caren_array_xml
         | 
| 35 35 | 
             
              end
         | 
| 36 | 
            -
             | 
| 37 | 
            -
            end
         | 
| 36 | 
            +
             | 
| 37 | 
            +
            end
         | 
| @@ -1,68 +1,68 @@ | |
| 1 1 | 
             
            require 'spec_helper'
         | 
| 2 2 |  | 
| 3 3 | 
             
            describe "ExternalMessage", "converting to xml" do
         | 
| 4 | 
            -
             | 
| 4 | 
            +
             | 
| 5 5 | 
             
              before do
         | 
| 6 6 | 
             
                @external_message_a = Caren::ExternalMessage.new( :person_name => "Andre Foeken",
         | 
| 7 7 | 
             
                                                                  :external_person_id => 1,
         | 
| 8 8 | 
             
                                                                  :body => "Test message",
         | 
| 9 9 | 
             
                                                                  :external_id => 1,
         | 
| 10 10 | 
             
                                                                  :in_reply_to_id => nil )
         | 
| 11 | 
            -
             | 
| 11 | 
            +
             | 
| 12 12 | 
             
                @external_message_b = Caren::ExternalMessage.new( :person_name => "Ria Foeken",
         | 
| 13 13 | 
             
                                                                  :external_person_id => 2,
         | 
| 14 14 | 
             
                                                                  :body => "Test message reply",
         | 
| 15 15 | 
             
                                                                  :external_id => 2,
         | 
| 16 16 | 
             
                                                                  :in_reply_to_id => 99 )
         | 
| 17 17 | 
             
              end
         | 
| 18 | 
            -
             | 
| 18 | 
            +
             | 
| 19 19 | 
             
              it "should be able to convert a link to valid xml" do
         | 
| 20 20 | 
             
                @external_message_a.should convert_to_valid_caren_xml
         | 
| 21 21 | 
             
              end
         | 
| 22 | 
            -
             | 
| 22 | 
            +
             | 
| 23 23 | 
             
              it "should be able to convert an array of links to valid xml" do
         | 
| 24 24 | 
             
                [@external_message_a,@external_message_b].should convert_to_valid_caren_array_xml
         | 
| 25 25 | 
             
              end
         | 
| 26 | 
            -
             | 
| 26 | 
            +
             | 
| 27 27 | 
             
            end
         | 
| 28 28 |  | 
| 29 29 | 
             
            describe "ExternalMessage", "REST methods" do
         | 
| 30 | 
            -
             | 
| 30 | 
            +
             | 
| 31 31 | 
             
              before do
         | 
| 32 32 | 
             
                message = File.read("spec/fixtures/caren_external_message.xml")
         | 
| 33 33 | 
             
                messages = File.read("spec/fixtures/caren_external_messages.xml")
         | 
| 34 | 
            -
             | 
| 34 | 
            +
             | 
| 35 35 | 
             
                messages_url = Caren::Api.session.url_for( Caren::ExternalMessage.resource_url(1) )
         | 
| 36 | 
            -
                message_url = Caren::Api.session.url_for( Caren::ExternalMessage.resource_url(1,1) ) | 
| 36 | 
            +
                message_url = Caren::Api.session.url_for( Caren::ExternalMessage.resource_url(1,1) )
         | 
| 37 37 | 
             
                timestamp = DateTime.now.to_i
         | 
| 38 | 
            -
             | 
| 38 | 
            +
             | 
| 39 39 | 
             
                FakeWeb.register_uri(:get, messages_url, :body => messages, :signature => Caren::Api.session.sign(timestamp,nil,messages), :timestamp => timestamp )
         | 
| 40 40 | 
             
                FakeWeb.register_uri(:get, message_url, :body => message, :signature => Caren::Api.session.sign(timestamp,nil,message), :timestamp => timestamp )
         | 
| 41 41 | 
             
                FakeWeb.register_uri(:post, messages_url, :status => 201, :signature => Caren::Api.session.sign(timestamp), :timestamp => timestamp )
         | 
| 42 42 | 
             
                FakeWeb.register_uri(:delete, message_url, :signature => Caren::Api.session.sign(timestamp), :timestamp => timestamp )
         | 
| 43 43 | 
             
              end
         | 
| 44 | 
            -
             | 
| 44 | 
            +
             | 
| 45 45 | 
             
              it "should be able to find all external messages" do
         | 
| 46 46 | 
             
                messages = Caren::ExternalMessage.all 1, Caren::Api.session
         | 
| 47 47 | 
             
                messages.should have(2).things
         | 
| 48 48 | 
             
                messages.first.body.should == "Test"
         | 
| 49 49 | 
             
              end
         | 
| 50 | 
            -
             | 
| 50 | 
            +
             | 
| 51 51 | 
             
              it "should be able to find one external messages" do
         | 
| 52 52 | 
             
                message = Caren::ExternalMessage.find 1, 1, Caren::Api.session
         | 
| 53 53 | 
             
                message.body.should == "Test"
         | 
| 54 54 | 
             
              end
         | 
| 55 | 
            -
             | 
| 55 | 
            +
             | 
| 56 56 | 
             
              it "should be able to create an external message" do
         | 
| 57 | 
            -
                lambda{ Caren::ExternalMessage.new( :person_name => "Andre Foeken", | 
| 58 | 
            -
                                                    :external_person_id => 1, | 
| 59 | 
            -
                                                    :body => "Test message", | 
| 60 | 
            -
                                                    :external_id => 1, | 
| 57 | 
            +
                lambda{ Caren::ExternalMessage.new( :person_name => "Andre Foeken",
         | 
| 58 | 
            +
                                                    :external_person_id => 1,
         | 
| 59 | 
            +
                                                    :body => "Test message",
         | 
| 60 | 
            +
                                                    :external_id => 1,
         | 
| 61 61 | 
             
                                                    :subject_id => 1 ).create(Caren::Api.session) }.should_not raise_error
         | 
| 62 62 | 
             
              end
         | 
| 63 | 
            -
             | 
| 63 | 
            +
             | 
| 64 64 | 
             
              it "should be able to delete an external message" do
         | 
| 65 65 | 
             
                lambda{ Caren::ExternalMessage.new( :subject_id => 1, :id => 1 ).delete(Caren::Api.session) }.should_not raise_error
         | 
| 66 66 | 
             
              end
         | 
| 67 | 
            -
             | 
| 68 | 
            -
            end
         | 
| 67 | 
            +
             | 
| 68 | 
            +
            end
         | 
    
        data/spec/link_spec.rb
    CHANGED
    
    | @@ -1,45 +1,45 @@ | |
| 1 1 | 
             
            require 'spec_helper'
         | 
| 2 2 |  | 
| 3 3 | 
             
            describe "Link", "converting to xml" do
         | 
| 4 | 
            -
             | 
| 4 | 
            +
             | 
| 5 5 | 
             
              before do
         | 
| 6 6 | 
             
                @link_a = Caren::Link.new( :patient_number => "12345" )
         | 
| 7 7 | 
             
                @link_b = Caren::Link.new( :patient_number => "67890" )
         | 
| 8 8 | 
             
              end
         | 
| 9 | 
            -
             | 
| 9 | 
            +
             | 
| 10 10 | 
             
              it "should be able to convert a link to valid xml" do
         | 
| 11 11 | 
             
                @link_a.should convert_to_valid_caren_xml
         | 
| 12 12 | 
             
              end
         | 
| 13 | 
            -
             | 
| 13 | 
            +
             | 
| 14 14 | 
             
              it "should be able to convert an array of links to valid xml" do
         | 
| 15 15 | 
             
                [@link_a,@link_b].should convert_to_valid_caren_array_xml
         | 
| 16 16 | 
             
              end
         | 
| 17 | 
            -
             | 
| 17 | 
            +
             | 
| 18 18 | 
             
            end
         | 
| 19 19 |  | 
| 20 20 | 
             
            describe "Link", "REST methods" do
         | 
| 21 | 
            -
             | 
| 21 | 
            +
             | 
| 22 22 | 
             
              before do
         | 
| 23 23 | 
             
                link  = File.read("spec/fixtures/caren_link.xml")
         | 
| 24 24 | 
             
                links  = File.read("spec/fixtures/caren_links.xml")
         | 
| 25 25 | 
             
                search = File.read("spec/fixtures/caren_links_search.xml")
         | 
| 26 | 
            -
             | 
| 26 | 
            +
             | 
| 27 27 | 
             
                link_url  = Caren::Api.session.url_for(Caren::Link.resource_url(1))
         | 
| 28 28 | 
             
                links_url  = Caren::Api.session.url_for(Caren::Link.resource_url)
         | 
| 29 29 | 
             
                search_url = Caren::Api.session.url_for("#{Caren::Link.resource_url}?key=external-id&value=1")
         | 
| 30 | 
            -
             | 
| 30 | 
            +
             | 
| 31 31 | 
             
                timestamp = DateTime.now.to_i
         | 
| 32 | 
            -
             | 
| 32 | 
            +
             | 
| 33 33 | 
             
                FakeWeb.register_uri(:get, link_url, :body => link, :timestamp => timestamp, :signature => Caren::Api.session.sign(timestamp,nil,link) )
         | 
| 34 34 | 
             
                FakeWeb.register_uri(:get, links_url, :body => links, :timestamp => timestamp, :signature => Caren::Api.session.sign(timestamp,nil,links) )
         | 
| 35 35 | 
             
                FakeWeb.register_uri(:get, search_url, :body => search, :timestamp => timestamp, :signature => Caren::Api.session.sign(timestamp,nil,search) )
         | 
| 36 36 | 
             
                FakeWeb.register_uri(:post, links_url, :status => 201, :timestamp => timestamp, :signature => Caren::Api.session.sign(timestamp) )
         | 
| 37 37 | 
             
              end
         | 
| 38 | 
            -
             | 
| 38 | 
            +
             | 
| 39 39 | 
             
              it "should be able to create a new link using the API" do
         | 
| 40 40 | 
             
                lambda{ Caren::Link.new( :patient_number => "12345" ).create(Caren::Api.session) }.should_not raise_error
         | 
| 41 41 | 
             
              end
         | 
| 42 | 
            -
             | 
| 42 | 
            +
             | 
| 43 43 | 
             
              it "should be find all links using the API" do
         | 
| 44 44 | 
             
                links = Caren::Link.all(Caren::Api.session)
         | 
| 45 45 | 
             
                links.should have(3).things
         | 
| @@ -49,15 +49,15 @@ describe "Link", "REST methods" do | |
| 49 49 | 
             
                links.first.person_name.should == "Andre Foeken"
         | 
| 50 50 | 
             
                links.first.person_id.should == 3
         | 
| 51 51 | 
             
              end
         | 
| 52 | 
            -
             | 
| 52 | 
            +
             | 
| 53 53 | 
             
              it "should be find all links using the API" do
         | 
| 54 54 | 
             
                link = Caren::Link.find(1,Caren::Api.session)
         | 
| 55 55 | 
             
                link.id.should == 1
         | 
| 56 56 | 
             
              end
         | 
| 57 | 
            -
             | 
| 57 | 
            +
             | 
| 58 58 | 
             
              it "should be find a specific link using the API" do
         | 
| 59 59 | 
             
                links = Caren::Link.search(:external_id, 1, Caren::Api.session)
         | 
| 60 60 | 
             
                links.should have(1).thing
         | 
| 61 61 | 
             
              end
         | 
| 62 | 
            -
             | 
| 63 | 
            -
            end
         | 
| 62 | 
            +
             | 
| 63 | 
            +
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,13 +1,13 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification 
         | 
| 2 2 | 
             
            name: caren-api
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version 
         | 
| 4 | 
            -
              hash:  | 
| 4 | 
            +
              hash: 49
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
              segments: 
         | 
| 7 7 | 
             
              - 0
         | 
| 8 8 | 
             
              - 4
         | 
| 9 | 
            -
              -  | 
| 10 | 
            -
              version: 0.4. | 
| 9 | 
            +
              - 31
         | 
| 10 | 
            +
              version: 0.4.31
         | 
| 11 11 | 
             
            platform: ruby
         | 
| 12 12 | 
             
            authors: 
         | 
| 13 13 | 
             
            - Andre Foeken
         |