medpass_resource_api 0.2.6 → 0.2.8

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/.gitignore ADDED
@@ -0,0 +1,3 @@
1
+ pkg/*
2
+ *.gem
3
+ .bundle
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in medpass_resource_api.gemspec
4
+ gemspec
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
data/init.rb ADDED
@@ -0,0 +1,2 @@
1
+ require 'medpass_resource_api'
2
+
@@ -1,230 +1,9 @@
1
+ require 'json'
1
2
  require 'singleton'
2
- require 'active_resource'
3
-
4
-
5
- module MedpassResourceApi
6
-
7
- USER_ARGS = [:login, :password, :group_id].freeze
8
- PERSONAL_PROFILE_ARGS = [:email, :first_name, :last_name, :dob, :address, :postcode, :city, :phone, :mobile, :occupation_id, :nd, :gadu, :skype, :city_id, :province_id, :title, :biography]
9
- SPECIALTY_PROFILE_ARGS = [:pwz, :specialty_id]
10
-
11
- class Configuration
12
- attr_accessor :api_key
13
- attr_accessor :medpass_url
14
- attr_accessor :trust_root
15
- end
16
-
17
- def self.configure(&block)
18
- Base.configure(&block)
19
- end
20
-
21
- def self.configuration
22
- Base.configuration
23
- end
24
-
25
- class Base
26
-
27
- @@configuration = nil
28
-
29
- def self.configuration
30
- @@configuration
31
- end
32
-
33
- def self.configuration=(val)
34
- @@configuration = val
35
- end
36
-
37
- def self.configure
38
- self.configuration ||= Configuration.new
39
- yield(configuration)
40
- end
41
-
42
-
43
- def self.register_user(group_id = 1, args = {}, portal_name = nil)
44
- arguments = {:user => get_user_args(args, group_id, portal_name), :personal_profile => get_personal_profile_args(args)}
45
- begin
46
- res = MedpassResourceApi::MedpassUser.post(:register, :api_key => @@configuration.api_key, :args => arguments)
47
- wrap_result(JSON.parse(res.response.body))
48
- rescue ActiveResource::ResourceInvalid => error
49
- wrap_error(error)
50
- end
51
- end
52
-
53
- def self.register_doctor(args = {}, portal_name = nil)
54
- arguments = {:user => get_user_args(args, 2, portal_name),
55
- :personal_profile => get_personal_profile_args(args),
56
- :specialty_profile => get_specialty_profile_args(args)}
57
- begin
58
- res = MedpassResourceApi::MedpassUser.post(:register, :api_key => @@configuration.api_key, :args => arguments)
59
- wrap_result(JSON.parse(res.response.body))
60
- rescue ActiveResource::ResourceInvalid => error
61
- wrap_error(error)
62
- end
63
- end
64
-
65
- def self.get_user(login_or_openid_url, timestamp = nil)
66
- login = get_login(login_or_openid_url)
67
- res = begin
68
- MedpassResourceApi::MedpassUser.find(login, :params =>{:timestamp => timestamp, :api_key => @@configuration.api_key})
69
- rescue ArgumentError
70
- nil
71
- end
72
- wrap_result(res)
73
- end
74
-
75
- def self.get_user_profile(login_or_openid_url, timestamp = nil)
76
- login = get_login(login_or_openid_url)
77
- res = begin
78
- MedpassResourceApi::MedpassUser.find(login, :params =>{:timestamp => timestamp, :full_profile => true, :api_key => @@configuration.api_key, :trust_root => @@configuration.trust_root})
79
- rescue ArgumentError
80
- nil
81
- end
82
- wrap_result(res)
83
- end
84
-
85
- def self.get_user_friends(login_or_openid_url)
86
- login = get_login(login_or_openid_url)
87
- wrap_result(MedpassResourceApi::MedpassUserFriend.find(:all, :params => {:user_id => login, :api_key => @@configuration.api_key}))
88
- end
89
-
90
-
91
- def self.get_user_message(login_or_openid_url, id)
92
- login = get_login(login_or_openid_url)
93
- wrap_result(MedpassResourceApi::MedpassMessage.find(id, :params => {:user_id => login, :api_key => @@configuration.api_key}))
94
- end
95
-
96
- def self.get_user_messages(login_or_openid_url, options = {})
97
- login = get_login(login_or_openid_url)
98
- if ['read','received','sent'].include? options[:scope].to_s
99
- wrap_result(send("get_user_#{options[:scope]}_messages", login, options))
100
- else
101
- wrap_result(nil)
102
- end
103
- end
104
-
105
- def self.get_user_received_messages(login_or_openid_url, options = {})
106
- login = get_login(login_or_openid_url)
107
- wrap_result(MedpassResourceApi::MedpassMessage.find(:all, :params => {:user_id => login, :api_key => @@configuration.api_key}.merge(options)))
108
- end
109
-
110
- def self.get_user_read_messages(login_or_openid_url, options = {})
111
- login = get_login(login_or_openid_url)
112
- wrap_result(MedpassResourceApi::MedpassMessage.get(:read, :user_id => login, :limit => options[:limit], :app => options[:app], :api_key => @@configuration.api_key))
113
- end
114
-
115
- def self.get_user_unread_messages(login_or_openid_url, options = {})
116
- login = get_login(login_or_openid_url)
117
- wrap_result(MedpassResourceApi::MedpassMessage.get(:unread, :user_id => login, :limit => options[:limit], :app => options[:app], :api_key => @@configuration.api_key))
118
- end
119
-
120
- def self.get_user_sent_messages(login_or_openid_url, options = {})
121
- login = get_login(login_or_openid_url)
122
- wrap_result(MedpassResourceApi::MedpassMessage.get(:sent, :user_id => login, :limit => options[:limit], :app => options[:app], :api_key => @@configuration.api_key))
123
- end
124
-
125
- def self.get_user_args(args, group_id, portal_name)
126
- returning Hash.new do |hash|
127
- USER_ARGS.each{|k| hash[k] = args[k]}
128
- hash[:group_id] = group_id
129
- hash[:portal_name] = portal_name
130
- end
131
- end
132
-
133
- def self.get_personal_profile_args(args)
134
- returning Hash.new do |hash|
135
- PERSONAL_PROFILE_ARGS.each{|k| hash[k] = args[k]}
136
- end
137
- end
138
-
139
- def self.get_specialty_profile_args(args)
140
- returning Hash.new do |hash|
141
- SPECIALTY_PROFILE_ARGS.each{|k| hash[k] = args[k]}
142
- end
143
- end
144
-
145
-
146
- def self.wrap_result(result)
147
- result.is_a?(Array) ? wrap_all(result) : wrap_one(result)
148
- end
149
-
150
- def self.wrap_error(error)
151
- ErrorResult.new(error)
152
- end
153
-
154
- def self.wrap_one(result)
155
- return NilResult.instance if result.nil?
156
- Result.new(result)
157
- end
158
-
159
- def self.wrap_all(results)
160
- return NilResult.instance if results.nil?
161
- Result.build_all(results)
162
- end
163
-
164
- def self.get_login(login_or_openid_url)
165
- core_medpass_url = configuration.medpass_url.split("http://").last
166
- login_or_openid_url.gsub("/","").gsub('.beta.','.').split(".#{core_medpass_url}").last.gsub("http:","").gsub(".","-dot-")
167
- end
168
-
169
- end
170
-
171
-
172
- class ErrorResult
173
- attr_reader :raw_errors
174
- def initialize(error)
175
- @raw_errors = JSON.parse(error.response.body)
176
- end
177
-
178
- def errors_on(field)
179
- @raw_errors[field.to_s] rescue nil
180
- end
181
-
182
- def first_error_on(field)
183
- if errors_on(field).is_a?(Array)
184
- errors_on(field).first
185
- else
186
- errors_on(field)
187
- end
188
- end
189
-
190
- def errors
191
- self.raw_errors
192
- end
193
-
194
- end
195
-
196
-
197
- class NilResult
198
- include Singleton
199
- attr_accessor :raw_result
200
- end
201
-
202
-
203
- class Result
204
-
205
- attr_reader :raw_result, :resource_type
206
-
207
- def initialize(result)
208
- @raw_result = result
209
- end
210
-
211
- # Nie wywalamy skryptu nawet jesli odwolamy sie do czegos czego dany obiekt nie posiada
212
- def method_missing(method_name, *args)
213
- return @raw_result.send(method_name) if @raw_result.respond_to?(method_name)
214
- return @raw_result[method_name.to_s] rescue "brak"
215
- end
216
-
217
- def self.build_all(results)
218
- returning [] do |result_list|
219
- results.each{|result| result_list << self.new(result)}
220
- end
221
- end
222
-
223
-
224
- end
225
-
226
-
227
- end
228
-
3
+ require 'active_resource'
4
+ require 'medpass_resource_api/api'
5
+ require 'medpass_resource_api/medpass_user'
6
+ require 'medpass_resource_api/medpass_user_friend'
7
+ require 'medpass_resource_api/medpass_message'
229
8
 
230
9
 
@@ -0,0 +1,226 @@
1
+ module MedpassResourceApi
2
+
3
+ USER_ARGS = [:login, :password, :group_id].freeze
4
+ PERSONAL_PROFILE_ARGS = [:email, :first_name, :last_name, :dob, :address, :postcode, :city, :phone, :mobile, :occupation_id, :nd, :gadu, :skype, :city_id, :province_id, :title, :biography]
5
+ SPECIALTY_PROFILE_ARGS = [:pwz, :specialty_id]
6
+
7
+ class Configuration
8
+ attr_accessor :api_key
9
+ attr_accessor :medpass_url
10
+ attr_accessor :trust_root
11
+ end
12
+
13
+ def self.configure(&block)
14
+ Base.configure(&block)
15
+ end
16
+
17
+ def self.configuration
18
+ Base.configuration
19
+ end
20
+
21
+ class Base
22
+
23
+ @@configuration = Configuration.new
24
+
25
+ def self.configuration
26
+ @@configuration
27
+ end
28
+
29
+ def self.configuration=(val)
30
+ @@configuration = val
31
+ end
32
+
33
+ def self.configure
34
+ self.configuration ||= Configuration.new
35
+ yield(configuration)
36
+ MedpassResourceApi::MedpassUser.configure(configuration)
37
+ MedpassResourceApi::MedpassUserFriend.configure(configuration)
38
+ MedpassResourceApi::MedpassMessage.configure(configuration)
39
+ end
40
+
41
+
42
+ def self.register_user(group_id = 1, args = {}, portal_name = nil)
43
+ arguments = {:user => get_user_args(args, group_id, portal_name), :personal_profile => get_personal_profile_args(args)}
44
+ begin
45
+ res = MedpassResourceApi::MedpassUser.post(:register, :api_key => @@configuration.api_key, :args => arguments)
46
+ wrap_result(JSON.parse(res.response.body))
47
+ rescue ActiveResource::ResourceInvalid => error
48
+ wrap_error(error)
49
+ end
50
+ end
51
+
52
+ def self.register_doctor(args = {}, portal_name = nil)
53
+ arguments = {:user => get_user_args(args, 2, portal_name),
54
+ :personal_profile => get_personal_profile_args(args),
55
+ :specialty_profile => get_specialty_profile_args(args)}
56
+ begin
57
+ res = MedpassResourceApi::MedpassUser.post(:register, :api_key => @@configuration.api_key, :args => arguments)
58
+ wrap_result(JSON.parse(res.response.body))
59
+ rescue ActiveResource::ResourceInvalid => error
60
+ wrap_error(error)
61
+ end
62
+ end
63
+
64
+ def self.get_user(login_or_openid_url, timestamp = nil)
65
+ login = get_login(login_or_openid_url)
66
+ res = begin
67
+ MedpassResourceApi::MedpassUser.find(login, :params =>{:timestamp => timestamp, :api_key => @@configuration.api_key})
68
+ rescue ArgumentError
69
+ nil
70
+ end
71
+ wrap_result(res)
72
+ end
73
+
74
+ def self.get_user_profile(login_or_openid_url, timestamp = nil)
75
+ login = get_login(login_or_openid_url)
76
+ res = begin
77
+ MedpassResourceApi::MedpassUser.find(login, :params =>{:timestamp => timestamp, :full_profile => true, :api_key => @@configuration.api_key, :trust_root => @@configuration.trust_root})
78
+ rescue ArgumentError
79
+ nil
80
+ end
81
+ wrap_result(res)
82
+ end
83
+
84
+ def self.get_user_friends(login_or_openid_url)
85
+ login = get_login(login_or_openid_url)
86
+ wrap_result(MedpassResourceApi::MedpassUserFriend.find(:all, :params => {:user_id => login, :api_key => @@configuration.api_key}))
87
+ end
88
+
89
+
90
+ def self.get_user_message(login_or_openid_url, id)
91
+ login = get_login(login_or_openid_url)
92
+ wrap_result(MedpassResourceApi::MedpassMessage.find(id, :params => {:user_id => login, :api_key => @@configuration.api_key}))
93
+ end
94
+
95
+ def self.get_user_messages(login_or_openid_url, options = {})
96
+ login = get_login(login_or_openid_url)
97
+ if ['read','received','sent'].include? options[:scope].to_s
98
+ wrap_result(send("get_user_#{options[:scope]}_messages", login, options))
99
+ else
100
+ wrap_result(nil)
101
+ end
102
+ end
103
+
104
+ def self.get_user_received_messages(login_or_openid_url, options = {})
105
+ login = get_login(login_or_openid_url)
106
+ wrap_result(MedpassResourceApi::MedpassMessage.find(:all, :params => {:user_id => login, :api_key => @@configuration.api_key}.merge(options)))
107
+ end
108
+
109
+ def self.get_user_read_messages(login_or_openid_url, options = {})
110
+ login = get_login(login_or_openid_url)
111
+ wrap_result(MedpassResourceApi::MedpassMessage.get(:read, :user_id => login, :limit => options[:limit], :app => options[:app], :api_key => @@configuration.api_key))
112
+ end
113
+
114
+ def self.get_user_unread_messages(login_or_openid_url, options = {})
115
+ login = get_login(login_or_openid_url)
116
+ wrap_result(MedpassResourceApi::MedpassMessage.get(:unread, :user_id => login, :limit => options[:limit], :app => options[:app], :api_key => @@configuration.api_key))
117
+ end
118
+
119
+ def self.get_user_sent_messages(login_or_openid_url, options = {})
120
+ login = get_login(login_or_openid_url)
121
+ wrap_result(MedpassResourceApi::MedpassMessage.get(:sent, :user_id => login, :limit => options[:limit], :app => options[:app], :api_key => @@configuration.api_key))
122
+ end
123
+
124
+ def self.get_user_args(args, group_id, portal_name)
125
+ Hash.new.tap do |hash|
126
+ USER_ARGS.each{|k| hash[k] = args[k]}
127
+ hash[:group_id] = group_id
128
+ hash[:portal_name] = portal_name
129
+ end
130
+ end
131
+
132
+ def self.get_personal_profile_args(args)
133
+ Hash.new.tap do |hash|
134
+ PERSONAL_PROFILE_ARGS.each{|k| hash[k] = args[k]}
135
+ end
136
+ end
137
+
138
+ def self.get_specialty_profile_args(args)
139
+ Hash.new.tap do |hash|
140
+ SPECIALTY_PROFILE_ARGS.each{|k| hash[k] = args[k]}
141
+ end
142
+ end
143
+
144
+
145
+ def self.wrap_result(result)
146
+ result.is_a?(Array) ? wrap_all(result) : wrap_one(result)
147
+ end
148
+
149
+ def self.wrap_error(error)
150
+ ErrorResult.new(error)
151
+ end
152
+
153
+ def self.wrap_one(result)
154
+ return NilResult.instance if result.nil?
155
+ Result.new(result)
156
+ end
157
+
158
+ def self.wrap_all(results)
159
+ return NilResult.instance if results.nil?
160
+ Result.build_all(results)
161
+ end
162
+
163
+ def self.get_login(login_or_openid_url)
164
+ core_medpass_url = configuration.medpass_url.split("http://").last
165
+ login_or_openid_url.gsub("/","").gsub('.beta.','.').split(".#{core_medpass_url}").last.gsub("http:","").gsub(".","-dot-")
166
+ end
167
+
168
+ end
169
+
170
+
171
+ class ErrorResult
172
+ attr_reader :raw_errors
173
+ def initialize(error)
174
+ @raw_errors = JSON.parse(error.response.body)
175
+ end
176
+
177
+ def errors_on(field)
178
+ @raw_errors[field.to_s] rescue nil
179
+ end
180
+
181
+ def first_error_on(field)
182
+ if errors_on(field).is_a?(Array)
183
+ errors_on(field).first
184
+ else
185
+ errors_on(field)
186
+ end
187
+ end
188
+
189
+ def errors
190
+ self.raw_errors
191
+ end
192
+
193
+ end
194
+
195
+
196
+ class NilResult
197
+ include Singleton
198
+ attr_accessor :raw_result
199
+ end
200
+
201
+
202
+ class Result
203
+
204
+ attr_reader :raw_result, :resource_type
205
+
206
+ def initialize(result)
207
+ @raw_result = result
208
+ end
209
+
210
+ # Nie wywalamy skryptu nawet jesli odwolamy sie do czegos czego dany obiekt nie posiada
211
+ def method_missing(method_name, *args)
212
+ return @raw_result.send(method_name) if @raw_result.respond_to?(method_name)
213
+ return @raw_result[method_name.to_s] rescue "brak"
214
+ end
215
+
216
+ def self.build_all(results)
217
+ [].tap do |result_list|
218
+ results.each{|result| result_list << self.new(result)}
219
+ end
220
+ end
221
+
222
+
223
+ end
224
+
225
+
226
+ end
@@ -1,7 +1,9 @@
1
1
  module MedpassResourceApi
2
2
  class MedpassMessage < ActiveResource::Base
3
- self.site = "#{MedpassResourceApi.configuration.medpass_url}/resource_api/users/:user_id"
4
- self.format = :json
5
- self.element_name = 'message'
3
+ def self.configure(c)
4
+ self.site = "#{c.medpass_url}/resource_api/"
5
+ self.format = :json
6
+ self.element_name = 'message'
7
+ end
6
8
  end
7
9
  end
@@ -1,7 +1,11 @@
1
1
  module MedpassResourceApi
2
2
  class MedpassUser < ActiveResource::Base
3
- self.site = "#{MedpassResourceApi.configuration.medpass_url}/resource_api/"
4
- self.format = :json
5
- self.element_name = 'user'
3
+
4
+ def self.configure(c)
5
+ self.site = "#{c.medpass_url}/resource_api/"
6
+ self.format = :json
7
+ self.element_name = 'user'
8
+ end
9
+
6
10
  end
7
11
  end
@@ -1,7 +1,11 @@
1
1
  module MedpassResourceApi
2
2
  class MedpassUserFriend < ActiveResource::Base
3
- self.site = "#{MedpassResourceApi.configuration.medpass_url}/resource_api/users/:user_id"
4
- self.format = :json
5
- self.element_name = 'friend'
3
+
4
+ def self.configure(c)
5
+ self.site = "#{c.medpass_url}/resource_api/"
6
+ self.format = :json
7
+ self.element_name = 'friend'
8
+ end
9
+
6
10
  end
7
11
  end
@@ -0,0 +1,3 @@
1
+ module MedpassResourceApi
2
+ VERSION = "0.2.8"
3
+ end
@@ -0,0 +1,22 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "medpass_resource_api/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "medpass_resource_api"
7
+ s.version = MedpassResourceApi::VERSION
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = ["Wojciech Pasternak"]
10
+ s.email = ["wpasternak@gmail.com"]
11
+ s.homepage = ""
12
+ s.summary = %q{Restful api for medpass}
13
+ s.description = %q{Restful api for medpass}
14
+ s.add_dependency 'json'
15
+
16
+ s.rubyforge_project = "medpass_resource_api"
17
+
18
+ s.files = `git ls-files`.split("\n")
19
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
20
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
21
+ s.require_paths = ["lib"]
22
+ end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 2
8
- - 6
9
- version: 0.2.6
8
+ - 8
9
+ version: 0.2.8
10
10
  platform: ruby
11
11
  authors:
12
12
  - Wojciech Pasternak
@@ -14,11 +14,22 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2011-01-18 00:00:00 +01:00
17
+ date: 2011-01-19 00:00:00 +01:00
18
18
  default_executable:
19
- dependencies: []
20
-
21
- description: " medpass Restfull API"
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: json
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ segments:
28
+ - 0
29
+ version: "0"
30
+ type: :runtime
31
+ version_requirements: *id001
32
+ description: Restful api for medpass
22
33
  email:
23
34
  - wpasternak@gmail.com
24
35
  executables: []
@@ -28,12 +39,19 @@ extensions: []
28
39
  extra_rdoc_files: []
29
40
 
30
41
  files:
42
+ - .gitignore
43
+ - Gemfile
44
+ - Rakefile
45
+ - init.rb
31
46
  - lib/medpass_resource_api.rb
47
+ - lib/medpass_resource_api/api.rb
48
+ - lib/medpass_resource_api/medpass_message.rb
32
49
  - lib/medpass_resource_api/medpass_user.rb
33
50
  - lib/medpass_resource_api/medpass_user_friend.rb
34
- - lib/medpass_resource_api/medpass_message.rb
51
+ - lib/medpass_resource_api/version.rb
52
+ - medpass_resource_api.gemspec
35
53
  has_rdoc: true
36
- homepage: http://github.com/voytee/medpass_resource_api
54
+ homepage: ""
37
55
  licenses: []
38
56
 
39
57
  post_install_message:
@@ -61,6 +79,6 @@ rubyforge_project: medpass_resource_api
61
79
  rubygems_version: 1.3.6
62
80
  signing_key:
63
81
  specification_version: 3
64
- summary: medpass Restfull API
82
+ summary: Restful api for medpass
65
83
  test_files: []
66
84