zoomus 0.1.2 → 0.2.0

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/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
- source :rubygems
1
+ source 'https://rubygems.org'
2
2
 
3
3
  gem 'httparty'
4
4
  gem 'json'
data/README.md CHANGED
@@ -21,22 +21,37 @@ Or install it yourself as:
21
21
  - user/create
22
22
  - user/custcreate
23
23
  - user/list
24
+ - meeting/create
25
+ - meeting/delete
26
+ - meeting/list
27
+ - meeting/update
28
+ - report/getaccountreport
29
+ - report/getuserreport
24
30
 
25
- - user/create
26
- - user/delete
27
- - user/list
28
- - user/update
29
-
30
- ## Usage
31
+ ## Example
31
32
 
32
33
  require 'zoomus'
33
- zoomus_client = Zoomus.new(:api_key => "xxx", :api_secret => "xxx")
34
+
35
+ Zoomus.configure do |c|
36
+ c.api_key = 'xxx'
37
+ c.api_secret = 'xxx'
38
+ end
39
+
40
+ zoomus_client = Zoomus.new
41
+
34
42
  user_list = zoomus_client.user_list
35
- user_list["users"].each do |user|
36
- user_id = u["id"]
43
+ user_list['users'].each do |user|
44
+ user_id = u['id']
37
45
  puts zoomus_client.meeting_list(:host_id => user_id)
38
46
  end
39
47
 
48
+ begin
49
+ user_list = zoomus_client.user_list!
50
+ rescue Zoomus::Error => exception
51
+ puts 'Something went wrong'
52
+ end
53
+
54
+
40
55
  ## Contributing
41
56
 
42
57
  1. Fork it
data/lib/zoomus.rb CHANGED
@@ -1,24 +1,33 @@
1
1
  require 'zoomus/utils'
2
2
  require 'zoomus/actions/user'
3
3
  require 'zoomus/actions/meeting'
4
+ require 'zoomus/actions/report'
4
5
  require 'zoomus/client'
5
6
  require 'zoomus/error'
6
7
 
7
8
  module Zoomus
8
-
9
9
  class << self
10
- def new(*arg)
11
- Zoomus::Client.new(*arg)
10
+ attr_accessor :configuration
11
+
12
+ def new
13
+ @configuration ||= Configuration.new
14
+ Zoomus::Client.new(
15
+ :api_key => @configuration.api_key,
16
+ :api_secret => @configuration.api_secret
17
+ )
12
18
  end
13
- end
14
19
 
15
- def self.included(base)
16
- base.class_eval do
17
- attr_accessor :zoomus_singleton
18
- def zoomus_setup(api_key, api_secret)
19
- @zoomus_singleton = Client.new(api_key, api_secret)
20
- end
20
+ def configure
21
+ @configuration ||= Configuration.new
22
+ yield(@configuration)
21
23
  end
22
24
  end
23
25
 
26
+ class Configuration
27
+ attr_accessor :api_key, :api_secret
28
+
29
+ def initialize
30
+ @api_key = @api_secret = 'xxx'
31
+ end
32
+ end
24
33
  end
@@ -5,18 +5,21 @@ module Zoomus
5
5
  def meeting_list(*args)
6
6
  options = Utils.extract_options!(args)
7
7
  Utils.require_params(:host_id, options)
8
+ Utils.process_datetime_params!(:start_time, options)
8
9
  Utils.parse_response self.class.post("/meeting/list", :query => options)
9
10
  end
10
11
 
11
12
  def meeting_create(*args)
12
13
  options = Utils.extract_options!(args)
13
14
  Utils.require_params([:host_id, :topic, :type], options)
15
+ Utils.process_datetime_params!(:start_time, options)
14
16
  Utils.parse_response self.class.post("/meeting/create", :query => options)
15
17
  end
16
18
 
17
19
  def meeting_update(*args)
18
20
  options = Utils.extract_options!(args)
19
21
  Utils.require_params([:id, :host_id, :topic, :type], options)
22
+ Utils.process_datetime_params!(:start_time, options)
20
23
  Utils.parse_response self.class.post("/meeting/update", :query => options)
21
24
  end
22
25
 
@@ -0,0 +1,23 @@
1
+ module Zoomus
2
+ module Actions
3
+ module Report
4
+
5
+ def report_getaccountreport(*args)
6
+ options = Utils.extract_options!(args)
7
+ Utils.require_params([:from, :to], options)
8
+ Utils.process_datetime_params!([:from, :to], options)
9
+ Utils.parse_response self.class.post("/report/getaccountreport", :query => options)
10
+ end
11
+
12
+ def report_getuserreport(*args)
13
+ options = Utils.extract_options!(args)
14
+ Utils.require_params([:user_id, :from, :to], options)
15
+ Utils.process_datetime_params!([:from, :to], options)
16
+ Utils.parse_response self.class.post("/report/getuserreport", :query => options)
17
+ end
18
+
19
+ Utils.define_bang_methods(self)
20
+
21
+ end
22
+ end
23
+ end
data/lib/zoomus/client.rb CHANGED
@@ -7,6 +7,7 @@ module Zoomus
7
7
  include HTTParty
8
8
  include Actions::User
9
9
  include Actions::Meeting
10
+ include Actions::Report
10
11
 
11
12
  base_uri 'https://api.zoom.us/v1'
12
13
 
data/lib/zoomus/utils.rb CHANGED
@@ -43,6 +43,16 @@ module Zoomus
43
43
  def extract_options!(array)
44
44
  array.last.is_a?(::Hash) ? array.pop : {}
45
45
  end
46
+
47
+ def process_datetime_params!(params, options)
48
+ params = [params] unless params.is_a? Array
49
+ params.each do |param|
50
+ if options[param] && options[param].kind_of?(Time)
51
+ options[param] = options[param].strftime("%FT%TZ")
52
+ end
53
+ end
54
+ options
55
+ end
46
56
  end
47
57
  end
48
58
  end
@@ -0,0 +1,23 @@
1
+ {
2
+ "page_count": 1,
3
+ "page_number": 1,
4
+ "page_size": 30,
5
+ "total_records": 1,
6
+ "from": "2013-5-19",
7
+ "to": "2013-5-20",
8
+ "total_meetings": 50,
9
+ "total_participants": 100,
10
+ "total_meeting_minutes": 100,
11
+ "users": [
12
+ {
13
+ "user_id": "bNsPi5hCQ-qOzWn2EeCXJA",
14
+ "email": "john@sample.com",
15
+ "type": 2,
16
+ "meetings": 10,
17
+ "participants": 56,
18
+ "meeting_minutes": 300,
19
+ "last_client_version": "1.0.18584.0225",
20
+ "last_login_time": "2013-02-11T08:18:09Z"
21
+ }
22
+ ]
23
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "page_count": 1,
3
+ "page_number": 1,
4
+ "page_size": 30,
5
+ "total_records": 1,
6
+ "from": "2013-5-19",
7
+ "to": "2013-5-20",
8
+ "meetings": [
9
+ {
10
+ "number": 111111111,
11
+ "topic": "meeting topic",
12
+ "start_time": "2013-02-11T08:18:09Z",
13
+ "end_time": "2013-02-11T09:18:09Z",
14
+ "duration": 60,
15
+ "participants": [
16
+ {
17
+ "name": "John",
18
+ "join_time": "2013-02-11T08:30:09Z",
19
+ "leave_time": "2013-02-11T08:50:09Z"
20
+ }
21
+ ]
22
+ }
23
+ ]
24
+ }
@@ -4,47 +4,51 @@ describe Zoomus::Actions::Meeting do
4
4
 
5
5
  before :all do
6
6
  @zc = zoomus_client
7
- @host_id = "ufR93M2pRyy8ePFN92dttq"
7
+ @args = {:host_id => "ufR93M2pRyy8ePFN92dttq",
8
+ :type => 1,
9
+ :topic => "Foo"}
8
10
  end
9
11
 
10
12
  describe "#meeting_create action" do
11
13
  before :each do
12
- stub_request(:post, zoomus_url("/meeting/create")).
13
- to_return(:body => json_response("meeting_create"))
14
+ stub_request(
15
+ :post,
16
+ zoomus_url("/meeting/create")
17
+ ).to_return(:body => json_response("meeting_create"))
14
18
  end
15
19
 
16
20
  it "requires a 'host_id' argument" do
17
- expect{@zc.meeting_create(:type => 1, :topic => "Foo")}.to raise_error(ArgumentError)
21
+ expect {
22
+ @zc.meeting_create(filter_key(@args, :host_id))
23
+ }.to raise_error(ArgumentError)
18
24
  end
19
25
 
20
26
  it "requires a 'topic' argument" do
21
- expect{@zc.meeting_create(:host_id => @host_id, :type => "Foo")}.to raise_error(ArgumentError)
27
+ expect {
28
+ @zc.meeting_create(filter_key(@args, :topic))
29
+ }.to raise_error(ArgumentError)
22
30
  end
23
31
 
24
32
  it "requires a 'type' argument" do
25
- expect{@zc.meeting_create(:host_id => @host_id, :topic => "Foo")}.to raise_error(ArgumentError)
33
+ expect {
34
+ @zc.meeting_create(filter_key(@args, :type))
35
+ }.to raise_error(ArgumentError)
26
36
  end
27
37
 
28
38
  it "returns a hash" do
29
- expect(@zc.meeting_create(:host_id => @host_id,
30
- :type => 1,
31
- :topic => "Foo")).to be_kind_of(Hash)
39
+ expect(@zc.meeting_create(@args)).to be_kind_of(Hash)
32
40
  end
33
41
 
34
42
  it "returns the setted params" do
35
- res = @zc.meeting_create(:host_id => @host_id,
36
- :type => 1,
37
- :topic => "Foo")
43
+ res = @zc.meeting_create(@args)
38
44
 
39
- expect(res["host_id"]).to eq(@host_id)
40
- expect(res["type"]).to eq(1)
41
- expect(res["topic"]).to eq("Foo")
45
+ expect(res["host_id"]).to eq(@args[:host_id])
46
+ expect(res["type"]).to eq(@args[:type])
47
+ expect(res["topic"]).to eq(@args[:topic])
42
48
  end
43
49
 
44
50
  it "returns 'start_url' and 'join_url'" do
45
- res = @zc.meeting_create(:host_id => @host_id,
46
- :type => 1,
47
- :topic => "Foo")
51
+ res = @zc.meeting_create(@args)
48
52
 
49
53
  expect(res["start_url"]).to_not be_nil
50
54
  expect(res["join_url"]).to_not be_nil
@@ -53,15 +57,16 @@ describe Zoomus::Actions::Meeting do
53
57
 
54
58
  describe "#meeting_create! action" do
55
59
  before :each do
56
- stub_request(:post, zoomus_url("/meeting/create")).
57
- to_return(:body => json_response("error"))
60
+ stub_request(
61
+ :post,
62
+ zoomus_url("/meeting/create")
63
+ ).to_return(:body => json_response("error"))
58
64
  end
59
65
 
60
66
  it "raises Zoomus::Error exception" do
61
- expect{ @zc.meeting_create!(
62
- :host_id => @host_id,
63
- :type => 1,
64
- :topic => "Foo")}.to raise_error(Zoomus::Error)
67
+ expect {
68
+ @zc.meeting_create!(@args)
69
+ }.to raise_error(Zoomus::Error)
65
70
  end
66
71
  end
67
72
  end
@@ -4,47 +4,54 @@ describe Zoomus::Actions::Meeting do
4
4
 
5
5
  before :all do
6
6
  @zc = zoomus_client
7
- @host_id = "ufR93M2pRyy8ePFN92dttq"
8
- @id = "252482092"
7
+ @args = {:host_id => "ufR93M2pRyy8ePFN92dttq",
8
+ :id => "252482092"}
9
9
  end
10
10
 
11
11
  describe "#meeting_delete action" do
12
12
  before :each do
13
- stub_request(:post, zoomus_url("/meeting/delete")).to_return(:body => json_response("meeting_delete"))
13
+ stub_request(
14
+ :post,
15
+ zoomus_url("/meeting/delete")
16
+ ).to_return(:body => json_response("meeting_delete"))
14
17
  end
15
18
 
16
19
  it "requires a 'host_id' argument" do
17
- expect{@zc.meeting_delete(:id => @id)}.to raise_error(ArgumentError)
20
+ expect {
21
+ @zc.meeting_delete(filter_key(@args, :host_id))
22
+ }.to raise_error(ArgumentError)
18
23
  end
19
24
 
20
25
  it "requires a 'id' argument" do
21
- expect{@zc.meeting_delete(:host_id => @host_id)}.to raise_error(ArgumentError)
26
+ expect {
27
+ @zc.meeting_delete(filter_key(@args, :id))
28
+ }.to raise_error(ArgumentError)
22
29
  end
23
30
 
24
31
  it "returns a hash" do
25
- expect(@zc.meeting_delete(:host_id => @host_id,
26
- :id => @id)).to be_kind_of(Hash)
32
+ expect(@zc.meeting_delete(@args)).to be_kind_of(Hash)
27
33
  end
28
34
 
29
35
  it "returns id and deleted at attributes" do
30
- res = @zc.meeting_delete(:host_id => @host_id,
31
- :id => @id)
36
+ res = @zc.meeting_delete(@args)
32
37
 
33
- expect(res["id"]).to eq(@id)
38
+ expect(res["id"]).to eq(@args[:id])
34
39
  expect(res["deleted_at"]).to eq("2013-04-05T15:50:47Z")
35
40
  end
36
41
  end
37
42
 
38
43
  describe "#meeting_delete! action" do
39
44
  before :each do
40
- stub_request(:post, zoomus_url("/meeting/delete")).
41
- to_return(:body => json_response("error"))
45
+ stub_request(
46
+ :post,
47
+ zoomus_url("/meeting/delete")
48
+ ).to_return(:body => json_response("error"))
42
49
  end
43
50
 
44
51
  it "raises Zoomus::Error exception" do
45
- expect{ @zc.meeting_delete!(
46
- :host_id => @host_id,
47
- :id => @id)}.to raise_error(Zoomus::Error)
52
+ expect {
53
+ @zc.meeting_delete!(@args)
54
+ }.to raise_error(Zoomus::Error)
48
55
  end
49
56
  end
50
57
  end
@@ -4,39 +4,46 @@ describe Zoomus::Actions::Meeting do
4
4
 
5
5
  before :all do
6
6
  @zc = zoomus_client
7
- @host_id = "ufR93M2pRyy8ePFN92dttq"
7
+ @args = {:host_id => "ufR93M2pRyy8ePFN92dttq"}
8
8
  end
9
9
 
10
10
  describe "#meeting_list action" do
11
11
  before :each do
12
- stub_request(:post, zoomus_url("/meeting/list")).to_return(:body => json_response("meeting_list"))
12
+ stub_request(
13
+ :post,
14
+ zoomus_url("/meeting/list")
15
+ ).to_return(:body => json_response("meeting_list"))
13
16
  end
14
17
 
15
18
  it "requires a 'host_id' argument" do
16
- expect{@zc.meeting_list()}.to raise_error(ArgumentError)
19
+ expect{@zc.meeting_list}.to raise_error(ArgumentError)
17
20
  end
18
21
 
19
22
  it "returns a hash" do
20
- expect(@zc.meeting_list(:host_id => @host_id)).to be_kind_of(Hash)
23
+ expect(@zc.meeting_list(@args)).to be_kind_of(Hash)
21
24
  end
22
25
 
23
26
  it "returns 'total_records'" do
24
- expect(@zc.meeting_list(:host_id => @host_id)["total_records"]).to eq(1)
27
+ expect(@zc.meeting_list(@args)["total_records"]).to eq(1)
25
28
  end
26
29
 
27
30
  it "returns 'meetings' Array" do
28
- expect(@zc.meeting_list(:host_id => @host_id)["meetings"]).to be_kind_of(Array)
31
+ expect(@zc.meeting_list(@args)["meetings"]).to be_kind_of(Array)
29
32
  end
30
33
  end
31
34
 
32
35
  describe "#meeting_list! action" do
33
36
  before :each do
34
- stub_request(:post, zoomus_url("/meeting/list")).
35
- to_return(:body => json_response("error"))
37
+ stub_request(
38
+ :post,
39
+ zoomus_url("/meeting/list")
40
+ ).to_return(:body => json_response("error"))
36
41
  end
37
42
 
38
43
  it "raises Zoomus::Error exception" do
39
- expect{ @zc.meeting_list!(:host_id => @host_id)}.to raise_error(Zoomus::Error)
44
+ expect {
45
+ @zc.meeting_list!(@args)
46
+ }.to raise_error(Zoomus::Error)
40
47
  end
41
48
  end
42
49
  end
@@ -4,61 +4,60 @@ describe Zoomus::Actions::Meeting do
4
4
 
5
5
  before :all do
6
6
  @zc = zoomus_client
7
- @host_id = "ufR93M2pRyy8ePFN92dttq"
8
- @id = "252482092"
7
+ @args = {:host_id => 'ufR93M2pRyy8ePFN92dttq',
8
+ :id => '252482092',
9
+ :type => 0,
10
+ :topic => 'Foo'}
9
11
  end
10
12
 
11
13
  describe "#meeting_update action" do
12
14
  before :each do
13
- stub_request(:post, zoomus_url("/meeting/update")).to_return(:body => json_response("meeting_update"))
15
+ stub_request(
16
+ :post,
17
+ zoomus_url("/meeting/update")
18
+ ).to_return(:body => json_response("meeting_update"))
14
19
  end
15
20
 
16
21
  it "requires a 'host_id' argument" do
17
- expect{@zc.meeting_update(:id => @id, :type => 1, :topic => "Foo")}.to raise_error(ArgumentError)
22
+ expect{@zc.meeting_update(filter_key(@args, :host_id))}.to raise_error(ArgumentError)
18
23
  end
19
24
 
20
25
  it "requires a 'topic' argument" do
21
- expect{@zc.meeting_update(:id => @id, :host_id => @host_id, :type => "Foo")}.to raise_error(ArgumentError)
26
+ expect{@zc.meeting_update(filter_key(@args, :topic))}.to raise_error(ArgumentError)
22
27
  end
23
28
 
24
29
  it "requires a 'type' argument" do
25
- expect{@zc.meeting_update(:id => @id, :host_id => @host_id, :topic => "Foo")}.to raise_error(ArgumentError)
30
+ expect{@zc.meeting_update(filter_key(@args, :type))}.to raise_error(ArgumentError)
26
31
  end
27
32
 
28
- it "requires a 'meeting id' argument" do
29
- expect{@zc.meeting_update(:host_id => @host_id, :topic => "Foo", :type => 1)}.to raise_error(ArgumentError)
33
+ it "requires a 'id' argument" do
34
+ expect{@zc.meeting_update(filter_key(@args, :id))}.to raise_error(ArgumentError)
30
35
  end
31
36
 
32
37
  it "returns a hash" do
33
- expect(@zc.meeting_update(:host_id => @host_id,
34
- :id => @id,
35
- :type => 1,
36
- :topic => "Foo")).to be_kind_of(Hash)
38
+ expect(@zc.meeting_update(@args)).to be_kind_of(Hash)
37
39
  end
38
40
 
39
41
  it "returns id and updated_at attributes" do
40
- res = @zc.meeting_update(:host_id => @host_id,
41
- :id => @id,
42
- :type => 1,
43
- :topic => "Foo")
42
+ res = @zc.meeting_update(@args)
44
43
 
45
- expect(res["id"]).to eq(@id)
44
+ expect(res["id"]).to eq(@args[:id])
46
45
  expect(res["updated_at"]).to eq("2013-02-25T15:52:38Z")
47
46
  end
48
47
  end
49
48
 
50
49
  describe "#meeting_update! action" do
51
50
  before :each do
52
- stub_request(:post, zoomus_url("/meeting/update")).
53
- to_return(:body => json_response("error"))
51
+ stub_request(
52
+ :post,
53
+ zoomus_url("/meeting/update")
54
+ ).to_return(:body => json_response("error"))
54
55
  end
55
56
 
56
57
  it "raises Zoomus::Error exception" do
57
- expect{ @zc.meeting_update!(
58
- :host_id => @host_id,
59
- :id => @id,
60
- :type => 1,
61
- :topic => "Foo")}.to raise_error(Zoomus::Error)
58
+ expect {
59
+ @zc.meeting_update!(@args)
60
+ }.to raise_error(Zoomus::Error)
62
61
  end
63
62
  end
64
63
  end
@@ -0,0 +1,58 @@
1
+ require 'spec_helper'
2
+
3
+ describe Zoomus::Actions::Report do
4
+
5
+ before :all do
6
+ @zc = zoomus_client
7
+ @args = {:from => '2013-04-05T15:50:47Z',
8
+ :to => '2013-04-09T19:00:00Z'}
9
+ end
10
+
11
+ describe "#report_getaccountreport action" do
12
+ before :each do
13
+ stub_request(
14
+ :post,
15
+ zoomus_url("/report/getaccountreport")
16
+ ).to_return(:body => json_response("report_getaccountreport"))
17
+ end
18
+
19
+ it "requires a 'from' argument" do
20
+ expect {
21
+ @zc.report_getaccountreport(filter_key(@args, :from))
22
+ }.to raise_error(ArgumentError)
23
+ end
24
+
25
+ it "requires a 'to' argument" do
26
+ expect {
27
+ @zc.report_getaccountreport(filter_key(@args, :to))
28
+ }.to raise_error(ArgumentError)
29
+ end
30
+
31
+ it "returns a hash" do
32
+ expect(@zc.report_getaccountreport(@args)).to be_kind_of(Hash)
33
+ end
34
+
35
+ it "returns 'total_records'" do
36
+ expect(@zc.report_getaccountreport(@args)["total_records"]).to eq(1)
37
+ end
38
+
39
+ it "returns 'users' Array" do
40
+ expect(@zc.report_getaccountreport(@args)["users"]).to be_kind_of(Array)
41
+ end
42
+ end
43
+
44
+ describe "#report_getaccountreport! action" do
45
+ before :each do
46
+ stub_request(
47
+ :post,
48
+ zoomus_url("/report/getaccountreport")
49
+ ).to_return(:body => json_response("error"))
50
+ end
51
+
52
+ it "raises Zoomus::Error exception" do
53
+ expect {
54
+ @zc.report_getaccountreport!(@args)
55
+ }.to raise_error(Zoomus::Error)
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,65 @@
1
+ require 'spec_helper'
2
+
3
+ describe Zoomus::Actions::Report do
4
+
5
+ before :all do
6
+ @zc = zoomus_client
7
+ @args = {:from => '2013-04-05T15:50:47Z',
8
+ :to => '2013-04-09T19:00:00Z',
9
+ :user_id => 'ufR93M2pRyy8ePFN92dttq'}
10
+ end
11
+
12
+ describe "#report_getuserreport action" do
13
+ before :each do
14
+ stub_request(
15
+ :post,
16
+ zoomus_url("/report/getuserreport")
17
+ ).to_return(:body => json_response("report_getuserreport"))
18
+ end
19
+
20
+ it "requires a 'user_id' argument" do
21
+ expect {
22
+ @zc.report_getuserreport(filter_key(@args, :user_id))
23
+ }.to raise_error(ArgumentError)
24
+ end
25
+
26
+ it "requires a 'from' argument" do
27
+ expect {
28
+ @zc.report_getuserreport(filter_key(@args, :from))
29
+ }.to raise_error(ArgumentError)
30
+ end
31
+
32
+ it "requires a 'to' argument" do
33
+ expect {
34
+ @zc.report_getuserreport(filter_key(@args, :to))
35
+ }.to raise_error(ArgumentError)
36
+ end
37
+
38
+ it "returns a hash" do
39
+ expect(@zc.report_getuserreport(@args)).to be_kind_of(Hash)
40
+ end
41
+
42
+ it "returns 'total_records'" do
43
+ expect(@zc.report_getuserreport(@args)["total_records"]).to eq(1)
44
+ end
45
+
46
+ it "returns 'meetings' Array" do
47
+ expect(@zc.report_getuserreport(@args)["meetings"]).to be_kind_of(Array)
48
+ end
49
+ end
50
+
51
+ describe "#report_getuserreport! action" do
52
+ before :each do
53
+ stub_request(
54
+ :post,
55
+ zoomus_url("/report/getuserreport")
56
+ ).to_return(:body => json_response("error"))
57
+ end
58
+
59
+ it "raises Zoomus::Error exception" do
60
+ expect {
61
+ @zc.report_getuserreport!(@args)
62
+ }.to raise_error(Zoomus::Error)
63
+ end
64
+ end
65
+ end
@@ -4,54 +4,54 @@ describe Zoomus::Actions::User do
4
4
 
5
5
  before :all do
6
6
  @zc = zoomus_client
7
+ @args = {:email => "foo@bar.com",
8
+ :first_name => "Foo",
9
+ :last_name => "Bar",
10
+ :type => 1}
7
11
  end
8
12
 
9
13
  describe "#user_create action" do
10
14
  before :each do
11
- stub_request(:post, zoomus_url("/user/create")).to_return(:body => json_response("user_create"))
15
+ stub_request(
16
+ :post,
17
+ zoomus_url("/user/create")
18
+ ).to_return(:body => json_response("user_create"))
12
19
  end
13
20
 
14
21
  it "requires email param" do
15
- expect{@zc.user_create(:type => "foo@bar.com")}.to raise_error(ArgumentError)
22
+ expect{@zc.user_create(filter_key(@args, :email))}.to raise_error(ArgumentError)
16
23
  end
17
24
 
18
25
  it "requires type param" do
19
- expect{@zc.user_create(:email => "foo@bar.com")}.to raise_error(ArgumentError)
26
+ expect{@zc.user_create(filter_key(@args, :type))}.to raise_error(ArgumentError)
20
27
  end
21
28
 
22
29
  it "returns a hash" do
23
- expect(@zc.user_create(:email => "foo@bar.com",
24
- :first_name => "Foo",
25
- :last_name => "Bar",
26
- :type => 1)).to be_kind_of(Hash)
30
+ expect(@zc.user_create(@args)).to be_kind_of(Hash)
27
31
  end
28
32
 
29
33
  it "returns same params" do
30
- res = @zc.user_create(:email => "foo@bar.com",
31
- :first_name => "Foo",
32
- :last_name => "Bar",
33
- :type => 1)
34
-
35
- expect(res["email"]).to eq("foo@bar.com")
36
- expect(res["first_name"]).to eq("Foo")
37
- expect(res["last_name"]).to eq("Bar")
38
- expect(res["type"]).to eq(1)
34
+ res = @zc.user_create(@args)
35
+
36
+ expect(res["email"]).to eq(@args[:email])
37
+ expect(res["first_name"]).to eq(@args[:first_name])
38
+ expect(res["last_name"]).to eq(@args[:last_name])
39
+ expect(res["type"]).to eq(@args[:type])
39
40
  end
40
41
  end
41
42
 
42
43
  describe "#user_create! action" do
43
44
  before :each do
44
- stub_request(:post, zoomus_url("/user/create")).
45
- to_return(:body => json_response("error"))
45
+ stub_request(
46
+ :post,
47
+ zoomus_url("/user/create")
48
+ ).to_return(:body => json_response("error"))
46
49
  end
47
50
 
48
51
  it "raises Zoomus::Error exception" do
49
- expect{ @zc.user_create!(
50
- :email => "foo@bar.com",
51
- :first_name => "Foo",
52
- :last_name => "Bar",
53
- :type => 1)}.to raise_error(Zoomus::Error)
52
+ expect {
53
+ @zc.user_create!(@args)
54
+ }.to raise_error(Zoomus::Error)
54
55
  end
55
56
  end
56
-
57
57
  end
@@ -4,6 +4,10 @@ describe Zoomus::Actions::User do
4
4
 
5
5
  before :all do
6
6
  @zc = zoomus_client
7
+ @args = {:email => "foo@bar.com",
8
+ :first_name => "Foo",
9
+ :last_name => "Bar",
10
+ :type => 1}
7
11
  end
8
12
 
9
13
  describe "#user_custcreate action" do
@@ -12,45 +16,39 @@ describe Zoomus::Actions::User do
12
16
  end
13
17
 
14
18
  it "requires email param" do
15
- expect{@zc.user_custcreate(:type => 1)}.to raise_error(ArgumentError)
19
+ expect{@zc.user_custcreate(filter_key(@args, :email))}.to raise_error(ArgumentError)
16
20
  end
17
21
 
18
22
  it "requires type param" do
19
- expect{@zc.user_custcreate(:email => "foo@bar.com")}.to raise_error(ArgumentError)
23
+ expect{@zc.user_custcreate(filter_key(@args, :type))}.to raise_error(ArgumentError)
20
24
  end
21
25
 
22
26
  it "returns a hash" do
23
- expect(@zc.user_custcreate(:email => "foo@bar.com",
24
- :first_name => "Foo",
25
- :last_name => "Bar",
26
- :type => 1)).to be_kind_of(Hash)
27
+ expect(@zc.user_custcreate(@args)).to be_kind_of(Hash)
27
28
  end
28
29
 
29
30
  it "returns same params" do
30
- res = @zc.user_custcreate(:email => "foo@bar.com",
31
- :first_name => "Foo",
32
- :last_name => "Bar",
33
- :type => 1)
34
-
35
- expect(res["email"]).to eq("foo@bar.com")
36
- expect(res["first_name"]).to eq("Foo")
37
- expect(res["last_name"]).to eq("Bar")
38
- expect(res["type"]).to eq(1)
31
+ res = @zc.user_custcreate(@args)
32
+
33
+ expect(res["email"]).to eq(@args[:email])
34
+ expect(res["first_name"]).to eq(@args[:first_name])
35
+ expect(res["last_name"]).to eq(@args[:last_name])
36
+ expect(res["type"]).to eq(@args[:type])
39
37
  end
40
38
  end
41
39
 
42
40
  describe "#user_custcreate! action" do
43
41
  before :each do
44
- stub_request(:post, zoomus_url("/user/custcreate")).
45
- to_return(:body => json_response("error"))
42
+ stub_request(
43
+ :post,
44
+ zoomus_url("/user/custcreate")
45
+ ).to_return(:body => json_response("error"))
46
46
  end
47
47
 
48
48
  it "raises Zoomus::Error exception" do
49
- expect{ @zc.user_custcreate!(
50
- :email => "foo@bar.com",
51
- :first_name => "Foo",
52
- :last_name => "Bar",
53
- :type => 1)}.to raise_error(Zoomus::Error)
49
+ expect {
50
+ @zc.user_custcreate!(@args)
51
+ }.to raise_error(Zoomus::Error)
54
52
  end
55
53
  end
56
54
  end
@@ -8,7 +8,10 @@ describe Zoomus::Actions::User do
8
8
 
9
9
  describe "#user_list action" do
10
10
  before :each do
11
- stub_request(:post, zoomus_url("/user/list")).to_return(:body => json_response("user_list"))
11
+ stub_request(
12
+ :post,
13
+ zoomus_url("/user/list")
14
+ ).to_return(:body => json_response("user_list"))
12
15
  end
13
16
 
14
17
  it "returns a hash" do
@@ -26,12 +29,16 @@ describe Zoomus::Actions::User do
26
29
 
27
30
  describe "#user_list! action" do
28
31
  before :each do
29
- stub_request(:post, zoomus_url("/user/list")).
30
- to_return(:body => json_response("error"))
32
+ stub_request(
33
+ :post,
34
+ zoomus_url("/user/list")
35
+ ).to_return(:body => json_response("error"))
31
36
  end
32
37
 
33
38
  it "raises Zoomus::Error exception" do
34
- expect{ @zc.user_list! }.to raise_error(Zoomus::Error)
39
+ expect {
40
+ @zc.user_list!
41
+ }.to raise_error(Zoomus::Error)
35
42
  end
36
43
  end
37
44
  end
@@ -40,4 +40,17 @@ describe Zoomus::Utils do
40
40
  expect(Utils.extract_options!(args)).to be_kind_of(Hash)
41
41
  end
42
42
  end
43
+
44
+ describe "#process_datetime_params" do
45
+ it "converts the Time objects to formatted strings" do
46
+ args = {
47
+ :foo => 'foo',
48
+ :bar => Time.utc(2000, "jan", 1, 20, 15, 1)
49
+ }
50
+ expect(
51
+ Utils.process_datetime_params!(:bar, args)
52
+ ).to eq({:foo => 'foo',
53
+ :bar => "2000-01-01T20:15:01Z"})
54
+ end
55
+ end
43
56
  end
data/spec/spec_helper.rb CHANGED
@@ -20,5 +20,11 @@ def zoomus_url(url)
20
20
  end
21
21
 
22
22
  def zoomus_client
23
- Zoomus.new(:api_key => "xxx", :api_secret => "xxx")
23
+ Zoomus.new
24
+ end
25
+
26
+ def filter_key(hash, key)
27
+ copy = hash.dup
28
+ copy.delete(key)
29
+ copy
24
30
  end
data/zoomus.gemspec CHANGED
@@ -16,5 +16,5 @@ Gem::Specification.new do |gem|
16
16
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
17
17
  gem.name = 'zoomus'
18
18
  gem.require_paths = ['lib']
19
- gem.version = '0.1.2'
19
+ gem.version = '0.2.0'
20
20
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zoomus
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-04-05 00:00:00.000000000 Z
12
+ date: 2013-05-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: httparty
16
- requirement: &78305960 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,15 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *78305960
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: json
27
- requirement: &78305650 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ! '>='
@@ -32,7 +37,12 @@ dependencies:
32
37
  version: '0'
33
38
  type: :runtime
34
39
  prerelease: false
35
- version_requirements: *78305650
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
36
46
  description: A Ruby wrapper for zoom.us API v1
37
47
  email:
38
48
  - collsmaxim@gmail.com
@@ -47,6 +57,7 @@ files:
47
57
  - README.md
48
58
  - lib/zoomus.rb
49
59
  - lib/zoomus/actions/meeting.rb
60
+ - lib/zoomus/actions/report.rb
50
61
  - lib/zoomus/actions/user.rb
51
62
  - lib/zoomus/client.rb
52
63
  - lib/zoomus/error.rb
@@ -57,6 +68,8 @@ files:
57
68
  - spec/fixtures/meeting_delete.json
58
69
  - spec/fixtures/meeting_list.json
59
70
  - spec/fixtures/meeting_update.json
71
+ - spec/fixtures/report_getaccountreport.json
72
+ - spec/fixtures/report_getuserreport.json
60
73
  - spec/fixtures/user_create.json
61
74
  - spec/fixtures/user_custcreate.json
62
75
  - spec/fixtures/user_list.json
@@ -64,6 +77,8 @@ files:
64
77
  - spec/lib/zoomus/actions/meeting/delete_spec.rb
65
78
  - spec/lib/zoomus/actions/meeting/list_spec.rb
66
79
  - spec/lib/zoomus/actions/meeting/update_spec.rb
80
+ - spec/lib/zoomus/actions/report/getaccountreport_spec.rb
81
+ - spec/lib/zoomus/actions/report/getuserreport_spec.rb
67
82
  - spec/lib/zoomus/actions/user/create_spec.rb
68
83
  - spec/lib/zoomus/actions/user/custcreate_spec.rb
69
84
  - spec/lib/zoomus/actions/user/list_spec.rb
@@ -91,7 +106,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
91
106
  version: '0'
92
107
  requirements: []
93
108
  rubyforge_project:
94
- rubygems_version: 1.8.10
109
+ rubygems_version: 1.8.23
95
110
  signing_key:
96
111
  specification_version: 3
97
112
  summary: zoom.us API wrapper
@@ -101,6 +116,8 @@ test_files:
101
116
  - spec/fixtures/meeting_delete.json
102
117
  - spec/fixtures/meeting_list.json
103
118
  - spec/fixtures/meeting_update.json
119
+ - spec/fixtures/report_getaccountreport.json
120
+ - spec/fixtures/report_getuserreport.json
104
121
  - spec/fixtures/user_create.json
105
122
  - spec/fixtures/user_custcreate.json
106
123
  - spec/fixtures/user_list.json
@@ -108,6 +125,8 @@ test_files:
108
125
  - spec/lib/zoomus/actions/meeting/delete_spec.rb
109
126
  - spec/lib/zoomus/actions/meeting/list_spec.rb
110
127
  - spec/lib/zoomus/actions/meeting/update_spec.rb
128
+ - spec/lib/zoomus/actions/report/getaccountreport_spec.rb
129
+ - spec/lib/zoomus/actions/report/getuserreport_spec.rb
111
130
  - spec/lib/zoomus/actions/user/create_spec.rb
112
131
  - spec/lib/zoomus/actions/user/custcreate_spec.rb
113
132
  - spec/lib/zoomus/actions/user/list_spec.rb