Class: MedpassResourceApi::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/medpass_resource_api/api.rb

Constant Summary collapse

@@configuration =
Configuration.new

Class Method Summary collapse

Class Method Details

.configurationObject



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

Yields:



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.()
  core_medpass_url = configuration.medpass_url.split("http://").last
  .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(, timestamp = nil)
   = ()
  res = begin
          MedpassResourceApi::MedpassUser.find(, :params =>{:timestamp => 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()
   = ()
  wrap_result(MedpassResourceApi::MedpassUserFriend.find(:all, :params => {:user_id => , :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.get_user_message(, id)
   = ()
  wrap_result(MedpassResourceApi::MedpassMessage.find(id, :params => {:user_id => , :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.get_user_messages(, options = {})
   = ()
  if ['read','received','sent'].include? options[:scope].to_s
    wrap_result(send("get_user_#{options[:scope]}_messages", , options)) 
  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.(, timestamp = nil)
   = ()
  res = begin
          MedpassResourceApi::MedpassUser.find(, :params =>{:timestamp => 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.get_user_read_messages(, options = {})
   = ()
  wrap_result(MedpassResourceApi::MedpassMessage.get(:read, :user_id => , :limit => options[:limit], :app => options[: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.get_user_received_messages(, options = {})
   = ()
  wrap_result(MedpassResourceApi::MedpassMessage.find(:all, :params => {:user_id => , :api_key => @@configuration.api_key}.merge(options)))
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.get_user_sent_messages(, options = {})
   = ()
  wrap_result(MedpassResourceApi::MedpassMessage.get(:sent, :user_id => , :limit => options[:limit], :app => options[: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.get_user_unread_messages(, options = {})
   = ()
  wrap_result(MedpassResourceApi::MedpassMessage.get(:unread, :user_id => , :limit => options[:limit], :app => options[: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