Class: MedpassResourceApi::Base

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

Constant Summary collapse

@@configuration =
nil

Class Method Summary collapse

Class Method Details

.configurationObject



26
27
28
# File 'lib/medpass_resource_api.rb', line 26

def self.configuration
  @@configuration
end

.configuration=(val) ⇒ Object



30
31
32
# File 'lib/medpass_resource_api.rb', line 30

def self.configuration=(val)
  @@configuration = val
end

.configure {|configuration| ... } ⇒ Object

Yields:



34
35
36
37
# File 'lib/medpass_resource_api.rb', line 34

def self.configure
  self.configuration ||= Configuration.new
  yield(configuration)
end

.get_login(login_or_openid_url) ⇒ Object



161
162
163
164
# File 'lib/medpass_resource_api.rb', line 161

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



130
131
132
133
134
# File 'lib/medpass_resource_api.rb', line 130

def self.get_personal_profile_args(args)
  returning Hash.new do |hash| 
    PERSONAL_PROFILE_ARGS.each{|k| hash[k] = args[k]}
  end
end

.get_specialty_profile_args(args) ⇒ Object



136
137
138
139
140
# File 'lib/medpass_resource_api.rb', line 136

def self.get_specialty_profile_args(args)
  returning Hash.new do |hash| 
    SPECIALTY_PROFILE_ARGS.each{|k| hash[k] = args[k]}
  end
end

.get_user(login_or_openid_url, timestamp = nil) ⇒ Object



62
63
64
65
66
67
68
69
70
# File 'lib/medpass_resource_api.rb', line 62

def self.get_user(, timestamp = nil)
   = ()
  res = begin
          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



122
123
124
125
126
127
128
# File 'lib/medpass_resource_api.rb', line 122

def self.get_user_args(args, group_id, portal_name)
  returning Hash.new 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



82
83
84
85
# File 'lib/medpass_resource_api.rb', line 82

def self.get_user_friends()
   = ()
  wrap_result(MedpassUserFriend.find(:all, :params => {:user_id => , :api_key => @@configuration.api_key}))
end

.get_user_message(login_or_openid_url, id) ⇒ Object



88
89
90
91
# File 'lib/medpass_resource_api.rb', line 88

def self.get_user_message(, id)
   = ()
  wrap_result(MedpassMessage.find(id, :params => {:user_id => , :api_key => @@configuration.api_key}))
end

.get_user_messages(login_or_openid_url, options = {}) ⇒ Object



93
94
95
96
97
98
99
100
# File 'lib/medpass_resource_api.rb', line 93

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



72
73
74
75
76
77
78
79
80
# File 'lib/medpass_resource_api.rb', line 72

def self.(, timestamp = nil)
   = ()
  res = begin
          MedpassUser.find(, :params =>{:timestamp => timestamp, :full_profile => true, :api_key => @@configuration.api_key})
        rescue ArgumentError
          nil
        end
  wrap_result(res)
end

.get_user_read_messages(login_or_openid_url, options = {}) ⇒ Object



107
108
109
110
# File 'lib/medpass_resource_api.rb', line 107

def self.get_user_read_messages(, options = {})
   = ()
  wrap_result(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



102
103
104
105
# File 'lib/medpass_resource_api.rb', line 102

def self.get_user_received_messages(, options = {})
   = ()
  wrap_result(MedpassMessage.find(:all, :params => {:user_id => , :api_key => @@configuration.api_key}.merge(options)))
end

.get_user_sent_messages(login_or_openid_url, options = {}) ⇒ Object



117
118
119
120
# File 'lib/medpass_resource_api.rb', line 117

def self.get_user_sent_messages(, options = {})
   = ()
  wrap_result(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



112
113
114
115
# File 'lib/medpass_resource_api.rb', line 112

def self.get_user_unread_messages(, options = {})
   = ()
  wrap_result(MedpassMessage.get(:unread, :user_id => , :limit => options[:limit], :app => options[:app], :api_key => @@configuration.api_key))
end

.register_doctor(args = {}, portal_name = nil) ⇒ Object



50
51
52
53
54
55
56
57
58
59
60
# File 'lib/medpass_resource_api.rb', line 50

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 = 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



40
41
42
43
44
45
46
47
48
# File 'lib/medpass_resource_api.rb', line 40

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 = 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



156
157
158
159
# File 'lib/medpass_resource_api.rb', line 156

def self.wrap_all(results)
  return NilResult.instance if results.nil?
  Result.build_all(results) 
end

.wrap_error(error) ⇒ Object



147
148
149
# File 'lib/medpass_resource_api.rb', line 147

def self.wrap_error(error)
  ErrorResult.new(error)
end

.wrap_one(result) ⇒ Object



151
152
153
154
# File 'lib/medpass_resource_api.rb', line 151

def self.wrap_one(result)
  return NilResult.instance if result.nil?
  Result.new(result) 
end

.wrap_result(result) ⇒ Object



143
144
145
# File 'lib/medpass_resource_api.rb', line 143

def self.wrap_result(result)
  result.is_a?(Array) ? wrap_all(result) : wrap_one(result)
end