toggl_api 0.0.2

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 (72) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +17 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE +20 -0
  5. data/LICENSE.txt +22 -0
  6. data/README.md +48 -0
  7. data/Rakefile +1 -0
  8. data/lib/toggl_api.rb +7 -0
  9. data/lib/toggl_api/api/client.rb +42 -0
  10. data/lib/toggl_api/api/project.rb +46 -0
  11. data/lib/toggl_api/api/project_user.rb +38 -0
  12. data/lib/toggl_api/api/tag.rb +24 -0
  13. data/lib/toggl_api/api/task.rb +38 -0
  14. data/lib/toggl_api/api/time_entry.rb +73 -0
  15. data/lib/toggl_api/api/user.rb +46 -0
  16. data/lib/toggl_api/api/workspace.rb +36 -0
  17. data/lib/toggl_api/api/workspace_user.rb +32 -0
  18. data/lib/toggl_api/base.rb +39 -0
  19. data/lib/toggl_api/error.rb +8 -0
  20. data/lib/toggl_api/report.rb +30 -0
  21. data/lib/toggl_api/request.rb +100 -0
  22. data/lib/toggl_api/version.rb +3 -0
  23. data/test/base_test.rb +38 -0
  24. data/test/fixtures/authentication.json +44 -0
  25. data/test/fixtures/bulk_update_tasks.json +24 -0
  26. data/test/fixtures/bulk_update_time_entries.json +29 -0
  27. data/test/fixtures/client.json +11 -0
  28. data/test/fixtures/client_projects.json +21 -0
  29. data/test/fixtures/clients.json +15 -0
  30. data/test/fixtures/create_client.json +8 -0
  31. data/test/fixtures/create_project.json +13 -0
  32. data/test/fixtures/create_project_user.json +0 -0
  33. data/test/fixtures/create_tag.json +7 -0
  34. data/test/fixtures/create_task.json +10 -0
  35. data/test/fixtures/create_time_entry.json +13 -0
  36. data/test/fixtures/invite_users_to_workspace.json +12 -0
  37. data/test/fixtures/project.json +13 -0
  38. data/test/fixtures/project_users.json +18 -0
  39. data/test/fixtures/relations_of_workspace_and_user.json +22 -0
  40. data/test/fixtures/report_failure.json +8 -0
  41. data/test/fixtures/report_success.json +6 -0
  42. data/test/fixtures/reset_api_token.json +2 -0
  43. data/test/fixtures/signup.json +19 -0
  44. data/test/fixtures/start_time_entry.json +13 -0
  45. data/test/fixtures/stop_time_entry.json +13 -0
  46. data/test/fixtures/task.json +10 -0
  47. data/test/fixtures/time_entries.json +24 -0
  48. data/test/fixtures/time_entry.json +15 -0
  49. data/test/fixtures/update_client.json +9 -0
  50. data/test/fixtures/update_project.json +12 -0
  51. data/test/fixtures/update_project_user.json +0 -0
  52. data/test/fixtures/update_tag.json +7 -0
  53. data/test/fixtures/update_task.json +13 -0
  54. data/test/fixtures/update_time_entry.json +15 -0
  55. data/test/fixtures/update_user.json +31 -0
  56. data/test/fixtures/update_workspace_user.json +9 -0
  57. data/test/fixtures/workspace_clients.json +19 -0
  58. data/test/fixtures/workspace_projects.json +21 -0
  59. data/test/fixtures/workspace_tasks.json +29 -0
  60. data/test/fixtures/workspace_users.json +47 -0
  61. data/test/fixtures/workspaces.json +12 -0
  62. data/test/helper.rb +10 -0
  63. data/test/test_client.rb +51 -0
  64. data/test/test_project.rb +94 -0
  65. data/test/test_report.rb +53 -0
  66. data/test/test_tag.rb +30 -0
  67. data/test/test_task.rb +51 -0
  68. data/test/test_time_entry.rb +69 -0
  69. data/test/test_user.rb +53 -0
  70. data/test/test_workspace.rb +72 -0
  71. data/toggl_api.gemspec +30 -0
  72. metadata +260 -0
@@ -0,0 +1,12 @@
1
+ [
2
+ {
3
+ "id":3134975,
4
+ "name":"John's personal ws",
5
+ "at":"2012-12-03T13:06:06+00:00"
6
+ },{
7
+ "id":777,
8
+ "name":"My Company Inc",
9
+ "premium":true,
10
+ "at":"2012-09-03T11:30:32+00:00"
11
+ }
12
+ ]
@@ -0,0 +1,10 @@
1
+ ENV['RACK_ENV'] = 'test'
2
+ require 'minitest/autorun'
3
+ require 'rack/test'
4
+
5
+ require File.expand_path '../../lib/toggl_api.rb', __FILE__
6
+
7
+ def load_fixture(request)
8
+ file = File.expand_path("../fixtures/#{request}.json",__FILE__)
9
+ IO.read(file)
10
+ end
@@ -0,0 +1,51 @@
1
+ require File.expand_path '../helper.rb', __FILE__
2
+
3
+ class ClientTest < MiniTest::Unit::TestCase
4
+
5
+ def setup
6
+ @base = Toggl::Base.new('abc','123')
7
+ end
8
+
9
+ def test_create_successful
10
+ @base.stub :request, Faraday::Response.new(:body => load_fixture('create_client')) do
11
+ resp = @base.create_client('xx',123)
12
+ refute_nil resp.body
13
+ end
14
+ end
15
+
16
+ def test_get_client
17
+ @base.stub :request, Faraday::Response.new(:body => load_fixture('client')) do
18
+ resp = @base.client(123)
19
+ refute_nil resp.body
20
+ end
21
+ end
22
+
23
+ def test_get_clients
24
+ @base.stub :request, Faraday::Response.new(:body => load_fixture('clients')) do
25
+ resp = @base.clients
26
+ refute_nil resp.body
27
+ end
28
+ end
29
+
30
+ def test_get_client_projects
31
+ @base.stub :request, Faraday::Response.new(:body => load_fixture('client_projects')) do
32
+ resp = @base.client_projects(123)
33
+ refute_nil resp.body
34
+ end
35
+ end
36
+
37
+ def test_update_client
38
+ @base.stub :request, Faraday::Response.new(:body => load_fixture('update_client')) do
39
+ resp = @base.update_client(123,{"name" => "test"})
40
+ refute_nil resp.body
41
+ end
42
+ end
43
+
44
+ def test_delete_client
45
+ @base.stub :request, Faraday::Response.new do
46
+ resp = @base.delete_client(123)
47
+ assert_nil resp.body
48
+ end
49
+ end
50
+
51
+ end
@@ -0,0 +1,94 @@
1
+ require File.expand_path '../helper.rb', __FILE__
2
+
3
+ class ProjectTest < MiniTest::Unit::TestCase
4
+
5
+ def setup
6
+ @base = Toggl::Base.new('abc','123')
7
+ end
8
+
9
+ def test_create_successful
10
+ @base.stub :request, Faraday::Response.new(:body => load_fixture('create_project')) do
11
+ resp = @base.create_project('xx',123)
12
+ refute_nil resp.body
13
+ end
14
+ end
15
+
16
+ def test_get_project
17
+ @base.stub :request, Faraday::Response.new(:body => load_fixture('project')) do
18
+ resp = @base.project(123)
19
+ refute_nil resp.body
20
+ end
21
+ end
22
+
23
+ def test_get_project_users
24
+ @base.stub :request, Faraday::Response.new(:body => load_fixture('project_users')) do
25
+ resp = @base.project_users(123)
26
+ refute_nil resp.body
27
+ end
28
+ end
29
+
30
+ def test_update_project
31
+ @base.stub :request, Faraday::Response.new(:body => load_fixture('update_project')) do
32
+ resp = @base.update_project(123,{"name" => "test"})
33
+ refute_nil resp.body
34
+ end
35
+ end
36
+
37
+ def test_delete_project
38
+ @base.stub :request, Faraday::Response.new do
39
+ resp = @base.delete_project(123)
40
+ assert_nil resp.body
41
+ end
42
+ end
43
+
44
+ def test_bulk_delete_project
45
+ @base.stub :request, Faraday::Response.new do
46
+ resp = @base.bulk_delete_projects(['123','321'])
47
+ assert_nil resp.body
48
+ end
49
+ end
50
+
51
+ #project user
52
+ def test_project_user_create
53
+ @base.stub :request, Faraday::Response.new(:body => load_fixture('create_project_user')) do
54
+ resp = @base.create_project_user('123','123')
55
+ refute_nil resp.body
56
+ end
57
+ end
58
+
59
+ def test_bulk_create_project_user
60
+ @base.stub :request, Faraday::Response.new(:body => load_fixture('create_project_user')) do
61
+ resp = @base.bulk_create_project_users('123',['123','321'])
62
+ refute_nil resp.body
63
+ end
64
+ end
65
+
66
+ def test_update_project_user
67
+ @base.stub :request, Faraday::Response.new(:body => load_fixture('update_project_user')) do
68
+ resp = @base.update_project_user('123',{:name =>'123'})
69
+ refute_nil resp.body
70
+ end
71
+ end
72
+
73
+ def test_bulk_create_project_user
74
+ @base.stub :request, Faraday::Response.new(:body => load_fixture('create_project_user')) do
75
+ resp = @base.bulk_update_project_users('123',{:name => "test"})
76
+ refute_nil resp.body
77
+ end
78
+ end
79
+
80
+ def test_delete_project_user
81
+ @base.stub :request, Faraday::Response.new do
82
+ resp = @base.delete_project_user(123)
83
+ assert_nil resp.body
84
+ end
85
+ end
86
+
87
+ def test_bulk_delete_project
88
+ @base.stub :request, Faraday::Response.new do
89
+ resp = @base.bulk_delete_project_users(['123','321'])
90
+ assert_nil resp.body
91
+ end
92
+ end
93
+
94
+ end
@@ -0,0 +1,53 @@
1
+ require File.expand_path '../helper.rb', __FILE__
2
+
3
+ class ReportTest < MiniTest::Unit::TestCase
4
+
5
+ def setup
6
+ @report = Toggl::Report.new('token')
7
+ end
8
+
9
+ def test_weekly_sccuess
10
+ @report.stub :request, Faraday::Response.new(:body => load_fixture('report_success')) do
11
+ resp = @report.weekly('123')
12
+ refute_match /error/,resp.body
13
+ refute_nil resp.body
14
+ end
15
+ end
16
+
17
+ def test_weekly_failure
18
+ @report.stub :request, Faraday::Response.new(:body => load_fixture('report_failure')) do
19
+ resp = @report.weekly('123')
20
+ assert_match /error/,resp.body
21
+ end
22
+ end
23
+
24
+ def test_details_sccuess
25
+ @report.stub :request, Faraday::Response.new(:body => load_fixture('report_success')) do
26
+ resp = @report.details('123')
27
+ refute_match /error/,resp.body
28
+ refute_nil resp.body
29
+ end
30
+ end
31
+
32
+ def test_details_failure
33
+ @report.stub :request, Faraday::Response.new(:body => load_fixture('report_failure')) do
34
+ resp = @report.details('123')
35
+ assert_match /error/,resp.body
36
+ end
37
+ end
38
+
39
+ def test_summary_sccuess
40
+ @report.stub :request, Faraday::Response.new(:body => load_fixture('report_success')) do
41
+ resp = @report.summary('123')
42
+ refute_match /error/,resp.body
43
+ refute_nil resp.body
44
+ end
45
+ end
46
+
47
+ def test_summary_failure
48
+ @report.stub :request, Faraday::Response.new(:body => load_fixture('report_failure')) do
49
+ resp = @report.summary('123')
50
+ assert_match /error/,resp.body
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,30 @@
1
+ require File.expand_path '../helper.rb', __FILE__
2
+
3
+ class TagTest < MiniTest::Unit::TestCase
4
+
5
+ def setup
6
+ @base = Toggl::Base.new('abc','123')
7
+ end
8
+
9
+ def test_create_successful
10
+ @base.stub :request, Faraday::Response.new(:body => load_fixture('create_tag')) do
11
+ resp = @base.create_tag('xx',123)
12
+ refute_nil resp.body
13
+ end
14
+ end
15
+
16
+ def test_update_tag
17
+ @base.stub :request, Faraday::Response.new(:body => load_fixture('update_tag')) do
18
+ resp = @base.update_tag_name(123,"test")
19
+ refute_nil resp.body
20
+ end
21
+ end
22
+
23
+ def test_delete_tag
24
+ @base.stub :request, Faraday::Response.new do
25
+ resp = @base.delete_tag(123)
26
+ assert_nil resp.body
27
+ end
28
+ end
29
+
30
+ end
@@ -0,0 +1,51 @@
1
+ require File.expand_path '../helper.rb', __FILE__
2
+
3
+ class TaskTest < MiniTest::Unit::TestCase
4
+
5
+ def setup
6
+ @base = Toggl::Base.new('abc','123')
7
+ end
8
+
9
+ def test_create_successful
10
+ @base.stub :request, Faraday::Response.new(:body => load_fixture('create_task')) do
11
+ resp = @base.create_task('xx',123)
12
+ refute_nil resp.body
13
+ end
14
+ end
15
+
16
+ def test_get_task
17
+ @base.stub :request, Faraday::Response.new(:body => load_fixture('task')) do
18
+ resp = @base.task(123)
19
+ refute_nil resp.body
20
+ end
21
+ end
22
+
23
+ def test_update_task
24
+ @base.stub :request, Faraday::Response.new(:body => load_fixture('update_task')) do
25
+ resp = @base.update_task(123,{"name" => "test"})
26
+ refute_nil resp.body
27
+ end
28
+ end
29
+
30
+ def test_bulk_update_tasks
31
+ @base.stub :request, Faraday::Response.new(:body => load_fixture('bulk_update_tasks')) do
32
+ resp = @base.bulk_update_tasks('123',{"name" => "test"})
33
+ refute_nil resp.body
34
+ end
35
+ end
36
+
37
+ def test_delete_task
38
+ @base.stub :request, Faraday::Response.new do
39
+ resp = @base.delete_task(123)
40
+ assert_nil resp.body
41
+ end
42
+ end
43
+
44
+ def test_bulk_delete_task
45
+ @base.stub :request, Faraday::Response.new do
46
+ resp = @base.bulk_delete_tasks(['123','321'])
47
+ assert_nil resp.body
48
+ end
49
+ end
50
+
51
+ end
@@ -0,0 +1,69 @@
1
+ require File.expand_path '../helper.rb', __FILE__
2
+
3
+ class TimeEntryTest < MiniTest::Unit::TestCase
4
+
5
+ def setup
6
+ @base = Toggl::Base.new('abc','123')
7
+ end
8
+
9
+ def test_create_successful
10
+ @base.stub :request, Faraday::Response.new(:body => load_fixture('create_time_entry')) do
11
+ resp = @base.create_time_entry({})
12
+ refute_nil resp.body
13
+ end
14
+ end
15
+
16
+ def test_get_time_entry
17
+ @base.stub :request, Faraday::Response.new(:body => load_fixture('time_entry')) do
18
+ resp = @base.time_entry(123)
19
+ refute_nil resp.body
20
+ end
21
+ end
22
+
23
+ def test_update_time_entry
24
+ @base.stub :request, Faraday::Response.new(:body => load_fixture('update_time_entry')) do
25
+ resp = @base.update_time_entry(123,{"name" => "test"})
26
+ refute_nil resp.body
27
+ end
28
+ end
29
+
30
+ def test_bulk_update_time_entries
31
+ @base.stub :request, Faraday::Response.new(:body => load_fixture('bulk_update_time_entries')) do
32
+ resp = @base.bulk_update_time_entries(['123','321'],{:description => "test"})
33
+ refute_nil resp.body
34
+ end
35
+ end
36
+
37
+ def test_delete_time_entry
38
+ @base.stub :request, Faraday::Response.new do
39
+ resp = @base.delete_time_entry(123)
40
+ assert_nil resp.body
41
+ end
42
+ end
43
+
44
+ def test_start_time_entry
45
+ @base.stub :request, Faraday::Response.new(:body => load_fixture('start_time_entry')) do
46
+ resp = @base.start_time_entry({})
47
+ refute_nil resp.body
48
+ end
49
+ end
50
+
51
+ def test_stop_time_entry
52
+ @base.stub :request, Faraday::Response.new(:body => load_fixture('stop_time_entry')) do
53
+ resp = @base.stop_time_entry('113')
54
+ refute_nil resp.body
55
+ end
56
+ end
57
+
58
+ def test_time_entries
59
+ @base.stub :request, Faraday::Response.new(:body => load_fixture('time_entries')) do
60
+ resp = @base.time_entries
61
+ refute_nil resp.body
62
+ resp = @base.time_entries(DateTime.now)
63
+ refute_nil resp.body
64
+ resp = @base.time_entries(DateTime.now,DateTime.now)
65
+ refute_nil resp.body
66
+ end
67
+ end
68
+
69
+ end
@@ -0,0 +1,53 @@
1
+ require File.expand_path '../helper.rb', __FILE__
2
+
3
+ class UserTest < MiniTest::Unit::TestCase
4
+
5
+ def setup
6
+ @base = Toggl::Base.new('abc','123')
7
+ end
8
+
9
+ def test_me
10
+ @base.stub :request, Faraday::Response.new(:body => load_fixture('authentication')) do
11
+ resp = @base.me
12
+ refute_nil resp.body
13
+ resp = @base.me(true)
14
+ refute_nil resp.body
15
+ end
16
+ end
17
+
18
+ def test_update_me
19
+ @base.stub :request, Faraday::Response.new(:body => load_fixture('update_user')) do
20
+ resp = @base.update_me({"email" => "test@test.com"})
21
+ refute_nil resp.body
22
+ end
23
+ end
24
+
25
+ def test_signup
26
+ @base.stub :request, Faraday::Response.new(:body => load_fixture('signup')) do
27
+ resp = @base.signup("xx@1.com",'1234','Etc/Utc')
28
+ refute_nil resp.body
29
+ end
30
+ end
31
+
32
+ def test_reset_token
33
+ @base.stub :request, Faraday::Response.new(:body => load_fixture('reset_api_token')) do
34
+ resp = @base.reset_token
35
+ refute_nil resp.body
36
+ end
37
+ end
38
+
39
+ def test_delete_task
40
+ @base.stub :request, Faraday::Response.new do
41
+ resp = @base.delete_task(123)
42
+ assert_nil resp.body
43
+ end
44
+ end
45
+
46
+ def test_bulk_delete_task
47
+ @base.stub :request, Faraday::Response.new do
48
+ resp = @base.bulk_delete_tasks(['123','321'])
49
+ assert_nil resp.body
50
+ end
51
+ end
52
+
53
+ end
@@ -0,0 +1,72 @@
1
+ require File.expand_path '../helper.rb', __FILE__
2
+
3
+ class WorkspaceTest < MiniTest::Unit::TestCase
4
+
5
+ def setup
6
+ @base = Toggl::Base.new('abc','123')
7
+ end
8
+
9
+ def test_get_workspaces
10
+ @base.stub :request, Faraday::Response.new(:body => load_fixture('workspaces')) do
11
+ resp = @base.workspaces
12
+ refute_nil resp.body
13
+ end
14
+ end
15
+
16
+ def test_get_workspace_users
17
+ @base.stub :request, Faraday::Response.new(:body => load_fixture('workspace_users')) do
18
+ resp = @base.workspace_users(123)
19
+ refute_nil resp.body
20
+ end
21
+ end
22
+
23
+ def test_get_workspace_clients
24
+ @base.stub :request, Faraday::Response.new(:body => load_fixture('workspace_clients')) do
25
+ resp = @base.workspace_clients(123)
26
+ refute_nil resp.body
27
+ end
28
+ end
29
+
30
+ def test_get_workspace_projects
31
+ @base.stub :request, Faraday::Response.new(:body => load_fixture('workspace_projects')) do
32
+ resp = @base.workspace_projects(123)
33
+ refute_nil resp.body
34
+ end
35
+ end
36
+
37
+ def test_get_workspace_tasks
38
+ @base.stub :request, Faraday::Response.new(:body => load_fixture('workspace_tasks')) do
39
+ resp = @base.workspace_tasks(123)
40
+ refute_nil resp.body
41
+ end
42
+ end
43
+
44
+ def test_invite_users_to_workspace
45
+ @base.stub :request, Faraday::Response.new(:body => load_fixture('invite_users_to_workspace')) do
46
+ resp = @base.workspace_tasks(123,['1@1.com'])
47
+ refute_nil resp.body
48
+ end
49
+ end
50
+
51
+ def test_update_workspace_user
52
+ @base.stub :request, Faraday::Response.new(:body => load_fixture('update_workspace_user')) do
53
+ resp = @base.update_workspace_user(123,{"name" => 'test'})
54
+ refute_nil resp.body
55
+ end
56
+ end
57
+
58
+ def test_delete_workspace_user
59
+ @base.stub :request, Faraday::Response.new do
60
+ resp = @base.delete_workspace_user(123)
61
+ assert_nil resp.body
62
+ end
63
+ end
64
+
65
+ def test_get_relations_of_workspace_and_user
66
+ @base.stub :request, Faraday::Response.new(:body => load_fixture('relations_of_workspace_and_user')) do
67
+ resp = @base.relations_of_workspace_and_user(123)
68
+ refute_nil resp.body
69
+ end
70
+ end
71
+
72
+ end