comufyrails 0.1.3 → 0.1.6

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
@@ -41,12 +41,24 @@ can get these values by using this heroku command below and looking for all valu
41
41
 
42
42
  heroku config
43
43
 
44
+ ### Application Name
45
+
46
+ If you do not already have a Comufy application setup you need to before you can start to use this gem.
47
+
48
+ First you should register your Facebook application and get the Facebook ID and Facebook
49
+ secret of the application. You will use these in the rake method below to register the application with Comufy.
50
+ On success of this you can write the name of your application in the manners shown further below.
51
+
52
+ ```bash
53
+ rake comufy:app["MY_APPLICATION_NAME","APP_ID","APP_SECRET","Description of my application"]
54
+ ```
55
+
44
56
  You can set the values in your config/environments/*.rb in the same manner you set rails-specific values.
45
57
 
46
58
  ```ruby
47
59
  config.comufy_rails.app_name = 'YOUR_APPLICATION_NAME'
48
60
  config.comufy_rails.access_token = 'YOUR_ACCESS_TOKEN'
49
- config.comufy_rails.url = 'COMUFY'
61
+ config.comufy_rails.url = 'COMUFY'
50
62
  ```
51
63
 
52
64
  Alternatively you can set these in your environment/path.
@@ -54,7 +66,7 @@ Alternatively you can set these in your environment/path.
54
66
  ```
55
67
  COMUFY_APP_NAME - Application name on Comufy, defaults to your Ruby on Rails application name.
56
68
  COMUFY_TOKEN - Token given to you by our Comufy Heroku service or from Comufy directly.
57
- COMUFY_URL - Full HTTP address to connect to, defaults to our service.
69
+ COMUFY_URL - Full HTTP address to connect to, defaults to our service.
58
70
  ```
59
71
 
60
72
  ## Usage
@@ -101,7 +113,7 @@ There are also a number of methods that are added to your rake environment, for
101
113
  the ability to add/remove tags for users of your applications.
102
114
 
103
115
  ```bash
104
- $ bundle exec rake comufy:tag["DOB", "DATE"]
116
+ $ bundle exec rake comufy:tag["DOB","DATE"]
105
117
  ```
106
118
 
107
119
  This will run a blocking call to register this tag with your application, informing you if it was successful or not.
@@ -222,6 +222,16 @@ module Comufyrails
222
222
  end
223
223
  end
224
224
 
225
+ def user(facebook_id)
226
+ filter = "FACEBOOK.ID=\"#{facebook_id}\""
227
+ self.users(filter) do |users, total, to, from|
228
+ user = users.first
229
+ account = user.delete("account")
230
+ tags = user.delete("tagValues")
231
+ yield account, tags, [users, total, to, from]
232
+ end
233
+ end
234
+
225
235
  # Lists all current users data, with any additional filters you want.
226
236
  # If you provide a block it will yield the response, otherwise it will be sent the log.
227
237
  # TODO: Replace USER.USER_STATE with something we know will get all users.
@@ -242,7 +252,11 @@ module Comufyrails
242
252
  if http.response_header.status == 200
243
253
  message = JSON.parse(http.response)
244
254
  if block_given?
245
- yield message
255
+ total = message["timeBlocks"][0]["total"]
256
+ users = message["timeBlocks"][0]["data"]
257
+ to = message["timeBlocks"][0]["to"]
258
+ from = message["timeBlocks"][0]["from"]
259
+ yield users, total, to, from
246
260
  else
247
261
  case message["cd"]
248
262
  when 382 then
@@ -1,4 +1,4 @@
1
1
  module Comufyrails
2
2
  # Current version of this gem.
3
- VERSION = "0.1.3"
3
+ VERSION = "0.1.6"
4
4
  end
@@ -5,34 +5,30 @@ require 'uri'
5
5
 
6
6
  namespace :comufy do
7
7
 
8
- desc "Register a tag with your application. The type be
9
- #{Comufyrails::LEGAL_TYPES.to_sentence(two_words_connector: ' or ', last_word_connector: ', or ')},
10
- if empty it defaults to STRING."
8
+ desc "Register a tag with your application."
11
9
  task :tag , [:name, :type] => :environment do |t, args|
12
10
  raise ArgumentError, "Must specify a name for the tag." unless args.name
13
11
  args.with_defaults(type: 'STRING')
14
12
 
15
13
  if Comufyrails.config.app_name.blank?
16
14
  p "
17
- Cannot find the application name, is it currently set to nil or an empty string?\n
18
- Please check config.comufy_rails.app_name in your environment initializer or the environment variable
19
- COMUFY_APP_NAME are valid strings.
20
- "
15
+ Cannot find the application name, is it currently set to nil or an empty string? Please check
16
+ config.comufy_rails.app_name in your environment initializer or the environment variable
17
+ COMUFY_APP_NAME are valid strings. And remember you need to register your application with Comufy first with
18
+ the comufy:app rake command."
21
19
  elsif Comufyrails.config.url.blank?
22
20
  p "
23
- Cannot find the base api url, is it currently set to nil or an empty string?\n
24
- Please check config.comufy_rails.url in your environment initializer or the environment variable
25
- COMUFY_URL are valid strings.
26
- "
21
+ Cannot find the base api url, is it currently set to nil or an empty string?\n
22
+ Please check config.comufy_rails.url in your environment initializer or the environment variable
23
+ COMUFY_URL are valid strings."
27
24
  elsif Comufyrails.config.access_token.blank?
28
25
  p "
29
- Cannot find the access token, is it currently set to nil or an empty string?\n
30
- Please check config.comufy_rails.access_token in your environment initializer or the environment variable
31
- COMUFY_TOKEN are valid strings.
32
- "
26
+ Cannot find the access token, is it currently set to nil or an empty string?\n
27
+ Please check config.comufy_rails.access_token in your environment initializer or the environment variable
28
+ COMUFY_TOKEN are valid strings."
33
29
  elsif not Comufyrails::LEGAL_TYPES.include?(args.type)
34
- p "The type must be #{Comufyrails::LEGAL_TYPES.to_sentence(
35
- two_words_connector: ' or ', last_word_connector: ', or ')}"
30
+ p "
31
+ The type must be #{Comufyrails::LEGAL_TYPES.to_sentence(two_words_connector: ' or ', last_word_connector: ', or ')}"
36
32
  else
37
33
  data = {
38
34
  cd: 86,
@@ -78,23 +74,21 @@ namespace :comufy do
78
74
  raise ArgumentError, "Must specify a name for the tag." unless args.name
79
75
 
80
76
  if Comufyrails.config.app_name.blank?
81
- p "
82
- Cannot find the application name, is it currently set to nil or an empty string?\n
83
- Please check config.comufy_rails.app_name in your environment initializer or the environment variable
84
- COMUFY_APP_NAME are valid strings.
85
- "
77
+ puts "
78
+ Cannot find the application name, is it currently set to nil or an empty string? Please check
79
+ config.comufy_rails.app_name in your environment initializer or the environment variable
80
+ COMUFY_APP_NAME are valid strings. And remember you need to register your application with Comufy first with
81
+ the comufy:app rake command."
86
82
  elsif Comufyrails.config.url.blank?
87
83
  p "
88
- Cannot find the base api url, is it currently set to nil or an empty string?\n
89
- Please check config.comufy_rails.url in your environment initializer or the environment variable
90
- COMUFY_URL are valid strings.
91
- "
84
+ Cannot find the base api url, is it currently set to nil or an empty string?
85
+ Please check config.comufy_rails.url in your environment initializer or the environment variable
86
+ COMUFY_URL are valid strings."
92
87
  elsif Comufyrails.config.access_token.blank?
93
88
  p "
94
- Cannot find the access token, is it currently set to nil or an empty string?\n
95
- Please check config.comufy_rails.access_token in your environment initializer or the environment variable
96
- COMUFY_TOKEN are valid strings.
97
- "
89
+ Cannot find the access token, is it currently set to nil or an empty string?
90
+ Please check config.comufy_rails.access_token in your environment initializer or the environment variable
91
+ COMUFY_TOKEN are valid strings."
98
92
  else
99
93
  data = {
100
94
  cd: 85,
@@ -132,4 +126,58 @@ namespace :comufy do
132
126
  end
133
127
  end
134
128
 
129
+ desc "Register an application with Comufy"
130
+ task :app , [:name, :id, :secret, :description] => :environment do |t, args|
131
+ raise ArgumentError, "Must specify a name for the application." unless args.name
132
+ raise ArgumentError, "Must specify a facebook application id for the application." unless args.id
133
+ raise ArgumentError, "Must specify a facebook secret for the application." unless args.secret
134
+ raise ArgumentError, "Must specify a description for the application." unless args.description
135
+
136
+ if Comufyrails.config.url.blank?
137
+ p "
138
+ Cannot find the base api url, is it currently set to nil or an empty string?\n
139
+ Please check config.comufy_rails.url in your environment initializer or the environment variable
140
+ COMUFY_URL are valid strings."
141
+ elsif Comufyrails.config.access_token.blank?
142
+ p "
143
+ Cannot find the access token, is it currently set to nil or an empty string?\n
144
+ Please check config.comufy_rails.access_token in your environment initializer or the environment variable
145
+ COMUFY_TOKEN are valid strings."
146
+ else
147
+ data = {
148
+ cd: 106,
149
+ token: Comufyrails.config.access_token,
150
+ name: args.name,
151
+ description: args.description,
152
+ applicationId: args.id,
153
+ applicationSecret: args.secret
154
+ }
155
+
156
+ uri = URI.parse(Comufyrails.config.url)
157
+ http = Net::HTTP.new(uri.host, uri.port)
158
+ http.use_ssl = true
159
+ request = Net::HTTP::Post.new(uri.path, initheader = { 'Content-Type' => 'application/json' })
160
+ request.set_form_data({ request: data.to_json })
161
+ response = http.request(request)
162
+
163
+ if response.message == 'OK'
164
+ message = JSON.parse(response.read_body)
165
+ case message['cd']
166
+ when 205 then
167
+ p "205 - Success! - data = #{data} - message = #{message}."
168
+ when 602 then
169
+ p "602 - _ERROR_DOMAIN_APPLICATION_NAME_ALREADY_REGISTERED - data = #{data} - message = #{message}."
170
+ when 619 then
171
+ p "619 - _ERROR_DOMAIN_APPLICATION_ALREADY_REGISTERED_UNDER_DIFFERENT_NAME - data = #{data} - message = #{message}."
172
+ when 645 then
173
+ p "645 - _ERROR_FACEBOOK_AUTHORISATION_FAILURE - data = #{data} - message = #{message}."
174
+ else
175
+ p "UNKNOWN RESPONSE - data = #{data} - message = #{message}."
176
+ end
177
+ else
178
+ p "Authentication failed when sending #{data}. Please get in touch with Comufy if you cannot resolve this."
179
+ end
180
+ end
181
+ end
182
+
135
183
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: comufyrails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -135,5 +135,5 @@ rubyforge_project:
135
135
  rubygems_version: 1.8.24
136
136
  signing_key:
137
137
  specification_version: 3
138
- summary: comufyrails-0.1.3
138
+ summary: comufyrails-0.1.6
139
139
  test_files: []