login_radius 1.0.1 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,283 @@
1
+ module LoginRadiusRaas
2
+ module UserApi
3
+ #
4
+ # This API is used to create a new user on your site. This API bypasses the normal email verification process and manually creates the user for your system.
5
+ #
6
+ # params = {:emailid => "example@example.com",
7
+ # :password => "FakePass",
8
+ # :firstname => "Joe",
9
+ # :lastname => "Smith",
10
+ # :gender => "M",
11
+ # :birthdate => "11-08-1987",
12
+ # :Country => "USA",
13
+ # :city => "Chicago",
14
+ # :state => "Illinois ",
15
+ # :phonenumber => "1232333232",
16
+ # :address1 => "23/43, II Street",
17
+ # :address2 => "Near Paris garden",
18
+ # :company => "Orange Inc.",
19
+ # :postalcode => "43435",
20
+ # :emailsubscription => "true",
21
+ # :customfields => {
22
+ # :example_field1 => "some data 1",
23
+ # :example_field2 => "some data 2",
24
+ # :example_field3 => "some data 3"
25
+ # }
26
+ # }
27
+ #
28
+ # return all user profile
29
+ #
30
+ def user_create_profile!(params)
31
+ api_client("raas/v1/user", {}, params, 'json');
32
+ end
33
+
34
+ def user_create_profile(params={})
35
+ user_create_profile!(params)
36
+ rescue LoginRadiusRaas::Exception => e
37
+ false
38
+ end
39
+
40
+ #
41
+ # This API used to register user from server side, verification email will be send to provided email address
42
+ #
43
+ # params = {"emailid => "example@example.com",
44
+ # :password => "FakePass",
45
+ # :firstname => "Joe",
46
+ # :lastname => "Smith",
47
+ # :gender => "M",
48
+ # :birthdate => "11-08-1987",
49
+ # :Country => "USA",
50
+ # :city => "Chicago",
51
+ # :state => "Illinois ",
52
+ # :phonenumber => "1232333232",
53
+ # :address1 => "23/43, II Street",
54
+ # :address2 => "Near Paris garden",
55
+ # :company => "Orange Inc.",
56
+ # :postalcode => "43435",
57
+ # :emailsubscription => "true",
58
+ # :customfields => {
59
+ # :example_field1 => "some data 1",
60
+ # :example_field2 => "some data 2",
61
+ # :example_field3 => "some data 3"
62
+ # },
63
+ # :EmailVerificationUrl => "http://yoursite.com/verifyemail"
64
+ # }
65
+ #
66
+ # return "isPosted": "true"
67
+ #
68
+ def user_registration!(params)
69
+ api_client("raas/v1/user/register", {}, params, 'json');
70
+ end
71
+
72
+ def user_registration(params)
73
+ user_registration!(params)
74
+ rescue LoginRadiusRaas::Exception => e
75
+ false
76
+ end
77
+
78
+ #
79
+ # This API is used to Modify/Update details of an existing user.
80
+ #
81
+ # params = {
82
+ # :firstname => 'first name',
83
+ # :lastname => 'last name',
84
+ # :gender => 'm',
85
+ # :birthdate => 'MM-DD-YYYY',
86
+ # ....................
87
+ # ....................
88
+ # }
89
+ #
90
+ # return {“isPosted”: “true”}
91
+ #
92
+ def user_edit_profile!(userId, params)
93
+ api_client("raas/v1/user", {:userid => userId}, params, 'json');
94
+ end
95
+
96
+ def user_edit_profile(userId, params={})
97
+ user_edit_profile!(userId, params)
98
+ rescue LoginRadiusRaas::Exception => e
99
+ false
100
+ end
101
+
102
+ #
103
+ # This API is used to check email of an existing user.
104
+ #
105
+ # email = example@provider.com
106
+ #
107
+ # return {“isExist”: “true”}
108
+ #
109
+
110
+ def check_email!(email)
111
+ api_client("raas/client/auth/checkEmail", {:email => email});
112
+ end
113
+
114
+ def check_email(email)
115
+ check_email!(email)
116
+ rescue LoginRadiusRaas::Exception => e
117
+ false
118
+ end
119
+
120
+ #
121
+ # This API is used to get token for forgot password of an existing user.
122
+ #
123
+ # email = example@provider.com
124
+ #
125
+ # return object of token and provider list
126
+ #
127
+
128
+ def user_forgot_password_token!(email)
129
+ api_client("raas/v1/user", {:email => email});
130
+ end
131
+
132
+ def user_forgot_password_token(email)
133
+ user_forgot_password_token!(email)
134
+ rescue LoginRadiusRaas::Exception => e
135
+ false
136
+ end
137
+
138
+ #
139
+ # This API deletes the RaaS account of the user and allowing them to begin the registration process
140
+ #
141
+ # return [{"isPosted": "true"}]
142
+ #
143
+ def user_delete!(uid)
144
+ api_client("raas/v1/user/delete", {:UID => uid});
145
+ end
146
+
147
+ def user_delete(uid)
148
+ user_delete!(uid)
149
+ rescue LoginRadiusRaas::Exception => e
150
+ false
151
+ end
152
+
153
+ #
154
+ # This API is used to create a user using the currently logged in social provider.
155
+ #
156
+ # params = {
157
+ # :accountid => uid,
158
+ # :password => 'xxxxxxxxxx',
159
+ # :emailid => 'example@doamin.com'
160
+ # }
161
+ #
162
+ # return {“isPosted”: “true”}
163
+ #
164
+ def user_set_password!(params)
165
+ api_client("raas/v1/account/profile", {}, params, 'json');
166
+ end
167
+
168
+ def user_set_password(params={})
169
+ user_set_password!(params)
170
+ rescue LoginRadiusRaas::Exception => e
171
+ false
172
+ end
173
+
174
+ #
175
+ # This API is used to Update/Change the user’s password.
176
+ #
177
+ # userId => 'xxxxxxxxxx';
178
+ # oldpassword => 'xxxxxxxxxx';
179
+ # newpassword => 'xxxxxxxxxx';
180
+ #
181
+ # return {“isPosted”: “true”}
182
+ #
183
+ def user_change_password!(uid, oldPassword, newPassword)
184
+ data = {:oldpassword => oldPassword, :newpassword => newPassword}
185
+ api_client("raas/v1/account/password", {:accountid => uid}, data)
186
+ end
187
+
188
+ def user_change_password(uid, oldPassword, newPassword)
189
+ user_change_password!(uid, oldPassword, newPassword)
190
+ rescue LoginRadiusRaas::Exception => e
191
+ false
192
+ end
193
+
194
+ #
195
+ # This API is used to set the password of user, used in admin section.
196
+ #
197
+ # userId = 'xxxxxx'; // RaaS account ID only not Social Account ID
198
+ # password = 'xxxxxxxxxx';
199
+ # return {“isPosted”: “true”}
200
+ #
201
+ def user_set_password_by_admin!(userId, password)
202
+ parameter = {:userid => userId, :action => 'set'}
203
+ api_client('raas/v1/user/password', parameter, {:password => password});
204
+ end
205
+
206
+ def user_set_password_by_admin(userId, password)
207
+ user_set_password_by_admin!(userId, password)
208
+ rescue LoginRadiusRaas::Exception => e
209
+ false
210
+ end
211
+
212
+ #
213
+ # This API is used to authenticate users and returns the profile data associated with the authenticated user.
214
+ #
215
+ # username = 'username';//email id
216
+ # password = 'xxxxxxxxxx';
217
+ #
218
+ # return all user profile
219
+ #
220
+ def user_authentication!(username, password)
221
+ api_client('raas/v1/user', {:username => username, :password => password});
222
+ end
223
+
224
+ def user_authentication(username, password)
225
+ user_authentication!(username, password)
226
+ rescue LoginRadiusRaas::Exception => e
227
+ false
228
+ end
229
+
230
+ #
231
+ # This API retrieves the profile data associated with the specific user using the users unique UserID
232
+ #
233
+ # userId = 'xxxxxxxxxx';
234
+ #
235
+ # return all user profile
236
+ #
237
+ def user_get_profile_by_id!(userId)
238
+ api_client('raas/v1/user', {:userid => userId});
239
+ end
240
+
241
+ def user_get_profile_by_id(userId)
242
+ user_get_profile_by_id!(userId)
243
+ rescue LoginRadiusRaas::Exception => e
244
+ false
245
+ end
246
+
247
+ #
248
+ # This API retrieves the profile data associated with the specific user using the users unique Email Address
249
+ #
250
+ # email = 'xxxxxxxxxx@xxxxxxxx.xxx';
251
+ #
252
+ # return all user profile
253
+ #
254
+ def user_get_profile_by_email!(email)
255
+ api_client('raas/v1/user', {:emailid => email});
256
+ end
257
+
258
+ def user_get_profile_by_email(email)
259
+ user_get_profile_by_email!(email)
260
+ rescue LoginRadiusRaas::Exception => e
261
+ false
262
+ end
263
+
264
+ #
265
+ # This API is used to block or un-block a user using the users unique UserID (UID).
266
+ #
267
+ # uid = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
268
+ # action = true/false(boolean)
269
+ #
270
+ # return all user profile
271
+ #/
272
+ def user_set_status!(uid, action)
273
+ api_client('raas/v1/user/status', {:accountid => uid}, {:isblock => action});
274
+ end
275
+
276
+ def user_set_status(uid, action = true)
277
+ user_set_status!(uid, action)
278
+ rescue LoginRadiusRaas::Exception => e
279
+ false
280
+ end
281
+
282
+ end
283
+ end
@@ -1,3 +1,3 @@
1
- module LoginRadius
2
- VERSION = "1.0.1"
3
- end
1
+ module LoginRadiusRaas
2
+ VERSION = "2.0.0"
3
+ end
data/lib/login_radius.rb CHANGED
@@ -1,12 +1,13 @@
1
- require "login_radius/version"
2
- require "login_radius/user_profile_getters"
3
- require "login_radius/messages"
4
- require "login_radius/related"
5
- require "login_radius/user_profile"
6
- require "login_radius/exception"
7
- require "string"
8
- require "hash"
9
-
10
- module LoginRadius
11
-
12
- end
1
+ require "login_radius/version"
2
+ require "login_radius/user_api"
3
+ require "login_radius/account_api"
4
+ require "login_radius/basic_api"
5
+ require "login_radius/custom_object_api"
6
+ require "login_radius/exception"
7
+ require "login_radius/raas_api"
8
+ require "string"
9
+ require "hash"
10
+
11
+ module LoginRadiusRaas
12
+
13
+ end
data/lib/string.rb CHANGED
@@ -1,8 +1,8 @@
1
- class String
2
- def lr_underscore #lr_ appended so no method naming conflicts with other gems
3
- self.gsub(/::/, '/').
4
- gsub(/([A-Z]+)([A-Z][a-z])/,'\1 \2').
5
- gsub(/([a-z\d])([A-Z])/,'\1 \2').
6
- downcase
7
- end
1
+ class String
2
+ def lr_underscore #lr_ appended so no method naming conflicts with other gems
3
+ self.gsub(/::/, '/').
4
+ gsub(/([A-Z]+)([A-Z][a-z])/,'\1 \2').
5
+ gsub(/([a-z\d])([A-Z])/,'\1 \2').
6
+ downcase
7
+ end
8
8
  end
metadata CHANGED
@@ -1,59 +1,34 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: login_radius
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - LoginRadius
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-12 00:00:00.000000000 Z
12
- dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: em-http-request
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - '>='
18
- - !ruby/object:Gem::Version
19
- version: '0'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - '>='
25
- - !ruby/object:Gem::Version
26
- version: '0'
27
- - !ruby/object:Gem::Dependency
28
- name: em-synchrony
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - '>='
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - '>='
39
- - !ruby/object:Gem::Version
40
- version: '0'
41
- description: Ruby wrapper for LoginRadius API v2
11
+ date: 2016-04-12 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Ruby wrapper for User Registration API
42
14
  email:
43
15
  - hello@loginradius.com
44
16
  executables: []
45
17
  extensions: []
46
18
  extra_rdoc_files: []
47
19
  files:
20
+ - LICENSE
21
+ - README.md
48
22
  - lib/hash.rb
49
23
  - lib/login_radius.rb
50
- - lib/string.rb
24
+ - lib/login_radius/account_api.rb
25
+ - lib/login_radius/basic_api.rb
26
+ - lib/login_radius/custom_object_api.rb
51
27
  - lib/login_radius/exception.rb
52
- - lib/login_radius/messages.rb
53
- - lib/login_radius/related.rb
54
- - lib/login_radius/user_profile.rb
55
- - lib/login_radius/user_profile_getters.rb
28
+ - lib/login_radius/raas_api.rb
29
+ - lib/login_radius/user_api.rb
56
30
  - lib/login_radius/version.rb
31
+ - lib/string.rb
57
32
  homepage: https://www.loginradius.com
58
33
  licenses:
59
34
  - MIT
@@ -64,18 +39,19 @@ require_paths:
64
39
  - lib
65
40
  required_ruby_version: !ruby/object:Gem::Requirement
66
41
  requirements:
67
- - - '>='
42
+ - - ">="
68
43
  - !ruby/object:Gem::Version
69
44
  version: '0'
70
45
  required_rubygems_version: !ruby/object:Gem::Requirement
71
46
  requirements:
72
- - - '>='
47
+ - - ">="
73
48
  - !ruby/object:Gem::Version
74
49
  version: '0'
75
50
  requirements: []
76
51
  rubyforge_project:
77
- rubygems_version: 2.0.14
52
+ rubygems_version: 2.2.2
78
53
  signing_key:
79
54
  specification_version: 4
80
- summary: Is a ruby wrapper for LoginRadius API v2
55
+ summary: Is a ruby wrapper for User Registration API
81
56
  test_files: []
57
+ has_rdoc:
@@ -1,41 +0,0 @@
1
- module LoginRadius
2
- module Messages
3
-
4
- # Sends a Status message to on facebook. Params hash takes following keys:
5
- # access_token :- [Required parameter] access token
6
- # title :- [optional parameter] status message title
7
- # url:- [optional parameter] any url that you want post in status message
8
- # imageurl :- [optional parameter] any image url that you want post in status message
9
- # status :- your status message
10
- # caption : [optional parameter] caption that you want post in status message
11
- # description :- [optional parameter] description that you want post in status message
12
- #
13
- # @param params [Hash]
14
- # @return [Boolean] Whether or not message succeeded
15
- def post_status!(params = {})
16
- call_api("api/v2/status/js", params)
17
- end
18
- def post_status(params = {})
19
- post_status!(params)
20
- rescue LoginRadius::Exception => e
21
- false
22
- end
23
-
24
- # Sends a Direct message to on facebook. Params hash takes following keys:
25
- # access_token :- [Required parameter] access token
26
- # to :- [Required parameter] with whom you want post you direct message
27
- # subject :- [optional parameter] any subject that you want post in direct message
28
- # message :- [optional parameter] any message that you want post in direct message
29
- #
30
- # @param params [Hash]
31
- # @return [Boolean] Whether or not message succeeded
32
- def direct_message!(params = {})
33
- call_api("api/v2/message/js", params)
34
- end
35
- def direct_message(params = {})
36
- direct_message!(params)
37
- rescue LoginRadius::Exception => e
38
- false
39
- end
40
- end
41
- end
@@ -1,34 +0,0 @@
1
- module LoginRadius
2
- module Related
3
- # fetch images with respact album id. Params hash takes following keys:
4
- # access_token :- [Required parameter] access token
5
- # albumid :- [Required parameter] albumid for fetch images from album
6
- #
7
- # @param params [Hash]
8
- # @return [Boolean] Whether or not message succeeded
9
-
10
- def photo!(params = {})
11
- call_api("api/v2/photo", params)
12
- end
13
- def photo(params = {})
14
- photo!(params)
15
- rescue LoginRadius::Exception => e
16
- false
17
- end
18
-
19
- # fetch page with respact PageNameOrId. Params hash takes following keys:
20
- # access_token :- [Required parameter] access token
21
- # pagename :- [Required parameter] pagename for fetch page details from provider
22
- #
23
- # @param params [Hash]
24
- # @return [Boolean] Whether or not message succeeded
25
- def page!(params = {})
26
- call_api("api/v2/page", params)
27
- end
28
- def page(params = {})
29
- page!(params)
30
- rescue LoginRadius::Exception => e
31
- false
32
- end
33
- end
34
- end
@@ -1,101 +0,0 @@
1
- require 'net/http'
2
- module LoginRadius
3
- class UserProfile
4
- include UserProfileGetters
5
- include Messages
6
-
7
- attr_accessor :secret, :token, :async
8
-
9
- API_ROOT = "https://api.loginradius.com/"
10
-
11
- # Takes a hash of account secret, token, and connection type(net_http or em_http)
12
- # and uses it to auth against the LoginRadius API. Then it returns the Account object. The
13
- # async key is optional, if set to true, will use Em::HTTP instead of Net::HTTP.
14
- #
15
- # @param opts [Hash] Must have keys :token, :secret, and :async(optional)
16
- # @return [LoginRadius::Account]
17
- def initialize(opts = {})
18
- self.token = opts[:token]
19
- self.secret = opts[:secret]
20
- self.async = opts[:async]
21
- raise LoginRadius::Exception.new("Invalid Request") unless token
22
- raise LoginRadius::Exception.new("Invalid Token") unless guid_valid?(token)
23
- raise LoginRadius::Exception.new("Invalid Secret") unless guid_valid?(secret)
24
- end
25
-
26
- # Takes a guid and returns whether or not it is valid.
27
- #
28
- # @param guid [String]
29
- # @return [Boolean]
30
- def guid_valid?(guid)
31
- guid.match(/^\{?[A-Z0-9]{8}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{12}\}?$/i)
32
- end
33
-
34
- # Returns whether or not this object is authed.
35
- #
36
- # @return [Boolean]
37
- def authenticated?
38
- respond_to?(:access_token)
39
- end
40
-
41
- # Generic GET call function that other submodules can use to hit the API.
42
- #
43
- # @param url [String] Target URL to fetch data from.
44
- # @param params [Hash] Parameters to send
45
- # @return data [Hash] Parsed JSON data from the call
46
- def call_api(url, params = {})
47
- url = API_ROOT+url unless url.match(/^#{API_ROOT}/) #in case api root is included,
48
- #as would happen in a recursive redirect call.
49
-
50
- if async
51
- #UNTESTED
52
- #if async is true, we expect you to be using EM::Synchrony submodule and to be in an eventloop,
53
- #like with a thin server using the Cramp framework. Otherwise, this method blows up.
54
- response = EM::Synchrony.sync EventMachine::HttpRequest.new(url).aget :redirects => 2, :query => params
55
- response = response.response
56
- else
57
- #synchronous version of the call.
58
- url_obj = URI.parse(url)
59
- url_obj.query = URI.encode_www_form(params)
60
-
61
- http = Net::HTTP.new(url_obj.host, url_obj.port)
62
- http.use_ssl = true
63
- http.verify_mode = OpenSSL::SSL::VERIFY_NONE
64
- response = http.get(url_obj.request_uri)
65
-
66
- if response.is_a?(Net::HTTPTemporaryRedirect)
67
- #for some reason, we always get redirected when calling server first time.
68
- #so if we do, we scan body for the redirect url, and the scan returns
69
- #an array of arrays. So we grab the array we know has what we need,
70
- #and grab the first element.
71
- redirect_url_array = response.body.scan(/<a href=\"([^>]+)\">/i)[1]
72
- redirect_url = redirect_url_array.first
73
- return call_api(redirect_url, params)
74
- end
75
-
76
- response = response.body
77
- end
78
-
79
- # For some reason, this API returns true/false instead of JSON responses for certain calls.
80
- # We catch this here.
81
- return true if response.match(/^true/i)
82
- return false if response.match(/^false/i)
83
-
84
- #We rescue this because sometimes the API returns HTML pages(which can't be JSON parsed)
85
- #This mostly happens when people use expired tokens. So we go ahead and raise an exception
86
- #About it if it gets caught.
87
- begin
88
- converted_response = JSON.parse(response, :symbolize_names => true)
89
- #it's all String keys in CamelCase above, so...
90
- # IF we got a hash back, convert it directly, if its an array, convert each item which is a hash
91
- # into snake case
92
- #converted_response = unconverted_response.is_a?(Hash) ?
93
- # Hash.lr_convert_hash_keys(unconverted_response).symbolize_keys! :
94
- # unconverted_response.map { |item| Hash.lr_convert_hash_keys(item).symbolize_keys!
95
- return converted_response
96
- rescue JSON::ParserError => e
97
- raise LoginRadius::Exception.new("A JSON parsing error occured because the API returned an HTML page instead of JSON. This happens mostly when you're using an expired Token. Specifics: #{e.message}")
98
- end
99
- end
100
- end
101
- end