youroom_api 0.0.10

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.
Files changed (52) hide show
  1. data/History.txt +6 -0
  2. data/Manifest.txt +19 -0
  3. data/README.txt +106 -0
  4. data/Rakefile +12 -0
  5. data/lib/object_extention.rb +52 -0
  6. data/lib/youroom_api/base.rb +17 -0
  7. data/lib/youroom_api/base_url.rb +6 -0
  8. data/lib/youroom_api/request/add_participation.rb +24 -0
  9. data/lib/youroom_api/request/add_room.rb +20 -0
  10. data/lib/youroom_api/request/add_user.rb +28 -0
  11. data/lib/youroom_api/request/destroy_entry.rb +16 -0
  12. data/lib/youroom_api/request/destroy_participation.rb +24 -0
  13. data/lib/youroom_api/request/entry.rb +4 -0
  14. data/lib/youroom_api/request/get_entry.rb +21 -0
  15. data/lib/youroom_api/request/get_room_list.rb +15 -0
  16. data/lib/youroom_api/request/get_user_list.rb +15 -0
  17. data/lib/youroom_api/request/my_group.rb +7 -0
  18. data/lib/youroom_api/request/participation.rb +15 -0
  19. data/lib/youroom_api/request/post_entry.rb +23 -0
  20. data/lib/youroom_api/request/room_timeline.rb +23 -0
  21. data/lib/youroom_api/request/show_attachment.rb +15 -0
  22. data/lib/youroom_api/request/timeline.rb +8 -0
  23. data/lib/youroom_api/request/unread_timeline.rb +12 -0
  24. data/lib/youroom_api/request/verify_credentials.rb +7 -0
  25. data/lib/youroom_api/request.rb +85 -0
  26. data/lib/youroom_api/version.rb +3 -0
  27. data/lib/youroom_api/youroom.rb +32 -0
  28. data/lib/youroom_api.rb +44 -0
  29. data/spec/setup_test_model.rb +34 -0
  30. data/spec/spec.opts +2 -0
  31. data/spec/spec_helper.rb +130 -0
  32. data/spec/youroom_api/add_participation_spec.rb +89 -0
  33. data/spec/youroom_api/add_room_spec.rb +67 -0
  34. data/spec/youroom_api/add_user_spec.rb +75 -0
  35. data/spec/youroom_api/destroy_entry_spec.rb +68 -0
  36. data/spec/youroom_api/destroy_participation_spec.rb +89 -0
  37. data/spec/youroom_api/entry_spec.rb +5 -0
  38. data/spec/youroom_api/get_entry_spec.rb +82 -0
  39. data/spec/youroom_api/get_room_list_spec.rb +55 -0
  40. data/spec/youroom_api/get_user_list_spec.rb +55 -0
  41. data/spec/youroom_api/my_group_spec.rb +44 -0
  42. data/spec/youroom_api/object_extention_spec.rb +65 -0
  43. data/spec/youroom_api/participation_spec.rb +56 -0
  44. data/spec/youroom_api/post_entry_spec.rb +75 -0
  45. data/spec/youroom_api/request_spec.rb +145 -0
  46. data/spec/youroom_api/room_timeline_spec.rb +127 -0
  47. data/spec/youroom_api/show_attachment_spec.rb +30 -0
  48. data/spec/youroom_api/timeline_spec.rb +47 -0
  49. data/spec/youroom_api/unread_timeline_spec.rb +42 -0
  50. data/spec/youroom_api/verify_credentials_spec.rb +30 -0
  51. data/spec/youroom_api/youroom_spec.rb +92 -0
  52. metadata +125 -0
data/History.txt ADDED
@@ -0,0 +1,6 @@
1
+ === 1.0.0 / 2010-02-09
2
+
3
+ * 1 major enhancement
4
+
5
+ * Birthday!
6
+
data/Manifest.txt ADDED
@@ -0,0 +1,19 @@
1
+ .autotest
2
+ History.txt
3
+ Manifest.txt
4
+ README.txt
5
+ Rakefile
6
+ lib/youroom_api.rb
7
+ lib//object_extention.rb
8
+ lib/youroom_api/youroom.rb
9
+ lib/youroom_api/base.rb
10
+ lib/youroom_api/request.rb
11
+ lib/youroom_api/room.rb
12
+ lib/youroom_api/user.rb
13
+ lib/youroom_api/entry.rb
14
+ lib/youroom_api/participation.rb
15
+ lib/youroom_api/create_participation.rb
16
+ lib/youroom_api/destroy_participation.rb
17
+ lib/youroom_api/youroom_oauth.rb
18
+
19
+
data/README.txt ADDED
@@ -0,0 +1,106 @@
1
+ = youroom_api
2
+
3
+ * http://github.com/pochi/youroom_api
4
+
5
+ == DESCRIPTION:
6
+
7
+ simple api for youroom.
8
+
9
+ == FEATURES/PROBLEMS:
10
+
11
+ * youroom client (list of features or problems)
12
+
13
+ -----------------------------
14
+ how to use
15
+ -----------------------------
16
+
17
+ This api follow youroom api using oauth.(api doc:http://apidoc.youroom.in/)
18
+ Each api follow:
19
+ Enterprise:Group/create ----> create_room(billing_id, name)
20
+ Enterprise:Group/index ----> get_room_list(billing_id)
21
+ Enterprise:Participation/add ----> create_participation(billing_id, billing_group_id, email)
22
+ Enterprise:Participation/remove ----> create_participation(billing_id, billing_group_id, email)
23
+ Enterprise:User/create ----> create_user(billing_id, user_params)
24
+ Enterprise:User/index ----> get_user_list(billing_id)
25
+ REST:Entry/create ----> post_entry(room_id, content)
26
+ REST:Entry/destroy ----> destroy_entry(room_id, mutter_id)
27
+ REST:Entry/show ----> get_entry(room_id, mutter_id)
28
+ REST:Group/my ----> get_my_group
29
+ REST:Home Timeline(all) ----> get_all_timeline
30
+ REST:Home Timeline(unreads) ----> get_unread_timeline
31
+ REST:Room Timeline ----> get_entry(room_id)
32
+
33
+ -----------------------------
34
+ sample1: Get my timeline
35
+ -----------------------------
36
+
37
+ require 'rubygems'
38
+ require 'youroom_api'
39
+
40
+ YOUROOM_URL = "https://www.youroom.in/"
41
+
42
+ consumer = OAuth::Consumer.new(consumer_key,
43
+ consumer_sercret,
44
+ :site => YOUROOM_URL)
45
+
46
+ info = consumer.get_access_token(nil, { },
47
+ {:x_auth_mode=>"client_auth",
48
+ :x_auth_username=> "pochi.black@gmail.com",
49
+ :x_auth_password=> password})
50
+
51
+ access_token = OAuth::AccessToken.new(consumer,
52
+ info.params['oauth_token'],
53
+ info.params['oauth_token_secret'])
54
+
55
+ client = Youroom::Request.new(access_token)
56
+ client.get_all_timeline.each do |topic|
57
+ puts topic["entry"]["content"]
58
+ end
59
+
60
+ == SYNOPSIS:
61
+
62
+ FIX (code sample of usage)
63
+
64
+ == REQUIREMENTS:
65
+
66
+ * ruby 1.8.7 or later
67
+ * rspec 1.3.0 or later
68
+ * ww
69
+
70
+ == INSTALL:
71
+
72
+ * FIX (sudo gem install, anything else)
73
+
74
+ == DEVELOPERS:
75
+
76
+ After checking out the source, run:
77
+
78
+ $ rake newb
79
+
80
+ This task will install any missing dependencies, run the tests/specs,
81
+ and generate the RDoc.
82
+
83
+ == LICENSE:
84
+
85
+ (The MIT License)
86
+
87
+ Copyright (c) 2010 FIX
88
+
89
+ Permission is hereby granted, free of charge, to any person obtaining
90
+ a copy of this software and associated documentation files (the
91
+ 'Software'), to deal in the Software without restriction, including
92
+ without limitation the rights to use, copy, modify, merge, publish,
93
+ distribute, sublicense, and/or sell copies of the Software, and to
94
+ permit persons to whom the Software is furnished to do so, subject to
95
+ the following conditions:
96
+
97
+ The above copyright notice and this permission notice shall be
98
+ included in all copies or substantial portions of the Software.
99
+
100
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
101
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
102
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
103
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
104
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
105
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
106
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/Rakefile ADDED
@@ -0,0 +1,12 @@
1
+ # -*- coding: utf-8 -*-
2
+ # -*- ruby -*-
3
+
4
+ require 'rubygems'
5
+ require 'hoe'
6
+
7
+ Hoe.spec 'youroom_api' do
8
+ developer('rubypochi', 'pochi.black@gmail.com')
9
+
10
+ self.rubyforge_name = 'youroom_api' # if different than 'youroom_api'
11
+ end
12
+
@@ -0,0 +1,52 @@
1
+ class Hash
2
+ # TODO: Refactoring
3
+ def optimize
4
+ routes = []
5
+ singleton_hash = {}
6
+ first_keys = self.keys
7
+ second_keys = []
8
+ third_keys = []
9
+
10
+ first_keys.each do |key|
11
+ unless self[key].is_a?(Hash)
12
+ routes << [key]
13
+ next
14
+ end
15
+ second_keys << [key, self[key].keys]
16
+ end
17
+
18
+ second_keys.each do |second_key|
19
+ second_key.last.each do |key|
20
+ unless self[second_key.first][key].is_a?(Hash)
21
+ routes << [second_key.first, key]
22
+ next
23
+ end
24
+ third_keys << [second_key.first, key, self[second_key.first][key].keys]
25
+ end
26
+ end
27
+
28
+ third_keys.each do |third_key|
29
+ third_key.last.each do |key|
30
+ unless self[third_key.first][third_key[1]][key].is_a?(Hash)
31
+ routes << [third_key.first, third_key[1], key]
32
+ next
33
+ end
34
+ force_keys << [third_key.first, third_key[1], key, self[third_key.first][third_key[1]][key].keys]
35
+ end
36
+ end
37
+
38
+ routes.each do |route|
39
+ val = self.dup
40
+ route.each do |key|
41
+ val = val[key]
42
+ end
43
+ base = route.shift.to_s
44
+ key_name = route.inject(base) {|key, map| key.to_s + "[" + map.to_s + "]" }
45
+ singleton_hash.update({key_name=>val.to_s})
46
+ end
47
+
48
+ singleton_hash
49
+ end
50
+ end
51
+
52
+
@@ -0,0 +1,17 @@
1
+ module Youroom
2
+ class Base
3
+ attr_reader :url, :host, :port
4
+
5
+ private
6
+ def required_structure(name, *elements)
7
+ raise ArgumentError unless elements.include?(name.class)
8
+ end
9
+
10
+ def parse(url)
11
+ @url = url
12
+ uri = URI.parse(url)
13
+ @host, @port = uri.host, uri.port
14
+ end
15
+
16
+ end
17
+ end
@@ -0,0 +1,6 @@
1
+ module Youroom
2
+ # production url
3
+ # BASE_URL = 'https://home.youroom.in/'
4
+ # development url
5
+ BASE_URL = 'https://www.youroom.in/'
6
+ end
@@ -0,0 +1,24 @@
1
+ module Youroom
2
+ class AddParticipation < Request
3
+ attr_reader :billing_id, :billing_group_id, :email
4
+
5
+ def initialize(access_token, billing_id, billing_group_id, email, url=BASE_URL)
6
+ [billing_id, billing_group_id].each {|arg| required_structure(arg, String, Symbol, Fixnum)}
7
+ required_structure(email, String)
8
+ @billing_id, @billing_group_id, @email = billing_id.to_s, billing_group_id.to_s, email
9
+ super(access_token, url)
10
+ end
11
+
12
+ def path
13
+ if url == BASE_URL
14
+ File.join(::Youroom::BASE_URL, 'billings', billing_id, 'billing_groups', billing_group_id, 'participations', 'add?format=json')
15
+ else
16
+ File.join(url, 'enterprise', 'billings', billing_id, 'billing_groups', billing_group_id, 'participations', 'add?format=json')
17
+ end
18
+ end
19
+
20
+ def params
21
+ { :email => email }.optimize
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,20 @@
1
+ module Youroom
2
+ class AddRoom < Request
3
+ attr_reader :name, :billing_id
4
+
5
+ def initialize(access_token, billing_id, name, url=BASE_URL)
6
+ required_structure(billing_id, String, Fixnum)
7
+ required_structure(name, String, Symbol)
8
+ @billing_id, @name = billing_id.to_s, name.to_s
9
+ super(access_token, url)
10
+ end
11
+
12
+ def path
13
+ File.join(url, 'billings', billing_id, 'billing_groups?format=json')
14
+ end
15
+
16
+ def params
17
+ { :billing_group => { :group_attributes => { :name => name } } }.optimize
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,28 @@
1
+ module Youroom
2
+ class AddUser < Request
3
+ attr_reader :attributes, :billing_id
4
+
5
+ def initialize(access_token, billing_id, attributes, url=BASE_URL)
6
+ required_structure(billing_id, String, Fixnum)
7
+ required_structure(attributes, Hash)
8
+ @billing_id, @attributes = billing_id.to_s, attributes
9
+ super(access_token, url)
10
+ end
11
+
12
+ def path
13
+ File.join(url, 'billings', billing_id, 'billing_users?format=json')
14
+ end
15
+
16
+ def params
17
+ { :billing_user => { :name => name,
18
+ :user_attributes => { :email => email,
19
+ :password => password,
20
+ :password_confirmation => password_confirmation }}}.optimize
21
+ end
22
+
23
+ # TODO: refactoring
24
+ def method_missing(name, *args)
25
+ attributes[name.to_sym]
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,16 @@
1
+ module Youroom
2
+ class DestroyEntry < Entry
3
+ attr_reader :room_id, :mutter_id
4
+
5
+ def initialize(access_token, room_id, mutter_id, url=BASE_URL)
6
+ required_structure(room_id, String, Symbol, Fixnum)
7
+ required_structure(mutter_id, String, Fixnum)
8
+ @room_id, @mutter_id = room_id, mutter_id
9
+ super(access_token, url)
10
+ end
11
+
12
+ def path
13
+ File.join(url, 'r', room_id.to_s, 'entries', mutter_id.to_s+'?format=json')
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,24 @@
1
+ module Youroom
2
+ class DestroyParticipation < Request
3
+ attr_reader :billing_id, :billing_group_id, :email
4
+
5
+ def initialize(access_token, billing_id, billing_group_id, email, url=BASE_URL)
6
+ [billing_id, billing_group_id].each {|arg| required_structure(arg, String, Symbol, Fixnum)}
7
+ required_structure(email, String)
8
+ @billing_id, @billing_group_id, @email = billing_id.to_s, billing_group_id.to_s, email
9
+ super(access_token, url)
10
+ end
11
+
12
+ def path
13
+ if url == BASE_URL
14
+ File.join(::Youroom::BASE_URL, 'billings', billing_id, 'billing_groups', billing_group_id, 'participations', 'remove?format=json')
15
+ else
16
+ File.join(url, 'enterprise', 'billings', billing_id, 'billing_groups', billing_group_id, 'participations', 'remove?format=json')
17
+ end
18
+ end
19
+
20
+ def params
21
+ { :email => email }.optimize
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,4 @@
1
+ module Youroom
2
+ class Entry < Request
3
+ end
4
+ end
@@ -0,0 +1,21 @@
1
+ module Youroom
2
+ class GetEntry < Entry
3
+ attr_reader :room_id, :mutter_id
4
+
5
+ def initialize(access_token, room_id, mutter_id=nil, url=BASE_URL)
6
+ required_structure(room_id, String, Symbol, Fixnum)
7
+ required_structure(mutter_id, String, Symbol, Fixnum, NilClass)
8
+ @room_id, @mutter_id = room_id, mutter_id
9
+ super(access_token, url)
10
+ end
11
+
12
+ # Refactoring required
13
+ def path
14
+ if !mutter_id.nil?
15
+ File.join(url, 'r', room_id.to_s, 'entries', mutter_id.to_s+'.json')
16
+ else
17
+ File.join(url, 'r', room_id.to_s, 'all?format=json')
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,15 @@
1
+ module Youroom
2
+ class GetRoomList < Request
3
+ attr_reader :billing_id
4
+
5
+ def initialize(access_token, billing_id, url=BASE_URL)
6
+ required_structure(billing_id, String, Fixnum)
7
+ @billing_id = billing_id.to_s
8
+ super(access_token, url)
9
+ end
10
+
11
+ def path
12
+ File.join(url, 'billings', billing_id, 'billing_groups?format=json')
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ module Youroom
2
+ class GetUserList < Request
3
+ attr_reader :billing_id
4
+
5
+ def initialize(access_token, billing_id, url=BASE_URL)
6
+ required_structure(billing_id, String, Fixnum)
7
+ @billing_id = billing_id.to_s
8
+ super(access_token, url)
9
+ end
10
+
11
+ def path
12
+ File.join(url, 'billings', billing_id, 'billing_users?format=json')
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,7 @@
1
+ module Youroom
2
+ class MyGroup < Request
3
+ def path
4
+ File.join(url, 'groups', 'my?format=json')
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,15 @@
1
+ module Youroom
2
+ class Participation < Request
3
+ attr_reader :room_id, :participation_id
4
+
5
+ def initialize(access_token, room_id, participation_id, url=BASE_URL)
6
+ [room_id, participation_id].each {|arg| required_structure(arg, String, Fixnum) }
7
+ @room_id, @participation_id = room_id, participation_id
8
+ super(access_token, url)
9
+ end
10
+
11
+ def path
12
+ File.join(url, "group", room_id.to_s, "participations", participation_id.to_s+".json")
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,23 @@
1
+ module Youroom
2
+ class PostEntry < Entry
3
+ attr_reader :room_id, :content, :parent_id
4
+
5
+ def initialize(access_token, room_id, content, parent_id=nil, url=BASE_URL)
6
+ [room_id, content].each { |arg| required_structure(arg, String, Symbol, Fixnum) }
7
+ @room_id, @content, @parent_id = room_id, content, parent_id
8
+ super(access_token, url)
9
+ end
10
+
11
+ def path
12
+ File.join(url, 'r', room_id.to_s, 'entries?format=json')
13
+ end
14
+
15
+ def params
16
+ if parent_id
17
+ { :entry => { :content => content.to_s, :parent_id => parent_id }, :insert_mention => "" }
18
+ else
19
+ { :entry => { :content => content.to_s }, :insert_mention => "" }
20
+ end.optimize
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,23 @@
1
+ module Youroom
2
+ class RoomTimeline < Request
3
+ attr_reader :room_id, :since, :page, :flat, :search_query, :read_state
4
+ QUERY_KEYS = %w[since page flat search_query read_state]
5
+
6
+ def initialize(access_token, room_id, params={}, url=BASE_URL)
7
+ required_structure(room_id, String, Symbol, Fixnum)
8
+ required_structure(params, Hash)
9
+ @room_id = room_id
10
+ params.each { |k,v| self.instance_variable_set("@#{k}", v)}
11
+ super(access_token, url)
12
+ end
13
+
14
+ def path
15
+ query_str = "&"
16
+ QUERY_KEYS.each do |query_key|
17
+ val = self.instance_variable_get("@#{query_key}")
18
+ query_str += "#{query_key}=#{val}&" if !val.nil?
19
+ end
20
+ File.join(url, 'r', room_id.to_s, '?format=json'+"#{query_str.chop}")
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,15 @@
1
+ module Youroom
2
+ class ShowAttachment < Request
3
+ attr_reader :room_id, :entry_id
4
+ def initialize(access_token, room_id, entry_id, url=BASE_URL)
5
+ [room_id, entry_id].each { |e| required_structure(e, String, Symbol, Fixnum) }
6
+ @room_id = room_id
7
+ @entry_id = entry_id
8
+ super(access_token, url)
9
+ end
10
+
11
+ def path
12
+ File.join(url, 'r', room_id.to_s, 'entries', entry_id.to_s, 'attachment', '?format=json')
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,8 @@
1
+ module Youroom
2
+ class HomeTimeline < Request
3
+ # TODO: Request parameter feel bad
4
+ def path
5
+ File.join(url, '?format=json')
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,12 @@
1
+ module Youroom
2
+ class UnreadTimeline < Request
3
+ # TODO: Request parameter feel bad
4
+ def path
5
+ if url == BASE_URL
6
+ File.join(url, '?format=json&read_state=unread')
7
+ else
8
+ File.join(url, 'home', '?format=json&read_state=unread')
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,7 @@
1
+ module Youroom
2
+ class VerifyCredentials < Request
3
+ def path
4
+ File.join(url, 'verify_credentials', '?format=json')
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,85 @@
1
+ module Youroom
2
+ class Request < Base
3
+ attr_reader :access_token
4
+
5
+ def initialize(access_token, url=BASE_URL)
6
+ required_structure(access_token, ::OAuth::AccessToken)
7
+ @access_token = access_token
8
+ parse(url)
9
+ end
10
+
11
+ def get_entry(room_id, mutter_id=nil)
12
+ GetEntry.new(access_token, room_id, mutter_id, url).get
13
+ end
14
+
15
+ def get_verify_credentials
16
+ VerifyCredentials.new(access_token, url).get
17
+ end
18
+
19
+ def get_attachment(room_id, mutter_id)
20
+ ShowAttachment.new(access_token, room_id, mutter_id, url).get
21
+ end
22
+
23
+ def get_all_timeline
24
+ HomeTimeline.new(access_token, url).get
25
+ end
26
+
27
+ def get_unread_timeline
28
+ UnreadTimeline.new(access_token, url).get
29
+ end
30
+
31
+ def get_room_timeline(room_id, params={ })
32
+ RoomTimeline.new(access_token, room_id, params, url).get
33
+ end
34
+
35
+ def create_entry(room_id, content, parent_id=nil)
36
+ PostEntry.new(access_token, room_id, content, parent_id, url).post
37
+ end
38
+
39
+ def destroy_entry(room_id, mutter_id)
40
+ DestroyEntry.new(access_token, room_id, mutter_id, url).delete
41
+ end
42
+
43
+ def get_my_group
44
+ MyGroup.new(access_token, url).get
45
+ end
46
+
47
+ def get
48
+ JSON.parse(access_token.get(path).body)
49
+ end
50
+
51
+ def post
52
+ JSON.parse(access_token.post(path, params).body)
53
+ end
54
+
55
+ def delete
56
+ JSON.parse(access_token.delete(path).body)
57
+ end
58
+
59
+ # enterprise api
60
+ def create_room(billing_id, name)
61
+ AddRoom.new(access_token, billing_id, name, url).post
62
+ end
63
+
64
+ def create_participation(billing_id, billin_group_id, email)
65
+ AddParticipation.new(access_token, billing_id, billin_group_id, email, url).post
66
+ end
67
+
68
+ def destroy_participation(billing_id, billing_group_id, email)
69
+ DestroyParticipation.new(access_token, billing_id, billing_group_id, email, url).delete
70
+ end
71
+
72
+ def get_room_list(billing_id)
73
+ GetRoomList.new(access_token, billing_id, url).get
74
+ end
75
+
76
+ def create_user(billing_id, user)
77
+ AddUser.new(access_token, billing_id, user, url).post
78
+ end
79
+
80
+ def get_user_list(billing_id)
81
+ GetUserList.new(access_token, billing_id, url).get
82
+ end
83
+
84
+ end
85
+ end
@@ -0,0 +1,3 @@
1
+ module Youroom
2
+ VERSION = "0.0.3"
3
+ end
@@ -0,0 +1,32 @@
1
+ module Youroom
2
+
3
+ class OAuth < Base
4
+ attr_accessor :request
5
+
6
+ def initialize(access_token, url=BASE_URL)
7
+ @request = Request.new(access_token, url)
8
+ end
9
+
10
+ def entry(room_id, mutter_id=nil)
11
+ request.get_entry(room_id, mutter_id)
12
+ end
13
+
14
+ def participation(room_id, participation_id)
15
+ request.get_participation(room_id, participation_id)
16
+ end
17
+
18
+ def all_timeline
19
+ request.get_all_timeline
20
+ end
21
+
22
+ def unread_timeline
23
+ request.get_unread_timeline
24
+ end
25
+
26
+ def update(room_id, content)
27
+ request.post_entry(room_id, content)
28
+ end
29
+ end
30
+ end
31
+
32
+