comufy 0.0.2b → 0.0.2.pre2

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -18,7 +18,7 @@ Or install it yourself as:
18
18
 
19
19
  ## Usage
20
20
 
21
-
21
+ TODO:
22
22
 
23
23
  ## Contributing
24
24
 
data/comufyruby.gemspec CHANGED
@@ -8,8 +8,8 @@ Gem::Specification.new do |gem|
8
8
  gem.version = Comufy::VERSION
9
9
  gem.authors = %w(plcstevens)
10
10
  gem.email = %w(philip@tauri-tec.com)
11
- gem.description = %q{}
12
- gem.summary = %q{}
11
+ gem.description = %q{This library can be used with Heroku}
12
+ gem.summary = %q{This library allows customers to interact with the Comufy backend and perform common operations.}
13
13
  gem.homepage = "https://github.com/plcstevens/comufyruby"
14
14
 
15
15
  gem.files = `git ls-files`.split($/)
@@ -0,0 +1,30 @@
1
+ require 'comufy'
2
+
3
+ USERNAME = ARGV[0]
4
+ PASSWORD = ARGV[1]
5
+ APPLICATION_NAME = ARGV[2]
6
+ FACEBOOK_USER_ID = ARGV[3]
7
+
8
+ connect = Comufy.connect(logger: "debug", username: USERNAME, password: PASSWORD)
9
+ tag = Array[{name: :other_details, type: Comufy::Connector::STRING_TYPE}]
10
+ puts connect.register_tags(APPLICATION_NAME, tag)
11
+
12
+ # register a tag!
13
+ #tag = Array[Hash[:name, :other_details, :type, Comufy::Connector::STRING_TYPE]]
14
+ #puts connect.register_tags(APPLICATION_NAME, tag)
15
+
16
+ # lets save a new user or if the user exists, update these tag details
17
+ #tags = Hash[:other_details, 'test_details']
18
+ #puts connect.store_user(APPLICATION_NAME, FACEBOOK_USER_ID, tags)
19
+
20
+ # send a message to the user!
21
+ #description = "description for you!"
22
+ #content = "Content of the message goes here"
23
+ #message_options = Hash.new
24
+ #message_options[:private] = true
25
+ #message_options[:link] = "www.example.com"
26
+ #message_options[:name] = "test_name"
27
+ #message_options[:description] = "test_description"
28
+ #puts connect.send_facebook_message(
29
+ # APPLICATION_NAME, description, content, %w(FACEBOOK_USER_ID), message_options: message_options
30
+ #)
data/lib/comufy/config.rb CHANGED
@@ -2,7 +2,7 @@ module Comufy
2
2
  class Config
3
3
  include Comufy
4
4
 
5
- attr_reader :username, :password, :base_api_url
5
+ attr_reader :user, :password, :base_api_url
6
6
  attr_accessor :access_token, :expiry_time
7
7
 
8
8
  # Sets the environment settings for Comufy to send and receive messages.
@@ -23,23 +23,23 @@ module Comufy
23
23
  yaml = Hash.new()
24
24
  end
25
25
 
26
- username = params[:username]
26
+ user = params[:user]
27
27
  password = params[:password]
28
28
  no_env = params[:no_env]
29
29
  staging = params[:staging]
30
30
 
31
- if (username and not password) or (password and not username)
31
+ if (user and not password) or (password and not user)
32
32
  raise "You must supply both a username and password."
33
33
  end
34
34
 
35
- @username = username || yaml.fetch(:config, {})['username']
35
+ @user = user || yaml.fetch(:config, {})['user']
36
36
  @password = password || yaml.fetch(:config, {})['password']
37
37
  @access_token = no_env ? nil : ENV.fetch('access_token', nil)
38
38
  @expiry_time = no_env ? nil : ENV.fetch('expiry_time', nil)
39
39
 
40
40
  staging ?
41
- @base_api_url = 'https://staging.comufy.com/xcoreweb/client?request=' :
42
- @base_api_url = 'https://social.comufy.com/xcoreweb/client?request='
41
+ @base_api_url = 'https://staging.comufy.com/xcoreweb/client' :
42
+ @base_api_url = 'https://social.comufy.com/xcoreweb/client'
43
43
 
44
44
  end
45
45
  end
@@ -2,20 +2,31 @@ module Comufy
2
2
  class Connector
3
3
  include Comufy
4
4
 
5
+ STRING_TYPE = :STRING
6
+ DATE_TYPE = :DATE
7
+ GENDER_TYPE = :GENDER
8
+ INT_TYPE = :INT
9
+ FLOAT_TYPE = :FLOAT
10
+ LEGAL_TYPES = [STRING_TYPE, DATE_TYPE, GENDER_TYPE, INT_TYPE, FLOAT_TYPE]
11
+
12
+ NAME_TAG = :name
13
+ TYPE_TAG = :type
14
+ LEGAL_TAGS = [NAME_TAG, TYPE_TAG]
15
+
5
16
  # There are a number of options you can pass to change default settings.
6
17
  #
7
18
  # With regards to the server to connect to, if you pass <tt>staging: true</tt> it'll use the Comufy
8
19
  # staging server, otherwise it'll default to using the social server.
9
20
  #
10
21
  # Concerning authentication, there are a number of ways to connect to the Comufy servers. You can
11
- # pass in a username and password in the parameters, provide the location of a YAML file where these are
22
+ # pass in a user name and password in the parameters, provide the location of a YAML file where these are
12
23
  # specified or read in the <tt>access_token</tt> from your environment path. Please note that you can stop
13
24
  # the connector from reading your environment path by setting <tt>no_env</tt> to true. When doing this please
14
- # ensure your username and password are correct, otherwise you'll not be able to connect to the Comufy servers.
25
+ # ensure your user name and password are correct, otherwise you'll not be able to connect to the Comufy servers.
15
26
  #
16
27
  # The YAML file provided should appear as:
17
28
  # config:
18
- # username: username
29
+ # user: user
19
30
  # password: password
20
31
  #
21
32
  # = Example
@@ -26,8 +37,8 @@ module Comufy
26
37
  # # do not use the environment path
27
38
  # Comufy::Connector.new(no_env: true)
28
39
  #
29
- # # set the username and password yourself
30
- # Comufy::Connector.new(username: YOUR_USERNAME, password: YOUR_PASSWORD)
40
+ # # set the user and password yourself
41
+ # Comufy::Connector.new(user: YOUR_USERNAME, password: YOUR_PASSWORD)
31
42
  #
32
43
  # # Or you can read in from a YAML file!
33
44
  #
@@ -38,15 +49,16 @@ module Comufy
38
49
  @config = Config.new(params)
39
50
  @logger = Logger.new(STDOUT)
40
51
  @logger.level = case params[:logger]
41
- when "info" then
42
- Logger::INFO
43
- when "warn" then
44
- Logger::WARN
45
- when "debug" then
46
- Logger::DEBUG
47
- else
48
- Logger::DEBUG
49
- end
52
+ when "info" then
53
+ Logger::INFO
54
+ when "warn" then
55
+ Logger::WARN
56
+ when "debug" then
57
+ Logger::DEBUG
58
+ else
59
+ Logger::WARN
60
+ end
61
+
50
62
  # sanitize all output
51
63
  original_formatter = Logger::Formatter.new
52
64
  @logger.formatter = proc { |severity, datetime, progname, msg|
@@ -69,19 +81,19 @@ module Comufy
69
81
  def store_user app_name, uid, tags
70
82
  return false unless get_access_token
71
83
  if app_name.nil? or app_name.empty?
72
- @logger.warn(progname = 'Comufy::Connect.store_user') {
84
+ @logger.warn(progname = 'Comufy::Connector.store_user') {
73
85
  'First parameter must be set to your application name.'
74
86
  }
75
87
  return false
76
88
  end
77
89
  if uid.nil? or uid.empty?
78
- @logger.warn(progname = 'Comufy::Connect.store_user') {
90
+ @logger.warn(progname = 'Comufy::Connector.store_user') {
79
91
  'Second parameter must be a valid Facebook user ID.'
80
92
  }
81
93
  return false
82
94
  end
83
95
  if tags.nil? or not tags.is_a?(Hash)
84
- @logger.warn(progname = 'Comufy::Connect.store_user') {
96
+ @logger.warn(progname = 'Comufy::Connector.store_user') {
85
97
  'Third parameter must be a hash of tag information for this uid.'
86
98
  }
87
99
  return false
@@ -101,41 +113,44 @@ module Comufy
101
113
  if message
102
114
  case message['cd']
103
115
  when 388 then
116
+ @logger.debug(progname = 'Comufy::Connector.store_user') {
117
+ "388 - Success! - data = #{data} - message = #{message}."
118
+ }
104
119
  return true
105
120
  when 475 then
106
- @logger.debug(progname = 'Comufy::Connect.store_user') {
121
+ @logger.debug(progname = 'Comufy::Connector.store_user') {
107
122
  "475 - Invalid parameter provided. - data = #{data} - message = #{message}."
108
123
  }
109
- @logger.warn(progname = 'Comufy::Connect.store_user') {
124
+ @logger.warn(progname = 'Comufy::Connector.store_user') {
110
125
  '475 - Invalid parameter provided.'
111
126
  }
112
127
  when 617 then
113
- @logger.debug(progname = 'Comufy::Connect.store_user') {
128
+ @logger.debug(progname = 'Comufy::Connector.store_user') {
114
129
  "617 - Some of the tags passed are not registered. - data = #{data} - message = #{message}."
115
130
  }
116
- @logger.warn(progname = 'Comufy::Connect.store_user') {
131
+ @logger.warn(progname = 'Comufy::Connector.store_user') {
117
132
  '617 - Some of the tags passed are not registered.'
118
133
  }
119
134
  when 632 then
120
- @logger.debug(progname = 'Comufy::Connect.store_user') {
135
+ @logger.debug(progname = 'Comufy::Connector.store_user') {
121
136
  "632 - _ERROR_FACEBOOK_PAGE_NOT_FOUND - data = #{data} - message = #{message}."
122
137
  }
123
- @logger.warn(progname = 'Comufy::Connect.store_user') {
138
+ @logger.warn(progname = 'Comufy::Connector.store_user') {
124
139
  '632 - _ERROR_FACEBOOK_PAGE_NOT_FOUND'
125
140
  }
126
141
  else
127
- @logger.debug(progname = 'Comufy::Connect.store_user') {
142
+ @logger.debug(progname = 'Comufy::Connector.store_user') {
128
143
  "UNKNOWN RESPONSE - data = #{data} - message = #{message}."
129
144
  }
130
- @logger.warn(progname = 'Comufy::Connect.store_user') {
145
+ @logger.warn(progname = 'Comufy::Connector.store_user') {
131
146
  "An error occurred when sending #{data}. Comufy returned #{message}. Please get in touch with Comufy if you cannot resolve the problem."
132
147
  }
133
148
  end
134
149
  else
135
- @logger.debug(progname = 'Comufy::Connect.store_user') {
150
+ @logger.debug(progname = 'Comufy::Connector.store_user') {
136
151
  "Authentication failed - data = #{data}."
137
152
  }
138
- @logger.warn(progname = 'Comufy::Connect.store_user') {
153
+ @logger.warn(progname = 'Comufy::Connector.store_user') {
139
154
  "Authentication failed when sending #{data}. Please get in touch with Comufy if you cannot resolve the problem."
140
155
  }
141
156
  end
@@ -145,11 +160,11 @@ module Comufy
145
160
  # TODO: IMPLEMENT METHOD
146
161
  def remove_user app_name, uid # :nodoc:
147
162
  return false unless get_access_token
148
- @logger.debug(progname = 'Comufy::Connect.remove_user') {
163
+ @logger.debug(progname = 'Comufy::Connector.remove_user') {
149
164
  'METHOD_NOT_IMPLEMENTED'
150
165
  }
151
- @logger.warn(progname = 'Comufy::Connect.remove_user') {
152
- 'METHOD_NOT_IMPLEMENTED'
166
+ @logger.warn(progname = 'Comufy::Connector.remove_user') {
167
+ 'METHOD_NOT_IMPLEMENTED'
153
168
  }
154
169
  app_name
155
170
  uid
@@ -174,13 +189,13 @@ module Comufy
174
189
  def store_users app_name, uid_tags
175
190
  return false unless get_access_token
176
191
  if app_name.nil? or app_name.empty?
177
- @logger.warn(progname = 'Comufy::Connect.store_users') {
192
+ @logger.warn(progname = 'Comufy::Connector.store_users') {
178
193
  'First parameter must be set to your application name.'
179
194
  }
180
195
  return false
181
196
  end
182
197
  if uid_tags.nil? or not uid_tags.is_a?(Hash)
183
- @logger.warn(progname = 'Comufy::Connect.store_users') {
198
+ @logger.warn(progname = 'Comufy::Connector.store_users') {
184
199
  'Second parameter must be a hash where a key is a Facebook user ID and its value a hash of tags.'
185
200
  }
186
201
  return false
@@ -197,47 +212,64 @@ module Comufy
197
212
  if message
198
213
  case message['cd']
199
214
  when 388 then
215
+ @logger.debug(progname = 'Comufy::Connector.store_users') {
216
+ "388 - Success! - data = #{data} - message = #{message}."
217
+ }
200
218
  return true
201
219
  when 475 then
202
- @logger.debug(progname = 'Comufy::Connect.store_users') {
220
+ @logger.debug(progname = 'Comufy::Connector.store_users') {
203
221
  "603 - Invalid parameter provided. - data = #{data} - message = #{message}."
204
222
  }
205
- @logger.warn(progname = 'Comufy::Connect.store_users') {
223
+ @logger.warn(progname = 'Comufy::Connector.store_users') {
206
224
  '475 - Invalid parameter provided.'
207
225
  }
208
226
  when 617 then
209
- @logger.debug(progname = 'Comufy::Connect.store_users') {
227
+ @logger.debug(progname = 'Comufy::Connector.store_users') {
210
228
  "617 - Some of the tags passed are not registered. - data = #{data} - message = #{message}."
211
229
  }
212
- @logger.warn(progname = 'Comufy::Connect.store_users') {
230
+ @logger.warn(progname = 'Comufy::Connector.store_users') {
213
231
  '617 - Some of the tags passed are not registered.'
214
232
  }
215
233
  when 632 then
216
- @logger.debug(progname = 'Comufy::Connect.store_users') {
234
+ @logger.debug(progname = 'Comufy::Connector.store_users') {
217
235
  "632 - _ERROR_FACEBOOK_PAGE_NOT_FOUND - data = #{data} - message = #{message}."
218
236
  }
219
- @logger.warn(progname = 'Comufy::Connect.store_users') {
237
+ @logger.warn(progname = 'Comufy::Connector.store_users') {
220
238
  '632 - _ERROR_FACEBOOK_PAGE_NOT_FOUND'
221
239
  }
222
240
  else
223
- @logger.debug(progname = 'Comufy::Connect.store_users') {
241
+ @logger.debug(progname = 'Comufy::Connector.store_users') {
224
242
  "UNKNOWN RESPONSE - data = #{data} - message = #{message}."
225
243
  }
226
- @logger.warn(progname = 'Comufy::Connect.store_users') {
244
+ @logger.warn(progname = 'Comufy::Connector.store_users') {
227
245
  "An error occurred when sending #{data}. Comufy returned #{message}. Please get in touch with Comufy if you cannot resolve the problem."
228
246
  }
229
247
  end
230
248
  else
231
- @logger.debug(progname = 'Comufy::Connect.store_users') {
249
+ @logger.debug(progname = 'Comufy::Connector.store_users') {
232
250
  "Authentication failed - data = #{data}."
233
251
  }
234
- @logger.warn(progname = 'Comufy::Connect.store_users') {
252
+ @logger.warn(progname = 'Comufy::Connector.store_users') {
235
253
  "Authentication failed when sending #{data}. Please get in touch with Comufy if you cannot resolve the problem."
236
254
  }
237
255
  end
238
256
  false
239
257
  end
240
258
 
259
+
260
+ # Registering a Facebook application tag allows you to store data-fields about each one of your customers.
261
+ #
262
+ # * (String) +app_name+ - The application you wish to register the tags with.
263
+ # * (Hash) +tag+ - The tag you wish to register
264
+ # * (String) +name+ - The name for the tag.
265
+ # * (String) +type+ - Must be one of the following: STRING, DATE, GENDER, INT, FLOAT.
266
+ #
267
+ # = Example
268
+ # Comufy::Connector.register_tag(YOUR_APPLICATION_NAME, name: 'dob', type: Connector::DATE_TYPE)
269
+ def register_tag app_name, tag = {}
270
+ register_tags(app_name, Array[tag])
271
+ end
272
+
241
273
  # Registering a Facebook application tag allows you to store data-fields about each one of your customers.
242
274
  #
243
275
  # * (String) +app_name+ - The application you wish to register the tags with.
@@ -249,39 +281,39 @@ module Comufy
249
281
  # Comufy::Connector.register_tags(
250
282
  # YOUR_APPLICATION_NAME,
251
283
  # [{
252
- # 'name' => 'dob',
253
- # 'type' => 'DATE'
284
+ # Connector::NAME_TAG: 'dob',
285
+ # Connector::TYPE_TAG: Connector::DATE_TYPE
254
286
  # },
255
287
  # {
256
- # 'name' => 'height',
257
- # 'type' => 'FLOAT'
288
+ # Connector::NAME_TAG: 'height',
289
+ # Connector::TYPE_TAG: Connector::FLOAT_TYPE
258
290
  # }]
259
291
  # )
260
292
  def register_tags app_name, tags
261
293
  return false unless get_access_token
262
294
  if app_name.nil? or app_name.empty?
263
- @logger.warn(progname = 'Comufy::Connect.register_tags') {
295
+ @logger.warn(progname = 'Comufy::Connector.register_tags') {
264
296
  'First parameter must be set to your application name.'
265
297
  }
266
298
  return false
267
299
  end
268
300
  if tags.nil? or not tags.is_a?(Array)
269
- @logger.warn(progname = 'Comufy::Connect.register_tags') {
301
+ @logger.warn(progname = 'Comufy::Connector.register_tags') {
270
302
  'Second parameter must be an array containing hashes.'
271
303
  }
272
304
  return false
273
305
  end
274
306
  tags.each do |tag|
275
307
  tag.each do |key, value|
276
- unless %w(name type).include?(key)
277
- @logger.warn(progname = 'Comufy::Connect.register_tags') {
278
- 'You must have only two keys called "name" and "type".'
308
+ unless LEGAL_TAGS.include?(key)
309
+ @logger.warn(progname = 'Comufy::Connector.register_tags') {
310
+ "You must have only two keys called #{NAME_TAG} and #{TYPE_TAG}."
279
311
  }
280
312
  return false
281
313
  end
282
- if key == "type" and not %w(STRING DATE GENDER INT FLOAT).include?(value)
283
- @logger.warn(progname = 'Comufy::Connect.register_tags') {
284
- 'Your type must be one of these values: STRING, DATE, GENDER, INT, FLOAT.'
314
+ if (key == "type" or key == :type) and not LEGAL_TYPES.include?(value)
315
+ @logger.warn(progname = 'Comufy::Connector.register_tags') {
316
+ "Your type must be one of these values: #{LEGAL_TYPES.join(',')}."
285
317
  }
286
318
  return false
287
319
  end
@@ -299,48 +331,51 @@ module Comufy
299
331
  if message
300
332
  case message['cd']
301
333
  when 386 then
334
+ @logger.debug(progname = 'Comufy::Connector.register_tags') {
335
+ "386 - Success! - data = #{data} - message = #{message}."
336
+ }
302
337
  return true
303
338
  when 475 then
304
- @logger.debug(progname = 'Comufy::Connect.register_tags') {
339
+ @logger.debug(progname = 'Comufy::Connector.register_tags') {
305
340
  "475 - Invalid parameters provided - data = #{data} - message = #{message}."
306
341
  }
307
- @logger.warn(progname = 'Comufy::Connect.register_tags') {
342
+ @logger.warn(progname = 'Comufy::Connector.register_tags') {
308
343
  '475 - Invalid parameters provided'
309
344
  }
310
345
  when 603 then
311
- @logger.debug(progname = 'Comufy::Connect.register_tags') {
346
+ @logger.debug(progname = 'Comufy::Connector.register_tags') {
312
347
  "603 - _ERROR_DOMAIN_APPLICATION_NAME_NOT_FOUND - data = #{data} - message = #{message}."
313
348
  }
314
- @logger.warn(progname = 'Comufy::Connect.register_tags') {
349
+ @logger.warn(progname = 'Comufy::Connector.register_tags') {
315
350
  '603 - _ERROR_DOMAIN_APPLICATION_NAME_NOT_FOUND'
316
351
  }
317
352
  when 607 then
318
- @logger.debug(progname = 'Comufy::Connect.register_tags') {
353
+ @logger.debug(progname = 'Comufy::Connector.register_tags') {
319
354
  "607 - _ERROR_UNAUTHORISED_ACTION - data = #{data} - message = #{message}."
320
355
  }
321
- @logger.warn(progname = 'Comufy::Connect.register_tags') {
356
+ @logger.warn(progname = 'Comufy::Connector.register_tags') {
322
357
  '607 - _ERROR_UNAUTHORISED_ACTION'
323
358
  }
324
359
  when 618 then
325
- @logger.debug(progname = 'Comufy::Connect.register_tags') {
360
+ @logger.debug(progname = 'Comufy::Connector.register_tags') {
326
361
  "618 - _ERROR_DOMAIN_APPLICATION_TAG_ALREADY_REGISTERED - data = #{data} - message = #{message}."
327
362
  }
328
- @logger.warn(progname = 'Comufy::Connect.register_tags') {
363
+ @logger.warn(progname = 'Comufy::Connector.register_tags') {
329
364
  '618 - _ERROR_DOMAIN_APPLICATION_TAG_ALREADY_REGISTERED'
330
365
  }
331
366
  else
332
- @logger.debug(progname = 'Comufy::Connect.register_tags') {
367
+ @logger.debug(progname = 'Comufy::Connector.register_tags') {
333
368
  "UNKNOWN RESPONSE - data = #{data} - message = #{message}."
334
369
  }
335
- @logger.warn(progname = 'Comufy::Connect.register_tags') {
370
+ @logger.warn(progname = 'Comufy::Connector.register_tags') {
336
371
  "An error occurred when sending #{data}. Comufy returned #{message}. Please get in touch with Comufy if you cannot resolve the problem."
337
372
  }
338
373
  end
339
374
  else
340
- @logger.debug(progname = 'Comufy::Connect.register_tags') {
375
+ @logger.debug(progname = 'Comufy::Connector.register_tags') {
341
376
  "Authentication failed - data = #{data}."
342
377
  }
343
- @logger.warn(progname = 'Comufy::Connect.register_tags') {
378
+ @logger.warn(progname = 'Comufy::Connector.register_tags') {
344
379
  "Authentication failed when sending #{data}. Please get in touch with Comufy if you cannot resolve the problem."
345
380
  }
346
381
  end
@@ -358,13 +393,13 @@ module Comufy
358
393
  def unregister_tag app_name, tag
359
394
  return false unless get_access_token
360
395
  if app_name.nil? or app_name.empty?
361
- @logger.warn(progname = 'Comufy::Connect.unregister_tag') {
396
+ @logger.warn(progname = 'Comufy::Connector.unregister_tag') {
362
397
  'First parameter must be set to your application name.'
363
398
  }
364
399
  return false
365
400
  end
366
401
  if tag.nil? or tag.empty?
367
- @logger.warn(progname = 'Comufy::Connect.unregister_tag') {
402
+ @logger.warn(progname = 'Comufy::Connector.unregister_tag') {
368
403
  'Second parameter must be set to the tag.'
369
404
  }
370
405
  return false
@@ -381,48 +416,51 @@ module Comufy
381
416
  if message
382
417
  case message['cd']
383
418
  when 385 then
419
+ @logger.debug(progname = 'Comufy::Connector.unregister_tag') {
420
+ "385 - Success! - data = #{data} - message = #{message}."
421
+ }
384
422
  return true
385
423
  when 475 then
386
- @logger.debug(progname = 'Comufy::Connect.unregister_tag') {
424
+ @logger.debug(progname = 'Comufy::Connector.unregister_tag') {
387
425
  "475 - Invalid parameters provided - data = #{data} - message = #{message}."
388
426
  }
389
- @logger.warn(progname = 'Comufy::Connect.unregister_tag') {
427
+ @logger.warn(progname = 'Comufy::Connector.unregister_tag') {
390
428
  '475 - Invalid parameters provided'
391
429
  }
392
430
  when 603 then
393
- @logger.debug(progname = 'Comufy::Connect.unregister_tag') {
431
+ @logger.debug(progname = 'Comufy::Connector.unregister_tag') {
394
432
  "603 - _ERROR_DOMAIN_APPLICATION_NAME_NOT_FOUND - data = #{data} - message = #{message}."
395
433
  }
396
- @logger.warn(progname = 'Comufy::Connect.unregister_tag') {
434
+ @logger.warn(progname = 'Comufy::Connector.unregister_tag') {
397
435
  '603 - _ERROR_DOMAIN_APPLICATION_NAME_NOT_FOUND'
398
436
  }
399
437
  when 607 then
400
- @logger.debug(progname = 'Comufy::Connect.unregister_tag') {
438
+ @logger.debug(progname = 'Comufy::Connector.unregister_tag') {
401
439
  "607 - _ERROR_UNAUTHORISED_ACTION - data = #{data} - message = #{message}."
402
440
  }
403
- @logger.warn(progname = 'Comufy::Connect.unregister_tag') {
441
+ @logger.warn(progname = 'Comufy::Connector.unregister_tag') {
404
442
  '607 - _ERROR_UNAUTHORISED_ACTION'
405
443
  }
406
444
  when 617 then
407
- @logger.debug(progname = 'Comufy::Connect.unregister_tag') {
445
+ @logger.debug(progname = 'Comufy::Connector.unregister_tag') {
408
446
  "617 - _ERROR_DOMAIN_APPLICATION_TAG_NOT_FOUND - data = #{data} - message = #{message}."
409
447
  }
410
- @logger.warn(progname = 'Comufy::Connect.unregister_tag') {
448
+ @logger.warn(progname = 'Comufy::Connector.unregister_tag') {
411
449
  '617 - _ERROR_DOMAIN_APPLICATION_TAG_NOT_FOUND'
412
450
  }
413
451
  else
414
- @logger.debug(progname = 'Comufy::Connect.unregister_tag') {
452
+ @logger.debug(progname = 'Comufy::Connector.unregister_tag') {
415
453
  "UNKNOWN RESPONSE - data = #{data} - message = #{message}."
416
454
  }
417
- @logger.warn(progname = 'Comufy::Connect.unregister_tag') {
455
+ @logger.warn(progname = 'Comufy::Connector.unregister_tag') {
418
456
  "An error occurred when sending #{data}. Comufy returned #{message}. Please get in touch with Comufy if you cannot resolve the problem."
419
457
  }
420
458
  end
421
459
  else
422
- @logger.debug(progname = 'Comufy::Connect.unregister_tag') {
460
+ @logger.debug(progname = 'Comufy::Connector.unregister_tag') {
423
461
  "Authentication failed - data = #{data}."
424
462
  }
425
- @logger.warn(progname = 'Comufy::Connect.unregister_tag') {
463
+ @logger.warn(progname = 'Comufy::Connector.unregister_tag') {
426
464
  "Authentication failed when sending #{data}. Please get in touch with Comufy if you cannot resolve the problem."
427
465
  }
428
466
  end
@@ -458,25 +496,25 @@ module Comufy
458
496
  def send_facebook_message app_name, description, content, uids, opts = {}
459
497
  return false unless get_access_token
460
498
  if app_name.nil? or app_name.empty? or not content.is_a?(String)
461
- @logger.warn(progname = 'Comufy::Connect.send_facebook_message') {
499
+ @logger.warn(progname = 'Comufy::Connector.send_facebook_message') {
462
500
  'First parameter must be set to your application name, as a String.'
463
501
  }
464
502
  return false
465
503
  end
466
504
  if description.nil? or description.empty? or not content.is_a?(String)
467
- @logger.warn(progname = 'Comufy::Connect.send_facebook_message') {
505
+ @logger.warn(progname = 'Comufy::Connector.send_facebook_message') {
468
506
  'Second parameter must be set to your facebook description, as a String.'
469
507
  }
470
508
  return false
471
509
  end
472
510
  if content.nil? or content.empty? or not content.is_a?(String)
473
- @logger.warn(progname = 'Comufy::Connect.send_facebook_message') {
511
+ @logger.warn(progname = 'Comufy::Connector.send_facebook_message') {
474
512
  'Third parameter must be sent to your facebook content, as a String.'
475
513
  }
476
514
  return false
477
515
  end
478
516
  if uids.nil? or uids.empty? or not uids.is_a?(Array)
479
- @logger.warn(progname = 'Comufy::Connect.send_facebook_message') {
517
+ @logger.warn(progname = 'Comufy::Connector.send_facebook_message') {
480
518
  'Fourth parameter must be sent to your facebook uids, as an Array of Strings.'
481
519
  }
482
520
  return false
@@ -487,25 +525,25 @@ module Comufy
487
525
 
488
526
  # optional checks
489
527
  if opts.has_key?(:filter) and not opts[:filter].is_a?(String)
490
- @logger.warn(progname = 'Comufy::Connect.send_facebook_message') {
528
+ @logger.warn(progname = 'Comufy::Connector.send_facebook_message') {
491
529
  'When including "filter", it must be a String.'
492
530
  }
493
531
  return false
494
532
  end
495
533
  if opts.has_key?(:delivery_time) and not opts[:delivery_time].is_a?(Integer)
496
- @logger.warn(progname = 'Comufy::Connect.send_facebook_message') {
534
+ @logger.warn(progname = 'Comufy::Connector.send_facebook_message') {
497
535
  'When including "delivery_time", it must be an Integer, of unix time in milliseconds.'
498
536
  }
499
537
  return false
500
538
  end
501
539
  if opts.has_key?(:shorten_urls) and not %w[ true, false ].include?(opts[:shorten_urls])
502
- @logger.warn(progname = 'Comufy::Connect.send_facebook_message') {
540
+ @logger.warn(progname = 'Comufy::Connector.send_facebook_message') {
503
541
  'When including "shorten_urls", it must be an boolean value.'
504
542
  }
505
543
  return false
506
544
  end
507
545
  if opts.has_key?(:message_options) and not opts[:message_options].is_a?(Hash)
508
- @logger.warn(progname = 'Comufy::Connect.send_facebook_message') {
546
+ @logger.warn(progname = 'Comufy::Connector.send_facebook_message') {
509
547
  'When including "message_options", it must be a Hash.'
510
548
  }
511
549
  return false
@@ -543,83 +581,86 @@ module Comufy
543
581
  if message
544
582
  case message['cd']
545
583
  when 383 then
584
+ @logger.debug(progname = 'Comufy::Connector.send_facebook_message') {
585
+ "383 - Success! - data = #{data} - message = #{message}."
586
+ }
546
587
  return true
547
588
  when 416 then
548
- @logger.debug(progname = 'Comufy::Connect.send_facebook_message') {
589
+ @logger.debug(progname = 'Comufy::Connector.send_facebook_message') {
549
590
  "416 - _ERROR_MSG_SEND_FAILED - data = #{data} - message = #{message}."
550
591
  }
551
- @logger.warn(progname = 'Comufy::Connect.send_facebook_message') {
592
+ @logger.warn(progname = 'Comufy::Connector.send_facebook_message') {
552
593
  '416 - _ERROR_MSG_SEND_FAILED'
553
594
  }
554
595
  when 475 then
555
- @logger.debug(progname = 'Comufy::Connect.send_facebook_message') {
596
+ @logger.debug(progname = 'Comufy::Connector.send_facebook_message') {
556
597
  "475 - Invalid parameters provided - data = #{data} - message = #{message}."
557
598
  }
558
- @logger.warn(progname = 'Comufy::Connect.send_facebook_message') {
599
+ @logger.warn(progname = 'Comufy::Connector.send_facebook_message') {
559
600
  '475 - Invalid parameters provided'
560
601
  }
561
602
  when 551 then
562
- @logger.debug(progname = 'Comufy::Connect.send_facebook_message') {
603
+ @logger.debug(progname = 'Comufy::Connector.send_facebook_message') {
563
604
  "551 _ERROR_TAG_VALUE_NOT_FOUND - data = #{data} - message = #{message}."
564
605
  }
565
- @logger.warn(progname = 'Comufy::Connect.send_facebook_message') {
606
+ @logger.warn(progname = 'Comufy::Connector.send_facebook_message') {
566
607
  '551 - _ERROR_TAG_VALUE_NOT_FOUND'
567
608
  }
568
609
  when 603 then
569
- @logger.debug(progname = 'Comufy::Connect.send_facebook_message') {
610
+ @logger.debug(progname = 'Comufy::Connector.send_facebook_message') {
570
611
  "603 - _ERROR_DOMAIN_APPLICATION_NAME_NOT_FOUND - data = #{data} - message = #{message}."
571
612
  }
572
- @logger.warn(progname = 'Comufy::Connect.send_facebook_message') {
613
+ @logger.warn(progname = 'Comufy::Connector.send_facebook_message') {
573
614
  '603 - _ERROR_DOMAIN_APPLICATION_NAME_NOT_FOUND'
574
615
  }
575
616
  when 607 then
576
- @logger.debug(progname = 'Comufy::Connect.send_facebook_message') {
617
+ @logger.debug(progname = 'Comufy::Connector.send_facebook_message') {
577
618
  "607 - _ERROR_UNAUTHORISED_ACTION - data = #{data} - message = #{message}."
578
619
  }
579
- @logger.warn(progname = 'Comufy::Connect.send_facebook_message') {
620
+ @logger.warn(progname = 'Comufy::Connector.send_facebook_message') {
580
621
  '607 - _ERROR_UNAUTHORISED_ACTION'
581
622
  }
582
623
  when 617 then
583
- @logger.debug(progname = 'Comufy::Connect.send_facebook_message') {
624
+ @logger.debug(progname = 'Comufy::Connector.send_facebook_message') {
584
625
  "617 - _ERROR_DOMAIN_APPLICATION_TAG_NOT_FOUND - data = #{data} - message = #{message}."
585
626
  }
586
- @logger.warn(progname = 'Comufy::Connect.send_facebook_message') {
627
+ @logger.warn(progname = 'Comufy::Connector.send_facebook_message') {
587
628
  '617 - _ERROR_DOMAIN_APPLICATION_TAG_NOT_FOUND'
588
629
  }
589
630
  when 648 then
590
- @logger.debug(progname = 'Comufy::Connect.send_facebook_message') {
631
+ @logger.debug(progname = 'Comufy::Connector.send_facebook_message') {
591
632
  "648 - _ERROR_FACEBOOK_APPLICATION_USER_NOT_FOUND - data = #{data} - message = #{message}."
592
633
  }
593
- @logger.warn(progname = 'Comufy::Connect.send_facebook_message') {
634
+ @logger.warn(progname = 'Comufy::Connector.send_facebook_message') {
594
635
  '648 - _ERROR_FACEBOOK_APPLICATION_USER_NOT_FOUND'
595
636
  }
596
637
  when 673 then
597
- @logger.debug(progname = 'Comufy::Connect.send_facebook_message') {
638
+ @logger.debug(progname = 'Comufy::Connector.send_facebook_message') {
598
639
  "673 - Invalid time exception - data = #{data} - message = #{message}."
599
640
  }
600
- @logger.warn(progname = 'Comufy::Connect.send_facebook_message') {
641
+ @logger.warn(progname = 'Comufy::Connector.send_facebook_message') {
601
642
  '673 - Invalid time exception'
602
643
  }
603
644
  when 679 then
604
- @logger.debug(progname = 'Comufy::Connect.send_facebook_message') {
645
+ @logger.debug(progname = 'Comufy::Connector.send_facebook_message') {
605
646
  "679 - _ERROR_MALFORMED_TARGETING_EXPRESSION - data = #{data} - message = #{message}."
606
647
  }
607
- @logger.warn(progname = 'Comufy::Connect.send_facebook_message') {
648
+ @logger.warn(progname = 'Comufy::Connector.send_facebook_message') {
608
649
  '679 - _ERROR_MALFORMED_TARGETING_EXPRESSION'
609
650
  }
610
651
  else
611
- @logger.debug(progname = 'Comufy::Connect.send_facebook_message') {
652
+ @logger.debug(progname = 'Comufy::Connector.send_facebook_message') {
612
653
  "UNKNOWN RESPONSE - data = #{data} - message = #{message}."
613
654
  }
614
- @logger.warn(progname = 'Comufy::Connect.send_facebook_message') {
655
+ @logger.warn(progname = 'Comufy::Connector.send_facebook_message') {
615
656
  "An error occurred when sending #{data}. Comufy returned #{message}. Please get in touch with Comufy if you cannot resolve the problem."
616
657
  }
617
658
  end
618
659
  else
619
- @logger.debug(progname = 'Comufy::Connect.send_facebook_message') {
660
+ @logger.debug(progname = 'Comufy::Connector.send_facebook_message') {
620
661
  "Authentication failed - data = #{data}."
621
662
  }
622
- @logger.warn(progname = 'Comufy::Connect.send_facebook_message') {
663
+ @logger.warn(progname = 'Comufy::Connector.send_facebook_message') {
623
664
  "Authentication failed when sending #{data}. Please get in touch with Comufy if you cannot resolve the problem."
624
665
  }
625
666
  end
@@ -628,61 +669,64 @@ module Comufy
628
669
 
629
670
  private
630
671
 
631
- # Use the configured username and password to get and set the access token and expiry time, if it fails,
632
- # it means the user likely has their username/password wrong.
672
+ # Use the configured user name and password to get and set the access token and expiry time, if it fails,
673
+ # it means the user likely has their user name/password wrong.
633
674
  def authenticate
634
675
  data = {
635
676
  cd: 131,
636
- user: @config.username,
677
+ user: @config.user,
637
678
  password: @config.password
638
679
  }
639
680
 
640
681
  message = call_api(data, false)
641
682
  case message['cd']
642
683
  when 235 then
684
+ @logger.debug(progname = 'Comufy::Connector.authenticate') {
685
+ "235 - Success! - data = #{data} - message = #{message}."
686
+ }
643
687
  @config.access_token = message['tokenInfo']['token']
644
688
  @config.expiry_time = message['tokenInfo']['expiryTime']
645
689
  return true
646
690
  when 475 then
647
- @logger.debug(progname = 'Comufy::Connect.authenticate') {
691
+ @logger.debug(progname = 'Comufy::Connector.authenticate') {
648
692
  "475 - Invalid parameters provided. - data = #{data} - message = #{message}."
649
693
  }
650
- @logger.warn(progname = 'Comufy::Connect.authenticate') {
694
+ @logger.warn(progname = 'Comufy::Connector.authenticate') {
651
695
  '475 - Invalid parameters provided.'
652
696
  }
653
697
  when 504 then
654
- @logger.debug(progname = 'Comufy::Connect.authenticate') {
698
+ @logger.debug(progname = 'Comufy::Connector.authenticate') {
655
699
  "504 - FIX. - data = #{data} - message = #{message}."
656
700
  }
657
- @logger.warn(progname = 'Comufy::Connect.authenticate') {
701
+ @logger.warn(progname = 'Comufy::Connector.authenticate') {
658
702
  '504 - FIX.'
659
703
  }
660
704
  when 651 then
661
- @logger.debug(progname = 'Comufy::Connect.authenticate') {
662
- "651 - Invalid username exception. Check that you are login in using the format user@domain. - data = #{data} - message = #{message}."
705
+ @logger.debug(progname = 'Comufy::Connector.authenticate') {
706
+ "651 - Invalid user name exception. Check that you are login in using the format user@domain. - data = #{data} - message = #{message}."
663
707
  }
664
- @logger.warn(progname = 'Comufy::Connect.authenticate') {
665
- '651 - Invalid username exception. Check that you are login in using the format user@domain.'
708
+ @logger.warn(progname = 'Comufy::Connector.authenticate') {
709
+ '651 - Invalid user name exception. Check that you are login in using the format user@domain.'
666
710
  }
667
711
  when 652 then
668
- @logger.debug(progname = 'Comufy::Connect.authenticate') {
712
+ @logger.debug(progname = 'Comufy::Connector.authenticate') {
669
713
  "652 - Invalid password exception. - data = #{data} - message = #{message}."
670
714
  }
671
- @logger.warn(progname = 'Comufy::Connect.authenticate') {
715
+ @logger.warn(progname = 'Comufy::Connector.authenticate') {
672
716
  '652 - Invalid password exception.'
673
717
  }
674
718
  when 682 then
675
- @logger.debug(progname = 'Comufy::Connect.authenticate') {
719
+ @logger.debug(progname = 'Comufy::Connector.authenticate') {
676
720
  "682 - This user is blocked. - data = #{data} - message = #{message}."
677
721
  }
678
- @logger.warn(progname = 'Comufy::Connect.authenticate') {
722
+ @logger.warn(progname = 'Comufy::Connector.authenticate') {
679
723
  '682 - This user is blocked.'
680
724
  }
681
725
  else
682
- @logger.debug(progname = 'Comufy::Connect.authenticate') {
726
+ @logger.debug(progname = 'Comufy::Connector.authenticate') {
683
727
  "UNKNOWN RESPONSE - data = #{data} - message = #{message}."
684
728
  }
685
- @logger.warn(progname = 'Comufy::Connect.authenticate') {
729
+ @logger.warn(progname = 'Comufy::Connector.authenticate') {
686
730
  "An error occurred when sending #{data}. Comufy returned #{message}. Please get in touch with Comufy if you cannot resolve the problem."
687
731
  }
688
732
  end
@@ -701,12 +745,13 @@ module Comufy
701
745
  return nil if not get_access_token
702
746
  data[:token] = @config.access_token
703
747
  end
704
- json = CGI::escape(data.to_json)
705
- url = URI.parse("#{@config::base_api_url}#{json}")
706
- http = Net::HTTP.new(url.host, 443)
707
- req = Net::HTTP::Get.new(url.to_s)
748
+
749
+ uri = URI.parse(@config::base_api_url)
750
+ http = Net::HTTP.new(uri.host, uri.port)
708
751
  http.use_ssl = true
709
- response = http.request(req)
752
+ request = Net::HTTP::Post.new(uri.path, initheader = { 'Content-Type' => 'application/json' })
753
+ request.set_form_data({ request: data.to_json })
754
+ response = http.request(request)
710
755
  JSON.parse(response.read_body) if response.message == 'OK'
711
756
  end
712
757
 
@@ -1,3 +1,3 @@
1
1
  module Comufy
2
- VERSION = "0.0.2b"
2
+ VERSION = "0.0.2.pre2"
3
3
  end
data/lib/comufy.rb CHANGED
@@ -11,22 +11,13 @@ require 'logger'
11
11
 
12
12
  module Comufy
13
13
 
14
- def self.connector params = {}
15
- @connector ||= Connector.new(params)
16
- end
17
-
18
- def self.new_connector params = {}
19
- @connector = Connector.new(params)
20
- end
21
-
22
- def version
23
- Comufy::VERSION
14
+ def self.connect params = {}
15
+ Connector.new(params)
24
16
  end
25
17
 
26
18
  # Based on Rails implementation, ensures all strings are converted
27
19
  # into symbols.
28
20
  def symbolize_keys hash
29
- return hash unless hash.is_a?(Hash)
30
21
  hash.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
31
22
  end
32
23
  end
metadata CHANGED
@@ -1,19 +1,19 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: comufy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2b
5
- prerelease: 5
4
+ version: 0.0.2.pre2
5
+ prerelease: 6
6
6
  platform: ruby
7
7
  authors:
8
8
  - plcstevens
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-29 00:00:00.000000000 Z
12
+ date: 2012-11-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &10377240 !ruby/object:Gem::Requirement
16
+ requirement: &21817520 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '2.5'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *10377240
24
+ version_requirements: *21817520
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rdoc
27
- requirement: &10376780 !ruby/object:Gem::Requirement
27
+ requirement: &21816920 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,8 +32,8 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *10376780
36
- description: ''
35
+ version_requirements: *21816920
36
+ description: This library can be used with Heroku
37
37
  email:
38
38
  - philip@tauri-tec.com
39
39
  executables: []
@@ -45,6 +45,7 @@ files:
45
45
  - README.md
46
46
  - Rakefile
47
47
  - comufyruby.gemspec
48
+ - example/comufy_example.rb
48
49
  - lib/comufy.rb
49
50
  - lib/comufy/config.rb
50
51
  - lib/comufy/connector.rb
@@ -74,7 +75,8 @@ rubyforge_project:
74
75
  rubygems_version: 1.8.11
75
76
  signing_key:
76
77
  specification_version: 3
77
- summary: ''
78
+ summary: This library allows customers to interact with the Comufy backend and perform
79
+ common operations.
78
80
  test_files:
79
81
  - spec/comufy_spec.rb
80
82
  - spec/spec_helper.rb