roqua-core-api 0.0.29 → 0.0.30
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ChangeLog.md +4 -0
- data/README.md +5 -0
- data/lib/roqua/core_api/base.rb +20 -0
- data/lib/roqua/core_api/create_professional.rb +21 -0
- data/lib/roqua/core_api/delete_dossier_group_right.rb +14 -0
- data/lib/roqua/core_api/dossiers.rb +1 -6
- data/lib/roqua/core_api/list_dossier_group_rights.rb +14 -0
- data/lib/roqua/core_api/models/active_virtus.rb +6 -0
- data/lib/roqua/core_api/models/person.rb +1 -1
- data/lib/roqua/core_api/update_person.rb +1 -11
- data/lib/roqua/core_api/version.rb +1 -1
- data/lib/roqua/core_api.rb +4 -0
- data/spec/lib/roqua/core_api/models/active_virtus_spec.rb +4 -0
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a2762926c89271ebf2621c18b6e70751d5a1bf12
|
4
|
+
data.tar.gz: 99fdc324bb06fa148994b54cdd5df39a8c4bbc48
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 294370405ee1b0dd66096a9b58d9345e29619d29712680e8d3dc0d3cd39e2301344247e63192969a6af9ca4228970672d78c61058c206313e91cb46f2b4032c6
|
7
|
+
data.tar.gz: daa1d7cb0070459f4950743147a7d9084604b730fcbe7ee8d9b5b584af61cd317a3b5b3e918e075a2380719e13c1b4a9fb598474b5e6df789225dab9e16eea84
|
data/ChangeLog.md
CHANGED
data/README.md
CHANGED
@@ -15,6 +15,11 @@ TODO: Description
|
|
15
15
|
|
16
16
|
require 'core_api'
|
17
17
|
|
18
|
+
# List all professionals under a dossier group.
|
19
|
+
Roqua.CoreApi.DossierGroupRights.run!(dossier_group_id:,session:).each do |r|
|
20
|
+
puts r.id, r.firstname, r.lastname
|
21
|
+
end
|
22
|
+
|
18
23
|
## Requirements
|
19
24
|
|
20
25
|
## Install
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Roqua
|
2
|
+
module CoreApi
|
3
|
+
class Base < ActiveInteraction::Base
|
4
|
+
private
|
5
|
+
|
6
|
+
def create_enum(headers, rows)
|
7
|
+
row_class = Struct.new(*headers.map(&:to_sym))
|
8
|
+
rows.lazy.map { |row| row_class.new(*row) }.to_enum
|
9
|
+
end
|
10
|
+
|
11
|
+
def errors_to_object(response, obj)
|
12
|
+
response['errors'].each do |attribute, errors|
|
13
|
+
errors.each do |error|
|
14
|
+
obj.errors.add(attribute, I18n.t("errors.messages.#{error}"))
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Roqua
|
2
|
+
module CoreApi
|
3
|
+
# @api private
|
4
|
+
class CreateProfessional < Base
|
5
|
+
model :session, class: Sessions::OAuthSession
|
6
|
+
string :dossier_group_id
|
7
|
+
model :person, class: Models::Person
|
8
|
+
|
9
|
+
def execute
|
10
|
+
response = session.post "/dossier_groups/#{dossier_group_id}/people",
|
11
|
+
person: person.as_json
|
12
|
+
if response.code == 422
|
13
|
+
errors_to_object(response, person)
|
14
|
+
person
|
15
|
+
else
|
16
|
+
Models::Person.new(response['person'])
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module Roqua
|
2
|
+
module CoreApi
|
3
|
+
# @api private
|
4
|
+
class DeleteDossierGroupRight < Base
|
5
|
+
model :session, class: Sessions::OAuthSession
|
6
|
+
string :dossier_group_id
|
7
|
+
string :right_id
|
8
|
+
|
9
|
+
def execute
|
10
|
+
session.delete "/dossier_groups/#{dossier_group_id}/rights/#{right_id}"
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module Roqua
|
2
2
|
module CoreApi
|
3
3
|
# @api private
|
4
|
-
class Dossiers <
|
4
|
+
class Dossiers < Base
|
5
5
|
model :session, class: Sessions::OAuthSession
|
6
6
|
|
7
7
|
# usage:
|
@@ -12,11 +12,6 @@ module Roqua
|
|
12
12
|
response = session.get "/dossiers"
|
13
13
|
create_enum(response['headers'], response['rows'])
|
14
14
|
end
|
15
|
-
|
16
|
-
def create_enum(headers, rows)
|
17
|
-
row_class = Struct.new(*headers.map(&:to_sym))
|
18
|
-
rows.lazy.map { |row| row_class.new(*row) }.to_enum
|
19
|
-
end
|
20
15
|
end
|
21
16
|
end
|
22
17
|
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module Roqua
|
2
|
+
module CoreApi
|
3
|
+
# @api private
|
4
|
+
class ListDossierGroupRights < Base
|
5
|
+
model :session, class: Sessions::OAuthSession
|
6
|
+
string :dossier_group_id
|
7
|
+
|
8
|
+
def execute
|
9
|
+
response = session.get "/dossier_groups/#{dossier_group_id}/rights"
|
10
|
+
create_enum(response['headers'], response['rows'])
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -8,6 +8,11 @@ class Roqua::CoreApi::Models::ActiveVirtus
|
|
8
8
|
include ActiveModel::Serialization
|
9
9
|
include Virtus.model
|
10
10
|
|
11
|
+
def initialize(params = nil)
|
12
|
+
super
|
13
|
+
dates_from_xi(params)
|
14
|
+
end
|
15
|
+
|
11
16
|
def attributes=(params)
|
12
17
|
dates_from_xi(params)
|
13
18
|
super
|
@@ -21,6 +26,7 @@ class Roqua::CoreApi::Models::ActiveVirtus
|
|
21
26
|
|
22
27
|
# set Date and DateTime attributes by "name(1i)" style params
|
23
28
|
def dates_from_xi(params)
|
29
|
+
return unless params
|
24
30
|
dates_to_change = self.class.attribute_set.select do |a|
|
25
31
|
a.type.primitive <= Date && params.key?("#{a.name}(1i)")
|
26
32
|
end
|
@@ -19,7 +19,7 @@ class Roqua::CoreApi::Models::Person < Roqua::CoreApi::Models::ActiveVirtus
|
|
19
19
|
attribute :zipcode, String
|
20
20
|
attribute :country, String
|
21
21
|
|
22
|
-
validates :role, inclusion: { in: %w( professional patient parent ) }
|
22
|
+
validates :role, inclusion: { in: %w( admin professional patient parent ) }
|
23
23
|
|
24
24
|
def persisted?
|
25
25
|
id.present?
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module Roqua
|
2
2
|
module CoreApi
|
3
3
|
# @api private
|
4
|
-
class UpdatePerson <
|
4
|
+
class UpdatePerson < Base
|
5
5
|
model :session, class: Sessions::OAuthSession
|
6
6
|
model :person, class: Models::Person
|
7
7
|
|
@@ -18,16 +18,6 @@ module Roqua
|
|
18
18
|
true
|
19
19
|
end
|
20
20
|
end
|
21
|
-
|
22
|
-
private
|
23
|
-
|
24
|
-
def errors_to_object(json, obj)
|
25
|
-
json['errors'].each do |attribute, errors|
|
26
|
-
errors.each do |error|
|
27
|
-
obj.errors.add(attribute, I18n.t("errors.messages.#{error}"))
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
21
|
end
|
32
22
|
end
|
33
23
|
end
|
data/lib/roqua/core_api.rb
CHANGED
@@ -2,8 +2,12 @@ require 'active_interaction'
|
|
2
2
|
require 'roqua/core_api/version'
|
3
3
|
require 'roqua/core_api/sessions'
|
4
4
|
require 'roqua/core_api/models'
|
5
|
+
require 'roqua/core_api/base'
|
5
6
|
require 'roqua/core_api/dossiers'
|
6
7
|
require 'roqua/core_api/dossier_groups'
|
8
|
+
require 'roqua/core_api/list_dossier_group_rights'
|
9
|
+
require 'roqua/core_api/delete_dossier_group_right'
|
10
|
+
require 'roqua/core_api/create_professional'
|
7
11
|
require 'roqua/core_api/create_dossier'
|
8
12
|
require 'roqua/core_api/create_dossier_group'
|
9
13
|
require 'roqua/core_api/send_email_to'
|
@@ -20,6 +20,10 @@ module Roqua
|
|
20
20
|
subject.attributes = { 'date(1i)' => '1999', 'date(2i)' => '12', 'date(3i)' => '32'}
|
21
21
|
expect(subject.errors[:date][0]).to match 'invalid_date'
|
22
22
|
end
|
23
|
+
it 'can create new with date(i1) params' do
|
24
|
+
foo = Foo.new('date(1i)' => '1999', 'date(2i)' => '12', 'date(3i)' => '8')
|
25
|
+
expect(foo.date).to eq Date.new(1999, 12, 8)
|
26
|
+
end
|
23
27
|
end
|
24
28
|
|
25
29
|
describe 'DateTime' do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: roqua-core-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.30
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marten Veldthuis
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-05-
|
11
|
+
date: 2014-05-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|
@@ -183,10 +183,14 @@ files:
|
|
183
183
|
- core_api.gemspec
|
184
184
|
- lib/roqua-core-api.rb
|
185
185
|
- lib/roqua/core_api.rb
|
186
|
+
- lib/roqua/core_api/base.rb
|
186
187
|
- lib/roqua/core_api/create_dossier.rb
|
187
188
|
- lib/roqua/core_api/create_dossier_group.rb
|
189
|
+
- lib/roqua/core_api/create_professional.rb
|
190
|
+
- lib/roqua/core_api/delete_dossier_group_right.rb
|
188
191
|
- lib/roqua/core_api/dossier_groups.rb
|
189
192
|
- lib/roqua/core_api/dossiers.rb
|
193
|
+
- lib/roqua/core_api/list_dossier_group_rights.rb
|
190
194
|
- lib/roqua/core_api/models.rb
|
191
195
|
- lib/roqua/core_api/models/active_virtus.rb
|
192
196
|
- lib/roqua/core_api/models/dossier.rb
|