comufy 0.0.2b → 0.0.2.pre2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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