edmodo-api 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/edmodo-api/client.rb +34 -7
- data/lib/edmodo-api/version.rb +1 -1
- data/spec/edmodo-api_spec.rb +9 -4
- data/spec/requests/post_requests.rb +1 -1
- metadata +1 -1
data/lib/edmodo-api/client.rb
CHANGED
@@ -190,9 +190,13 @@ module Edmodo
|
|
190
190
|
#
|
191
191
|
# => user_token: The user token for the user sending the post.
|
192
192
|
# => content: The text of the message.
|
193
|
-
# =>
|
193
|
+
# => user_recipients: array of user_tokens that will receive the event.
|
194
|
+
# => group_recipients: array of group_ids that will receive the event.
|
194
195
|
# => attachments (Optional): array of objects specifying links/embed codes to include in the post message.
|
195
|
-
def user_post user_token, content,
|
196
|
+
def user_post user_token, content, user_recipients, group_recipients, attachments = nil
|
197
|
+
|
198
|
+
recipients = generate_user_groups_array user_recipients, group_recipients
|
199
|
+
|
196
200
|
request(:post, resource_uri("userPost"), {:user_token => user_token, :content => content, :recipients => recipients, :attachments => attachments}.delete_if{ |k,v| v.nil? })
|
197
201
|
end
|
198
202
|
|
@@ -271,11 +275,17 @@ module Edmodo
|
|
271
275
|
#
|
272
276
|
# => user_token: The user_token of the user to set the event on behalf for.
|
273
277
|
# => description: The description of the event.
|
274
|
-
# => start_date: The start date of the event
|
275
|
-
# => end_date: The end date of the event
|
276
|
-
# =>
|
277
|
-
|
278
|
-
|
278
|
+
# => start_date: The start date of the event.
|
279
|
+
# => end_date: The end date of the event. If this is a single day event, the end date should simply be the same as the start date.
|
280
|
+
# => user_recipients: array of user_tokens that will receive the event.
|
281
|
+
# => groups_recipients: array of group_ids that will receive the event.
|
282
|
+
def new_event user_token, description, start_date, end_date, user_recipients, group_recipients
|
283
|
+
|
284
|
+
raise EdmodoApiError.new("Invalid object type for start or end date") unless start_date.is_a?(Date) && end_date.is_a?(Date)
|
285
|
+
|
286
|
+
recipients = generate_user_groups_array user_recipients, group_recipients
|
287
|
+
|
288
|
+
request(:post, resource_uri("newEvent"), {:user_token => user_token, :description => description, :start_date => start_date.to_s, :end_date => end_date.to_s, :recipients => recipients})
|
279
289
|
end
|
280
290
|
|
281
291
|
# Adds a resource (url or embed code) to a user's Library
|
@@ -308,6 +318,23 @@ module Edmodo
|
|
308
318
|
}
|
309
319
|
end
|
310
320
|
|
321
|
+
# Generates an array of hashes from an array of user ids and group ids
|
322
|
+
# Params:
|
323
|
+
#
|
324
|
+
# => user: array of user_tokens.
|
325
|
+
# => groups: array of group_ids.
|
326
|
+
def generate_user_groups_array users, groups
|
327
|
+
users = Array(users)
|
328
|
+
|
329
|
+
user_array = users.map{|token| {:user_token => token}}
|
330
|
+
|
331
|
+
groups = Array(groups)
|
332
|
+
|
333
|
+
group_array = groups.map{|id| {:group_id => id}}
|
334
|
+
|
335
|
+
(user_array | group_array).flatten
|
336
|
+
end
|
337
|
+
|
311
338
|
# Checks for all required variables to be set when an instance is created and throws errors if they haven't
|
312
339
|
def raise_init_errors
|
313
340
|
raise EdmodoApiError.new("Edmodo API Error: Api key was not set") if @api_key.empty?
|
data/lib/edmodo-api/version.rb
CHANGED
data/spec/edmodo-api_spec.rb
CHANGED
@@ -203,8 +203,11 @@ describe Edmodo::API::Client do
|
|
203
203
|
end
|
204
204
|
|
205
205
|
it 'should get the correct response back from the userPost request' do
|
206
|
-
|
207
|
-
|
206
|
+
users = ["b020c42d1", "693d5c765"]
|
207
|
+
|
208
|
+
groups = 379557
|
209
|
+
|
210
|
+
response = @client.user_post("b020c42d1", "This is my test message", users, groups, [{:type => "link", :title => "A link", :url => "http://www.edmodo.com"}, {:type => "embed", :title => "An embed with an optional thumbnail url", :thumb_url => "http://images.edmodo.com/images/logos/edmodo_134x43.png"}])
|
208
211
|
|
209
212
|
response.should == {"status" => "success"}
|
210
213
|
end
|
@@ -254,9 +257,11 @@ describe Edmodo::API::Client do
|
|
254
257
|
|
255
258
|
it 'should get the correct hash response from the newEvent request' do
|
256
259
|
|
257
|
-
|
260
|
+
users = "b020c42d1"
|
261
|
+
|
262
|
+
groups = 379557
|
258
263
|
|
259
|
-
response = @client.new_event("b020c42d1", "Pizza party tomorrow",
|
264
|
+
response = @client.new_event("b020c42d1", "Pizza party tomorrow", Date.today, Date.today, users, groups)
|
260
265
|
|
261
266
|
response.should == {"event_id" => 621119}
|
262
267
|
end
|
@@ -41,7 +41,7 @@ uri = "#{Edmodo::API::Config.endpoints[:sandbox]}/setGrade?api_key=#{@api_key}&g
|
|
41
41
|
FakeWeb.register_uri(:post, uri, :body => '{"user_token":"83a8e614d", "score":"3", "total":"10"}')
|
42
42
|
|
43
43
|
# newEvent request uri
|
44
|
-
uri = "#{Edmodo::API::Config.endpoints[:sandbox]}/newEvent?api_key=#{@api_key}&user_token=b020c42d1&description=Pizza%20party%20tomorrow&start_date
|
44
|
+
uri = "#{Edmodo::API::Config.endpoints[:sandbox]}/newEvent?api_key=#{@api_key}&user_token=b020c42d1&description=Pizza%20party%20tomorrow&start_date=#{Date.today.to_s}&end_date=#{Date.today.to_s}&recipients=%5B%7B%22user_token%22%3A%22b020c42d1%22%7D%2C%7B%22group_id%22%3A379557%7D%5D"
|
45
45
|
|
46
46
|
FakeWeb.register_uri(:post, uri, :body => '{"event_id":621119}')
|
47
47
|
|