medpass_resource_api 0.2.6 → 0.2.8

Sign up to get free protection for your applications and to get access to all the features.
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