lymbix 0.3.7 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
data/Changelog CHANGED
@@ -1,3 +1,4 @@
1
+ v0.4.0 - re-factored whole gem, implemented methods for 2.1 version
1
2
  v0.3.7 - added endpoint attribute to Base for companies implementation
2
3
  v0.3.6 - added end and start time to data points coming from toneaday
3
4
  v.0.3.5 - added tonalize_article, tonalize_paragraph which belongs to the 2.0 version of gyrus, also modified the request to include the version header
@@ -1,11 +1,6 @@
1
1
  $:.unshift(File.dirname(__FILE__)) unless $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
2
2
 
3
3
  require 'lymbix/configuration'
4
- require 'lymbix/user'
5
4
  require 'lymbix/request'
6
5
  require 'lymbix/response'
7
- require 'lymbix/word'
8
- require 'lymbix/base'
9
- require 'lymbix/connotative_category'
10
- require 'lymbix/tweet'
11
- require 'lymbix/data_point'
6
+ require 'lymbix/base'
@@ -1,261 +1,85 @@
1
1
  module Lymbix
2
2
 
3
+ =begin rdoc
4
+ The Base class is the most used class in the Lymbix gem.
5
+ It incorporates all the methods used to tonalize.
6
+
7
+ To begin using the base class, you must authenticate using one of the authenticate methods and store the results in a variable.
8
+ On a successful authentication, you can start calling tonalize methods immediatly.
9
+ =end
10
+
3
11
  class Base
4
- attr_accessor :auth_key, :app_id, :lymbix_user_id, :error_messages, :user
5
-
6
- def initialize(options)
7
- unless options[:error_messages]
8
- @auth_key = options[:auth_key]
9
- @app_id = options[:app_id]
10
- @lymbix_user_id = options[:lymbix_user_id]
11
- @endpoint = options[:endpoint]
12
- @user = User.new(options[:user].merge({:auth_key => options[:auth_key]})) if options[:user]
13
- if @user
14
- @lymbix_user_id = @user.lymbix_user_id
15
- end
16
- else
17
- @error_messages = options[:error_messages]
18
- end
19
- end
20
-
21
- def open_bar_auth_key(options)
22
- response = Lymbix::Request.new(:post, 'open_bar_auth_key', {:lymbix_user_id => options[:lymbix_user_id], :auth_key => options[:auth_key], :app_id => options[:app_id]}, :app_id => options[:app_id], :other_app_id => options[:other_app_id]).run
23
- response.data["auth_key"]
24
- end
25
-
26
- def self.authenticate(email, password, app_id)
27
- response = Lymbix::Request.new(:post, 'authenticate', {:app_id => app_id}, {:app_id => app_id, :email => email, :password => password}).run
28
- hash_response = response.data.to_hash
29
- self.new(:auth_key => hash_response["auth_key"], :app_id => app_id, :endpoint => hash_response["endpoint"], :user => {:name => hash_response["name"], :age => hash_response["age"], :country => hash_response["country"], :state => hash_response["state"], :lymbix_user_id => hash_response["id"], :gender => hash_response["gender"], :error_messages => []})
30
- rescue RestClient::Unauthorized
31
- self.new(:error_messages => "Wrong Password")
32
- rescue Exception => ex
33
- self.new(:error_messages => "#{ex.message} \n #{ex.backtrace}")
34
- end
35
-
36
- def self.authenticate_from_auth_and_id(lymbix_user_id, auth_key, app_id)
37
- ActiveRecord::Base.logger.info "self.authenticate_from_auth_and_id"
38
-
39
- response = Lymbix::Request.new(:post, 'authenticate_from_auth_and_id', {:app_id => app_id}, {:app_id => app_id, :lymbix_user_id => lymbix_user_id, :auth_key => auth_key}).run
40
- hash_response = response.data.to_hash
41
- self.new(:auth_key => hash_response["auth_key"], :app_id => app_id, :user => {:name => hash_response["name"], :age => hash_response["age"], :country => hash_response["country"], :state => hash_response["state"], :lymbix_user_id => hash_response["id"], :gender => hash_response["gender"], :error_messages => []})
42
- rescue Exception => ex
43
- self.new(:error_messages => "#{ex.message} \n #{ex.backtrace}")
44
- end
45
-
46
- def service_up
47
- response = request(:get, 'service_up').data
48
- end
49
-
50
- def word_count
51
- response = request(:get, 'word_count').data
52
- response["count"].to_i
53
- end
54
-
55
- def contribution_count
56
- response = request(:get, 'contribution_count').data
57
- response["contribution_count"].to_i
58
- end
59
-
60
- def toneaday_daily_best
61
- response = request(:get, 'toneaday_daily_best').data
62
- puts response["daily_toneaday_user_id"].to_i
63
- [response["daily_toneaday_user_id"].to_i, response["daily_toneaday_contribution_count"].to_i]
64
- end
65
-
66
- def toneaday_weekly_best
67
- response = request(:get, 'toneaday_weekly_best').data
68
- [response["weekly_toneaday_user_id"].to_i, response["weekly_toneaday_contribution_count"].to_i]
69
- end
70
-
71
- def user_contribution_count(user_id)
72
- response = request(:get, "contribution_count/#{user_id}").data
73
- response["contribution_count"].to_i
74
- end
75
-
76
- def tonalized_words_count
77
- response = request(:get, 'tonalized_words').data
78
- response["tonalized_words_count"].to_i
79
- end
12
+ # The user's authentication key
13
+ attr_accessor :auth_key
14
+ # Error messages that were caught during the authentication
15
+ attr_accessor :error_messages
16
+ # API Version
80
17
 
81
- def word_top_random
82
- response = request(:get, 'word_top_random')
83
- Word.new(:id => response.data["id"], :word => response.data["word"], :is_external => response.data["is_external"], :is_phrase => response.data["is_phrase"])
18
+ def initialize(auth_key)
19
+ @auth_key = auth_key
84
20
  end
85
-
86
- def gold_word_top_random
87
- response = request(:get, 'gold_word_top_random')
88
- Word.new(:id => response.data["id"], :word => response.data["word"], :is_external => response.data["is_external"], :is_phrase => response.data["is_phrase"])
21
+
22
+ # Tonalizes text using version 2.1 of ToneAPI
23
+ def tonalize(article, return_fields = [], accept_type = "application/json")
24
+ @version = 2.1
25
+ accept_type == "application/xml" ? return_fields = return_fields_xml(return_fields) : return_fields = return_fields_json(return_fields)
26
+ response = request(:post, 'tonalize',{:article => article, :return_fields => return_fields}, {:accept => accept_type}).data
89
27
  end
90
28
 
91
-
92
- def word_lookup(word)
93
- response = request(:get, "lookup/#{URI.escape(word)}")
94
- if response.data
95
- Word.new(:id => response.data["id"], :word => response.data["word"], :is_external => response.data["is_external"], :is_phrase => response.data["is_phrase"])
96
- else
97
- nil
98
- end
99
- end
100
-
101
- def add_word(word, definition, is_phrase = false)
102
- ActiveRecord::Base.logger.info "ADD_WORD START"
103
- response = request(:post, 'words', {:word => word, :definition => definition, :is_external => true, :is_phrase => is_phrase})
104
- ActiveRecord::Base.logger.info "ADD_WORD END #{response.inspect}"
105
- Word.new(:id => response.data["id"], :word => response.data["word"], :is_external => response.data["is_external"], :is_phrase => response.data["is_phrase"])
106
- end
107
-
108
- def bad_ratings_count(user_id,last_checkout_date)
109
- response = request(:get, "bad_ratings_count/#{user_id}/#{last_checkout_date}")
110
- end
111
-
112
- def expunge(word)
113
- response = request(:post,'expunge', {:word => word})
114
- end
115
-
116
- # MODERATION
117
-
118
- def approve_tonecheck_beta(user_id)
119
- response = request(:post, 'approve_tonecheck_beta', {:user_id => user_id})
29
+ # Tonalizes text using version 2.0 of ToneAPI
30
+ def tonalize_article(article, accept_type = "application/json")
31
+ @version = 2.0
32
+ response = request(:post, 'tonalize_article',{:article => article}, {:accept => accept_type}).data
120
33
  end
121
34
 
122
- def reset_tonecheck_beta(user_id)
123
- response = request(:post, 'reset_tonecheck_beta', {:user_id => user_id})
35
+ # Tonalizes mutliple articles using version 2.1 of ToneAPI. With the return_fields param you can now specify which field to get back from the API.
36
+ def tonalize_multiple(articles, return_fields = [], accept_type = "application/json")
37
+ @version = 2.1
38
+ accept_type == "application/xml" ? return_fields = return_fields_xml(return_fields) : return_fields = return_fields_json(return_fields)
39
+ accept_type == "application/xml" ? articles = articles_xml(articles) : articles = articles_json(articles)
40
+ response = request(:post, 'tonalize_multiple',{:articles => articles, :return_fields => return_fields}, {:accept => accept_type}).data
124
41
  end
125
42
 
126
- def tonecheck_beta_count
127
- response = request(:get, 'tonecheck_beta_count', {:app_id => @app_id})
128
- response.data['tonecheck_beta_count']
43
+ # Tonalizes article using version 2.1 of ToneAPI. With the return_fields param you can now specify which field to get back from the API.
44
+ # The detailed response includes the tonalization data for the article and all sentences found in the article
45
+ def tonalize_detailed(article, return_fields = [], accept_type = "application/json")
46
+ @version = 2.1
47
+ accept_type == "application/xml" ? return_fields = return_fields_xml(return_fields) : return_fields = return_fields_json(return_fields)
48
+ response = request(:post, 'tonalize_detailed',{:article => article, :return_fields => return_fields}, {:accept => accept_type}).data
129
49
  end
130
50
 
131
- def tonecheck_beta
132
- response = request(:get, 'tonecheck_beta', {:app_id => @app_id})
133
- response.data['tonecheck_beta']
134
- end
135
-
136
- def moderated_count
137
- response = request(:get, 'moderated_count', {:app_id => @app_id})
138
- response.data['moderated_count']
139
- end
51
+ # Flags a phrase to be re-evaluated
52
+ def flag_response(phrase, api_method_requested, api_version, callback_url = nil)
53
+ @version = 2.1
54
+ response = request(:post, 'flag_response', {:phrase => phrase, :api_method_requested => api_method_requested, :api_version => api_version, :callback_url => callback_url}).data
55
+ end
140
56
 
141
- def unmoderated_count
142
- response = request(:get, 'unmoderated_count', {:app_id => @app_id})
143
- response.data['unmoderated_count']
144
- end
145
-
146
- def moderated
147
- response = request(:get, 'moderated', {:app_id => @app_id})
148
- response.data['moderated']
149
- end
150
-
151
- def unmoderated
152
- response = request(:get, 'unmoderated', {:app_id => @app_id})
153
- response.data['unmoderated']
154
- end
155
-
156
- def user_data_points(user_id, page = 1, earnings_in_cents = 0)
157
- response = request(:get, "user_data_points/#{user_id}/#{page}/#{earnings_in_cents}", {:app_id => @app_id})
158
- response.data['data']
159
- end
160
-
161
- def medulla_data_points(phrase)
162
- response = request(:get, "medulla_data_points", {:app_id => @app_id, :phrase => phrase})
163
- ActiveRecord::Base.logger.info "!!! medulla_data_points #{response.data['data']}"
164
- response.data['data']
165
- end
166
-
167
- def user_search(query)
168
- response = request(:post, "user_search", {:app_id => @app_id, :query => query})
169
- response.data['users']
170
- end
171
-
172
- def find_user_by_id(user_id)
173
- response = request(:post, "find_user_by_id", {:app_id => @app_id, :user_id => user_id})
174
- response.data['user']
175
- end
176
-
177
- def find_users_by_ids(user_ids)
178
- response = request(:post, "find_users_by_ids", {:app_id => @app_id, :user_ids => user_ids.join(',')})
179
- response.data['users']
180
- end
181
-
182
- def archive_user_data(user_id)
183
- response = request(:post, "archive_user_data/#{user_id}", {:app_id => @app_id})
184
- response
185
- end
186
-
187
- # END
188
-
189
- def word_data(phrase)
190
- response = request(:post, 'word_data', {:phrase => phrase}).data
191
- end
192
-
193
- # def update_user_app_config(user_app_config_xml)
194
- # response = request(:post, 'update_user_app_config', {:user_app_config => user_app_config_xml},{:version => 2}).data
195
- # end
196
-
197
- # def checksum_user_app_config(checksum)
198
- # response = request(:post, 'checksum_user_app_config',{:checksum_user_app_config => checksum},{:version => 2}).data
199
- # end
200
-
201
- def tonalize_words(phrase)
202
- response = request(:post, 'tonalize_words', {:phrase => phrase}).data
203
- end
204
-
205
- def tonalize_paragraph(paragraph)
206
- response = request(:post, 'tonalize_paragraph', {:paragraph => paragraph}, {:version => 2}).data
207
- end
208
-
209
- def tone_alternates(phrase)
210
- response = request(:post, 'suggestions',{:phrase => phrase}).data
211
- end
212
-
213
- def suggest_alternates(phrase,alternates)
214
- response = request(:post, 'suggest_alternates',{:phrase => phrase, :alternates => alternates}).data
215
- end
216
-
217
- def tonalize_article(article)
218
- response = request(:post, 'tonalize_article',{:article => article},{:version => 2}).data
219
- end
220
-
221
- def all_connotative_categories
222
- response = request(:get, 'connotative_categories')
223
- all_cc = []
224
- response.data.each do |cc|
225
- all_cc << ConnotativeCategory.new(:id => cc["id"], :name => cc["name"], :is_positive => cc["is_positive"])
226
- end
227
- all_cc
228
- end
229
-
230
- def top_tweet
231
- response = request(:get, 'top_tweet').data
232
- tweet = Tweet.new(:id => response["id"], :is_user_created => response["is_user_created"], :tweet => response["tweet"], :requested_count => response["requested_count"])
233
- tweet.instance_variable_set(:@phrases_found,response["phrases_found"])
234
- return tweet
57
+ private
58
+ def request(action, method, data, headers = {})
59
+ Lymbix::Request.new(action, method, {:app_id => @app_id, :auth_key => @auth_key, :version => @version, :accept_type => headers[:accept]}, data).run
235
60
  end
236
61
 
237
- def dominant_words(phrase)
238
- response = request(:post, 'dominant_words',{:phrase => phrase}).data
62
+ def return_fields_xml(return_fields)
63
+ xml = "<return_fields>"
64
+ return_fields.each {|field| xml << "<field>" + field + "</field>"}
65
+ xml << "</return_fields>"
66
+ xml
239
67
  end
240
68
 
241
- def swap_groups(lymbix_user_id, group_remove, group_add)
242
- response = request(:post, 'swap_groups', {:lymbix_user_id => lymbix_user_id, :group_remove => group_remove, :group_add => group_add})
69
+ def return_fields_json(return_fields)
70
+ return_fields.to_json
243
71
  end
244
72
 
245
- def phrase_search(query)
246
- response = request(:post, "phrase_search", {:app_id => @app_id, :query => query})
247
- response.data['phrases']
73
+ def articles_xml(articles)
74
+ xml = "<articles>"
75
+ articles.each {|article| xml << "<article>" + article + "</article>"}
76
+ xml << "</articles>"
77
+ xml
248
78
  end
249
79
 
250
- private
251
- def request(action, method, data = nil,headers = nil)
252
- if headers
253
- Lymbix::Request.new(action, method, {:app_id => @app_id, :auth_key => @auth_key, :lymbix_user_id => @lymbix_user_id, :version => headers[:version]}, data).run
254
- else
255
- Lymbix::Request.new(action, method, {:app_id => @app_id, :auth_key => @auth_key, :lymbix_user_id => @lymbix_user_id, :version => 1}, data).run
256
- end
80
+ def articles_json(articles)
81
+ articles.to_json
257
82
  end
258
-
259
83
  end
260
84
 
261
85
  end
@@ -15,7 +15,7 @@ module Lymbix
15
15
 
16
16
  def connection
17
17
  options = {}
18
- options[:headers] = {:accept => "application/json", :APP_ID => self.header_hash[:app_id].to_s, :LYMBIX_USER_ID => self.header_hash[:lymbix_user_id], :AUTHENTICATION => self.header_hash[:auth_key], :VERSION => self.header_hash[:version]}
18
+ options[:headers] = {:accept => self.header_hash[:accept_type], :AUTHENTICATION => self.header_hash[:auth_key], :VERSION => self.header_hash[:version]}
19
19
  RestClient::Resource.new(self.url, options)
20
20
  end
21
21
 
@@ -23,32 +23,14 @@ module Lymbix
23
23
  case(self.http_method)
24
24
  when :get
25
25
  self.connection[self.method].get do |resp|
26
- begin
27
- case resp.code
28
- when 200
29
- self.response = resp.body
30
- when 401
31
- raise RestClient::Unauthorized
32
- end
33
- rescue
34
- puts resp.inspect
35
- end
26
+ self.response = resp.body
36
27
  end
37
28
  when :post
38
29
  self.connection[self.method].post(object) do |resp|
39
- begin
40
- case resp.code
41
- when 200
42
- self.response = resp.body
43
- when 401
44
- raise RestClient::Unauthorized
45
- end
46
- rescue
47
- puts resp.inspect
48
- end
30
+ self.response = resp.body
49
31
  end
50
32
  end
51
33
  Response.new(self.response)
52
34
  end
53
35
  end
54
- end
36
+ end
@@ -20,11 +20,11 @@ module Lymbix
20
20
  end
21
21
  rescue
22
22
  @success = false
23
- @data = response
23
+ @data = response.to_s
24
24
  end
25
25
  else
26
26
  @success = false
27
- @data = nil
27
+ @data = response.to_s
28
28
  end
29
29
  end
30
30
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lymbix
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
4
+ hash: 15
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
- - 3
9
- - 7
10
- version: 0.3.7
8
+ - 4
9
+ - 0
10
+ version: 0.4.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Patrick Roy
@@ -18,7 +18,7 @@ autorequire:
18
18
  bindir: bin
19
19
  cert_chain: []
20
20
 
21
- date: 2010-09-14 00:00:00 -03:00
21
+ date: 2010-12-17 00:00:00 -04:00
22
22
  default_executable:
23
23
  dependencies: []
24
24
 
@@ -37,13 +37,8 @@ files:
37
37
  - lib/lymbix/configuration.rb
38
38
  - lib/lymbix.rb
39
39
  - lib/lymbix/base.rb
40
- - lib/lymbix/connotative_category.rb
41
- - lib/lymbix/data_point.rb
42
40
  - lib/lymbix/request.rb
43
41
  - lib/lymbix/response.rb
44
- - lib/lymbix/tweet.rb
45
- - lib/lymbix/user.rb
46
- - lib/lymbix/word.rb
47
42
  has_rdoc: true
48
43
  homepage: http://www.lymbix.com/
49
44
  licenses: []
@@ -1,15 +0,0 @@
1
- module Lymbix
2
-
3
- class ConnotativeCategory
4
-
5
- attr_accessor :id, :name, :is_positive
6
-
7
- def initialize(options)
8
- @id = options[:id]
9
- @name = options[:name]
10
- @is_positive = options[:is_positive]
11
- end
12
-
13
- end
14
- end
15
-
@@ -1,61 +0,0 @@
1
- module Lymbix
2
-
3
- class DataPoint
4
-
5
- attr_accessor :id, :word_id, :definition_id, :category_id, :data, :created_at, :updated_at, :user_id, :auth_key, :app_id, :lymbix_user_id
6
-
7
- def initialize(data = nil)
8
- if data
9
- @id = data[:id]
10
- @word_id = data[:word_id]
11
- @definition_id = data[:definition_id]
12
- @category_id = data[:category_id]
13
- @data = data[:data]
14
- @created_at = data[:created_at]
15
- @updated_at = data[:updated_at]
16
- @user_id = data[:user_id]
17
- @app_id = data[:app_id]
18
- @auth_key = data[:auth_key]
19
- @lymbix_user_id = data[:lymbix_user_id]
20
- end
21
- end
22
-
23
- def self.create(data)
24
- categories_data = "{"
25
- data[:data_points].each do |dp|
26
- categories_data << ":category_id_#{dp[:category_id]} => #{dp[:data]},"
27
- end
28
- categories_data.chop!
29
- categories_data << "}"
30
- response = Lymbix::Request.new(:post, "data_points",{:app_id => data[:app_id], :auth_key => data[:auth_key], :lymbix_user_id => data[:lymbix_user_id]}, {:worker_id => data[:worker_id], :phrase => data[:phrase], :start_rate_time => data[:start_rate_time], :end_rate_time => data[:end_rate_time], :word_id => data[:word_id], :definition_id => data[:definition_id], :user_id => data[:user_id], :lymbix_user_id => data[:lymbix_user_id]}.merge!(eval(categories_data))).run
31
- end
32
-
33
- def save
34
- response = Lymbix::Request.new(:post, "data_points",{:app_id => @app_id, :auth_key => @auth_key, :lymbix_user_id => @lymbix_user_id}, {:word_id => @word_id, :definition_id => @definition_id, :category_id => @category_id, :data => @data, :user_id => @user_id}).run
35
- DataPoint.new(:id => response.data["id"], :word_id => response.data["word_id"], :definition_id => response.data["definition_id"], :category_id => response.data["category_id"], :data => response.data["data"], :created_at => response.data["created_at"], :updated_at => response.data["updated_at"], :user_id => response.data["user_id"], :lymbix_user_id => response.data["lymbix_user_id"])
36
- end
37
-
38
- end
39
- end
40
-
41
-
42
- # #--------------------------------------------------------------------------
43
- # # DataPoint
44
- # #==========================================================================
45
- #
46
- # DataPoint = BaseObject.new(:id, :word_id, :definition_id, :category_id, :data, :created_at, :updated_at, :user_id)
47
- #
48
- # class DataPoint
49
- # def save
50
- # resp = Lymbix::request("data_points", "post", {:word_id => self["word_id"], :definition_id => self["definition_id"], :category_id => self["category_id"], :data => self["data"], :user_id => self["user_id"]})
51
- # data_point = JSON.load(resp)
52
- # DataPoint.new(data_point["id"], data_point["word_id"], data_point["definition_id"], data_point["category_id"], data_point["data"], data_point["created_at"], data_point["updated_at"], data_point["user_id"])
53
- # end
54
- #
55
- # def self.find(data_point_id)
56
- # resp = Lymbix::request("data_points/#{data_point_id}")
57
- # data_point = JSON.load(resp)
58
- # DataPoint.new(data_point["id"], data_point["word_id"], data_point["definition_id"], data_point["category_id"], data_point["data"], data_point["created_at"], data_point["updated_at"], data_point["user_id"])
59
- # end
60
- #
61
- # end
@@ -1,15 +0,0 @@
1
- module Lymbix
2
-
3
- class Tweet
4
-
5
- attr_accessor :id, :is_user_created, :tweet, :requested_count
6
-
7
- def initialize(options)
8
- @id = options[:id]
9
- @is_user_created = options[:is_user_created]
10
- @tweet = options[:tweet]
11
- @requested_count = options[:requested_count]
12
- end
13
-
14
- end
15
- end
@@ -1,98 +0,0 @@
1
- module Lymbix
2
- class User
3
- attr_accessor :auth_key, :name, :error_messages, :age, :country, :state, :gender, :first_language, :year_of_birth, :education, :level, :strikes, :lymbix_user_id, :activated_at, :email, :is_admin, :app_member
4
-
5
- def initialize(options)
6
- @auth_key = options["auth_key"] || options[:auth_key]
7
- @name = options["name"] || options[:name]
8
- @age = options["age"] || options[:age]
9
- @country = options["country"] || options[:country]
10
- @state = options["state"] || options[:state]
11
- @gender = options["gender"] || options[:gender]
12
- @first_language = options["first_language"] || options[:first_language]
13
- @level = options["level"] || options[:level]
14
- @strikes = options["strikes"] || options[:strikes]
15
- @year_of_birth = options["year_of_birth"] || options[:year_of_birth]
16
- @education = options["education"] || options[:education]
17
- @error_messages = options[:error_messages]
18
- @lymbix_user_id = options["id"] || options[:lymbix_user_id]
19
- @activated_at = options["activated_at"] || options[:activated_at]
20
- @email = options["email"] || options[:email]
21
- @is_admin = options["is_admin"] || options[:is_admin]
22
- end
23
-
24
- def self.auth_login(auth_key, app_id)
25
- response = Lymbix::Request.new(:post, 'auth_login', {:app_id => app_id}, {:auth_key => auth_key}).run
26
- self.new(response.data.to_hash)
27
- rescue Exception => ex
28
- self.new(:error_messages => ["#{ex.message}"])
29
- end
30
-
31
- def self.authenticate(email, password, app_id)
32
- response = Lymbix::Request.new(:post, 'authenticate', {:app_id => app_id}, {:email => email, :password => password, :app_id => app_id}).run
33
- ActiveRecord::Base.logger.info "!!! self.authenticate response.inspect"
34
- self.new(response.data.to_hash)
35
- rescue RestClient::Unauthorized
36
- self.new(:error_messages => ["Wrong Password"])
37
- rescue Exception => ex
38
- self.new(:error_messages => ["#{ex.message}"])
39
- end
40
-
41
- def self.enable_application(params)
42
- begin
43
- response = Lymbix::Request.new(:post, 'enable_application', {:app_id => params[:app_id]}, {:email => params[:email], :password => params[:password]}).run
44
- self.new(response.data.to_hash)
45
- rescue Exception => ex
46
- self.new(:error_messages => [ex.message])
47
- end
48
- end
49
-
50
- def self.find_by_email(params)
51
- ActiveRecord::Base.logger.info "!!! self.find_by_email(params) #{params[:email]}"
52
- begin
53
- response = Lymbix::Request.new(:post, 'user_find_by_email', {:app_id => params[:app_id]}, {:email => params[:email]}).run
54
- self.new(response.data.to_hash)
55
- rescue Exception => ex
56
- self.new(:error_messages => [ex.message])
57
- end
58
- end
59
-
60
- def self.find_or_create(params)
61
-
62
- begin
63
- # response = Lymbix::Request.new(:post, 'find_user', {:app_id => @app_id, :auth_key => @auth_key, :lymbix_user_id => @lymbix_user_id}, {:email => params[:user][:email]}).run
64
- response = Lymbix::Request.new(:post, 'find_user', {:app_id => params[:app_id]}, {:email => params[:user][:email]}).run
65
-
66
- ActiveRecord::Base.logger.info "!! REQUEST DONE - #{response.inspect}"
67
-
68
- unless response.data["email"]
69
- response = Lymbix::Request.new(:post, 'users', {:app_id => params[:app_id]}, params[:user]).run #unless response.data['auth_key']
70
- if response.data["error_messages"]
71
- return self.new(:error_messages => response.data["error_messages"])
72
- end
73
- end
74
-
75
- self.new(response.data.to_hash)
76
- rescue Exception => ex
77
- ActiveRecord::Base.logger.info "!! REQUEST FAIL - #{ex.message}"
78
-
79
- self.new(:error_messages => [ex.message])
80
- end
81
- end
82
-
83
- def self.update(params)
84
- response = Lymbix::Request.new(:post, 'update_user', {:lymbix_user_id => params[:lymbix_user_id], :app_id => params[:app_id], :auth_key => params[:auth_key]}, {:email => params[:email], :name => params[:name], :password => params[:password], :password_confirmation => params[:password_confirmation], :age => params[:age], :country => params[:country], :state => params[:state], :gender => params[:gender], :first_language => params[:first_language], :year_of_birth => params[:year_of_birth], :education => params[:education]}).run
85
- if response.success
86
- self.new(:auth_key => response.data['auth_key'], :level => response.data['level'], :strikes => response.data['strikes'], :name => response.data['name'],:age => response.data['age'], :country => response.data['country'], :state => response.data['state'],:name => response.data['name'], :gender => response.data['gender'], :first_language => response.data['first_language'], :education => response.data['education'], :year_of_birth => response.data['year_of_birth'] , :error_messages => [])
87
- else
88
- self.new(:error_messages => response.data.errors)
89
- end
90
- end
91
-
92
- def self.request_tonecheck_beta(params)
93
- response = Lymbix::Request.new(:post, 'request_tonecheck_beta', {:app_id => params[:app_id], :auth_key => params[:auth_key]}, {:user_id => params[:user_id]}).run
94
- response.data['user']
95
- end
96
- end
97
-
98
- end
@@ -1,78 +0,0 @@
1
- module Lymbix
2
-
3
- class Word
4
-
5
- attr_reader :id, :word, :is_external, :is_phrase
6
-
7
- def initialize(data)
8
- @id = data[:id]
9
- @word = word = data[:word]
10
- @is_external = data[:is_external]
11
- @is_phrase = data[:is_phrase]
12
- end
13
-
14
- end
15
- end
16
-
17
-
18
-
19
- # #--------------------------------------------------------------------------
20
- # # Words
21
- # #==========================================================================
22
- #
23
- # Word = BaseObject.new(:id, :word, :is_external, :is_phrase)
24
- #
25
- # #<struct Lymbix::Word id={:is_external=>false, :id=>34941, :word=>"demand"}, word=nil, is_external=nil>
26
- #
27
- # class Word
28
- #
29
- # def self.count
30
- # resp = Lymbix::request('word_count')
31
- # end
32
- #
33
- # def self.top_random
34
- # resp = Lymbix::request('top_random')
35
- # word = JSON.load(resp)
36
- #
37
- # return nil if word.nil? || word.empty?
38
- # Word.new(word["id"], word["word"], word["is_external"], word["is_phrase"])
39
- # end
40
- #
41
- # def self.add_word(word, definition, is_phrase = false)
42
- # resp = Lymbix::request('words', 'post', {:word => word, :definition => definition, :is_external => true, :is_phrase => is_phrase})
43
- # word = JSON.load(resp)
44
- # return nil if word.nil? || word.empty?
45
- # Word.new(word["id"], word["word"], word["is_external"], word["is_phrase"])
46
- # end
47
- #
48
- # def self.lookup(word)
49
- # resp = Lymbix::request("lookup/#{word}")
50
- # return nil if resp == "null"
51
- #
52
- # word = JSON.load(resp)
53
- #
54
- # return nil if word.nil? || word.empty?
55
- # Word.new(word["id"], word["word"], word["is_external"], word["is_phrase"])
56
- # end
57
- #
58
- # def self.search(word)
59
- # resp = Lymbix::request("search/#{word}")
60
- # word = JSON.load(resp)
61
- #
62
- # return nil if word.nil? || word.empty?
63
- # Word.new(word["id"], word["word"], word["is_external"], word["is_phrase"])
64
- # end
65
- #
66
- # def self.find(word_id)
67
- # resp = Lymbix::request("words/#{word_id}")
68
- # word = JSON.load(resp)
69
- #
70
- # return nil if word.nil? || word.empty?
71
- # Word.new(word["id"], word["word"], word["is_external"], word["is_phrase"])
72
- # end
73
- #
74
- # def definitions
75
- # Definition::list(self.id)
76
- # end
77
- #
78
- # end