Class: MedpassResourceApi::Base
- Inherits:
-
Object
- Object
- MedpassResourceApi::Base
- Defined in:
- lib/medpass_resource_api/api.rb
Constant Summary collapse
- @@configuration =
Configuration.new
Class Method Summary collapse
- .configuration ⇒ Object
- .configuration=(val) ⇒ Object
- .configure {|configuration| ... } ⇒ Object
- .get_login(login_or_openid_url) ⇒ Object
- .get_personal_profile_args(args) ⇒ Object
- .get_specialty_profile_args(args) ⇒ Object
- .get_user(login_or_openid_url, timestamp = nil) ⇒ Object
- .get_user_args(args, group_id, portal_name) ⇒ Object
- .get_user_friends(login_or_openid_url) ⇒ Object
- .get_user_message(login_or_openid_url, id) ⇒ Object
- .get_user_messages(login_or_openid_url, options = {}) ⇒ Object
- .get_user_profile(login_or_openid_url, timestamp = nil) ⇒ Object
- .get_user_read_messages(login_or_openid_url, options = {}) ⇒ Object
- .get_user_received_messages(login_or_openid_url, options = {}) ⇒ Object
- .get_user_sent_messages(login_or_openid_url, options = {}) ⇒ Object
- .get_user_unread_messages(login_or_openid_url, options = {}) ⇒ Object
- .register_doctor(args = {}, portal_name = nil) ⇒ Object
- .register_user(group_id = 1, args = {}, portal_name = nil) ⇒ Object
- .wrap_all(results) ⇒ Object
- .wrap_error(error) ⇒ Object
- .wrap_one(result) ⇒ Object
- .wrap_result(result) ⇒ Object
Class Method Details
.configuration ⇒ Object
25 26 27 |
# File 'lib/medpass_resource_api/api.rb', line 25 def self.configuration @@configuration end |
.configuration=(val) ⇒ Object
29 30 31 |
# File 'lib/medpass_resource_api/api.rb', line 29 def self.configuration=(val) @@configuration = val end |
.configure {|configuration| ... } ⇒ Object
33 34 35 36 37 38 39 |
# File 'lib/medpass_resource_api/api.rb', line 33 def self.configure self.configuration ||= Configuration.new yield(configuration) MedpassResourceApi::MedpassUser.configure(configuration) MedpassResourceApi::MedpassUserFriend.configure(configuration) MedpassResourceApi::MedpassMessage.configure(configuration) end |
.get_login(login_or_openid_url) ⇒ Object
163 164 165 166 |
# File 'lib/medpass_resource_api/api.rb', line 163 def self.get_login(login_or_openid_url) core_medpass_url = configuration.medpass_url.split("http://").last login_or_openid_url.gsub("/","").gsub('.beta.','.').split(".#{core_medpass_url}").last.gsub("http:","").gsub(".","-dot-") end |
.get_personal_profile_args(args) ⇒ Object
132 133 134 135 136 |
# File 'lib/medpass_resource_api/api.rb', line 132 def self.get_personal_profile_args(args) Hash.new.tap do |hash| PERSONAL_PROFILE_ARGS.each{|k| hash[k] = args[k]} end end |
.get_specialty_profile_args(args) ⇒ Object
138 139 140 141 142 |
# File 'lib/medpass_resource_api/api.rb', line 138 def self.get_specialty_profile_args(args) Hash.new.tap do |hash| SPECIALTY_PROFILE_ARGS.each{|k| hash[k] = args[k]} end end |
.get_user(login_or_openid_url, timestamp = nil) ⇒ Object
64 65 66 67 68 69 70 71 72 |
# File 'lib/medpass_resource_api/api.rb', line 64 def self.get_user(login_or_openid_url, = nil) login = get_login(login_or_openid_url) res = begin MedpassResourceApi::MedpassUser.find(login, :params =>{:timestamp => , :api_key => @@configuration.api_key}) rescue ArgumentError nil end wrap_result(res) end |
.get_user_args(args, group_id, portal_name) ⇒ Object
124 125 126 127 128 129 130 |
# File 'lib/medpass_resource_api/api.rb', line 124 def self.get_user_args(args, group_id, portal_name) Hash.new.tap do |hash| USER_ARGS.each{|k| hash[k] = args[k]} hash[:group_id] = group_id hash[:portal_name] = portal_name end end |
.get_user_friends(login_or_openid_url) ⇒ Object
84 85 86 87 |
# File 'lib/medpass_resource_api/api.rb', line 84 def self.get_user_friends(login_or_openid_url) login = get_login(login_or_openid_url) wrap_result(MedpassResourceApi::MedpassUserFriend.find(:all, :params => {:user_id => login, :api_key => @@configuration.api_key})) end |
.get_user_message(login_or_openid_url, id) ⇒ Object
90 91 92 93 |
# File 'lib/medpass_resource_api/api.rb', line 90 def self.(login_or_openid_url, id) login = get_login(login_or_openid_url) wrap_result(MedpassResourceApi::MedpassMessage.find(id, :params => {:user_id => login, :api_key => @@configuration.api_key})) end |
.get_user_messages(login_or_openid_url, options = {}) ⇒ Object
95 96 97 98 99 100 101 102 |
# File 'lib/medpass_resource_api/api.rb', line 95 def self.(login_or_openid_url, = {}) login = get_login(login_or_openid_url) if ['read','received','sent'].include? [:scope].to_s wrap_result(send("get_user_#{[:scope]}_messages", login, )) else wrap_result(nil) end end |
.get_user_profile(login_or_openid_url, timestamp = nil) ⇒ Object
74 75 76 77 78 79 80 81 82 |
# File 'lib/medpass_resource_api/api.rb', line 74 def self.get_user_profile(login_or_openid_url, = nil) login = get_login(login_or_openid_url) res = begin MedpassResourceApi::MedpassUser.find(login, :params =>{:timestamp => , :full_profile => true, :api_key => @@configuration.api_key, :trust_root => @@configuration.trust_root}) rescue ArgumentError nil end wrap_result(res) end |
.get_user_read_messages(login_or_openid_url, options = {}) ⇒ Object
109 110 111 112 |
# File 'lib/medpass_resource_api/api.rb', line 109 def self.(login_or_openid_url, = {}) login = get_login(login_or_openid_url) wrap_result(MedpassResourceApi::MedpassMessage.get(:read, :user_id => login, :limit => [:limit], :app => [:app], :api_key => @@configuration.api_key)) end |
.get_user_received_messages(login_or_openid_url, options = {}) ⇒ Object
104 105 106 107 |
# File 'lib/medpass_resource_api/api.rb', line 104 def self.(login_or_openid_url, = {}) login = get_login(login_or_openid_url) wrap_result(MedpassResourceApi::MedpassMessage.find(:all, :params => {:user_id => login, :api_key => @@configuration.api_key}.merge())) end |
.get_user_sent_messages(login_or_openid_url, options = {}) ⇒ Object
119 120 121 122 |
# File 'lib/medpass_resource_api/api.rb', line 119 def self.(login_or_openid_url, = {}) login = get_login(login_or_openid_url) wrap_result(MedpassResourceApi::MedpassMessage.get(:sent, :user_id => login, :limit => [:limit], :app => [:app], :api_key => @@configuration.api_key)) end |
.get_user_unread_messages(login_or_openid_url, options = {}) ⇒ Object
114 115 116 117 |
# File 'lib/medpass_resource_api/api.rb', line 114 def self.(login_or_openid_url, = {}) login = get_login(login_or_openid_url) wrap_result(MedpassResourceApi::MedpassMessage.get(:unread, :user_id => login, :limit => [:limit], :app => [:app], :api_key => @@configuration.api_key)) end |
.register_doctor(args = {}, portal_name = nil) ⇒ Object
52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/medpass_resource_api/api.rb', line 52 def self.register_doctor(args = {}, portal_name = nil) arguments = {:user => get_user_args(args, 2, portal_name), :personal_profile => get_personal_profile_args(args), :specialty_profile => get_specialty_profile_args(args)} begin res = MedpassResourceApi::MedpassUser.post(:register, :api_key => @@configuration.api_key, :args => arguments) wrap_result(JSON.parse(res.response.body)) rescue ActiveResource::ResourceInvalid => error wrap_error(error) end end |
.register_user(group_id = 1, args = {}, portal_name = nil) ⇒ Object
42 43 44 45 46 47 48 49 50 |
# File 'lib/medpass_resource_api/api.rb', line 42 def self.register_user(group_id = 1, args = {}, portal_name = nil) arguments = {:user => get_user_args(args, group_id, portal_name), :personal_profile => get_personal_profile_args(args)} begin res = MedpassResourceApi::MedpassUser.post(:register, :api_key => @@configuration.api_key, :args => arguments) wrap_result(JSON.parse(res.response.body)) rescue ActiveResource::ResourceInvalid => error wrap_error(error) end end |
.wrap_all(results) ⇒ Object
158 159 160 161 |
# File 'lib/medpass_resource_api/api.rb', line 158 def self.wrap_all(results) return NilResult.instance if results.nil? Result.build_all(results) end |
.wrap_error(error) ⇒ Object
149 150 151 |
# File 'lib/medpass_resource_api/api.rb', line 149 def self.wrap_error(error) ErrorResult.new(error) end |
.wrap_one(result) ⇒ Object
153 154 155 156 |
# File 'lib/medpass_resource_api/api.rb', line 153 def self.wrap_one(result) return NilResult.instance if result.nil? Result.new(result) end |
.wrap_result(result) ⇒ Object
145 146 147 |
# File 'lib/medpass_resource_api/api.rb', line 145 def self.wrap_result(result) result.is_a?(Array) ? wrap_all(result) : wrap_one(result) end |