upwork-api 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. data/.docgen +1 -0
  2. data/.gitignore +22 -0
  3. data/.travis.yml +16 -0
  4. data/Gemfile +4 -0
  5. data/LICENSE.txt +176 -0
  6. data/README.md +79 -0
  7. data/Rakefile +12 -0
  8. data/example/myapp.rb +59 -0
  9. data/lib/upwork/api.rb +29 -0
  10. data/lib/upwork/api/client.rb +163 -0
  11. data/lib/upwork/api/config.rb +42 -0
  12. data/lib/upwork/api/logger.rb +35 -0
  13. data/lib/upwork/api/routers/activities/engagement.rb +54 -0
  14. data/lib/upwork/api/routers/activities/team.rb +117 -0
  15. data/lib/upwork/api/routers/auth.rb +38 -0
  16. data/lib/upwork/api/routers/freelancers/profile.rb +52 -0
  17. data/lib/upwork/api/routers/freelancers/search.rb +43 -0
  18. data/lib/upwork/api/routers/hr/clients/applications.rb +55 -0
  19. data/lib/upwork/api/routers/hr/clients/offers.rb +64 -0
  20. data/lib/upwork/api/routers/hr/contracts.rb +64 -0
  21. data/lib/upwork/api/routers/hr/engagements.rb +52 -0
  22. data/lib/upwork/api/routers/hr/freelancers/applications.rb +54 -0
  23. data/lib/upwork/api/routers/hr/freelancers/offers.rb +64 -0
  24. data/lib/upwork/api/routers/hr/interviews.rb +44 -0
  25. data/lib/upwork/api/routers/hr/jobs.rb +79 -0
  26. data/lib/upwork/api/routers/hr/milestones.rb +100 -0
  27. data/lib/upwork/api/routers/hr/roles.rb +49 -0
  28. data/lib/upwork/api/routers/hr/submissions.rb +63 -0
  29. data/lib/upwork/api/routers/jobs/profile.rb +43 -0
  30. data/lib/upwork/api/routers/jobs/search.rb +43 -0
  31. data/lib/upwork/api/routers/mc.rb +113 -0
  32. data/lib/upwork/api/routers/metadata.rb +71 -0
  33. data/lib/upwork/api/routers/organization/companies.rb +67 -0
  34. data/lib/upwork/api/routers/organization/teams.rb +49 -0
  35. data/lib/upwork/api/routers/organization/users.rb +49 -0
  36. data/lib/upwork/api/routers/payments.rb +42 -0
  37. data/lib/upwork/api/routers/reports/finance/accounts.rb +56 -0
  38. data/lib/upwork/api/routers/reports/finance/billings.rb +86 -0
  39. data/lib/upwork/api/routers/reports/finance/earnings.rb +86 -0
  40. data/lib/upwork/api/routers/reports/time.rb +114 -0
  41. data/lib/upwork/api/routers/snapshot.rb +95 -0
  42. data/lib/upwork/api/routers/teams.rb +47 -0
  43. data/lib/upwork/api/routers/workdiary.rb +53 -0
  44. data/lib/upwork/api/version.rb +18 -0
  45. data/test/helper.rb +21 -0
  46. data/test/test_activities_engagement.rb +21 -0
  47. data/test/test_activities_team.rb +46 -0
  48. data/test/test_auth.rb +16 -0
  49. data/test/test_client.rb +47 -0
  50. data/test/test_config.rb +25 -0
  51. data/test/test_freelancers_profile.rb +22 -0
  52. data/test/test_freelancers_search.rb +16 -0
  53. data/test/test_hr_clients_applications.rb +21 -0
  54. data/test/test_hr_clients_offers.rb +26 -0
  55. data/test/test_hr_contracts.rb +26 -0
  56. data/test/test_hr_engagements.rb +21 -0
  57. data/test/test_hr_freelancers_applications.rb +21 -0
  58. data/test/test_hr_freelancers_offers.rb +26 -0
  59. data/test/test_hr_interviews.rb +16 -0
  60. data/test/test_hr_jobs.rb +36 -0
  61. data/test/test_hr_milestones.rb +46 -0
  62. data/test/test_hr_roles.rb +21 -0
  63. data/test/test_hr_submissions.rb +26 -0
  64. data/test/test_jobs_profile.rb +16 -0
  65. data/test/test_jobs_search.rb +16 -0
  66. data/test/test_logger.rb +15 -0
  67. data/test/test_mc.rb +51 -0
  68. data/test/test_metadata.rb +41 -0
  69. data/test/test_organization_companies.rb +31 -0
  70. data/test/test_organization_teams.rb +21 -0
  71. data/test/test_organization_users.rb +21 -0
  72. data/test/test_payments.rb +16 -0
  73. data/test/test_reports_finance_accounts.rb +21 -0
  74. data/test/test_reports_finance_billings.rb +36 -0
  75. data/test/test_reports_finance_earnings.rb +36 -0
  76. data/test/test_reports_time.rb +41 -0
  77. data/test/test_snapshot.rb +41 -0
  78. data/test/test_teams.rb +21 -0
  79. data/test/test_workdiary.rb +21 -0
  80. data/upwork-api.gemspec +27 -0
  81. metadata +242 -0
@@ -0,0 +1,26 @@
1
+ $:.unshift 'lib'
2
+ $LOAD_PATH << File.dirname(__FILE__)
3
+
4
+ require 'helper'
5
+ require 'upwork/api/routers/hr/clients/offers'
6
+ require 'test/unit'
7
+ require 'mocha/test_unit'
8
+
9
+ class HrClientsOffersTest < Test::Unit::TestCase
10
+ include TestHelper
11
+
12
+ def test_get_list
13
+ api = Upwork::Api::Routers::Hr::Clients::Offers.new(get_client_mock)
14
+ assert api.get_list({})
15
+ end
16
+
17
+ def test_get_specific
18
+ api = Upwork::Api::Routers::Hr::Clients::Offers.new(get_client_mock)
19
+ assert api.get_specific('12', {})
20
+ end
21
+
22
+ def test_make_offer
23
+ api = Upwork::Api::Routers::Hr::Clients::Offers.new(get_client_mock)
24
+ assert api.make_offer({})
25
+ end
26
+ end
@@ -0,0 +1,26 @@
1
+ $:.unshift 'lib'
2
+ $LOAD_PATH << File.dirname(__FILE__)
3
+
4
+ require 'helper'
5
+ require 'upwork/api/routers/hr/contracts'
6
+ require 'test/unit'
7
+ require 'mocha/test_unit'
8
+
9
+ class HrContractsTest < Test::Unit::TestCase
10
+ include TestHelper
11
+
12
+ def test_suspend_contract
13
+ api = Upwork::Api::Routers::Hr::Contracts.new(get_client_mock)
14
+ assert api.suspend_contract('12', {})
15
+ end
16
+
17
+ def test_restart_contract
18
+ api = Upwork::Api::Routers::Hr::Contracts.new(get_client_mock)
19
+ assert api.restart_contract('12', {})
20
+ end
21
+
22
+ def test_end_contract
23
+ api = Upwork::Api::Routers::Hr::Contracts.new(get_client_mock)
24
+ assert api.end_contract('12', {})
25
+ end
26
+ end
@@ -0,0 +1,21 @@
1
+ $:.unshift 'lib'
2
+ $LOAD_PATH << File.dirname(__FILE__)
3
+
4
+ require 'helper'
5
+ require 'upwork/api/routers/hr/engagements'
6
+ require 'test/unit'
7
+ require 'mocha/test_unit'
8
+
9
+ class HrEngagementsTest < Test::Unit::TestCase
10
+ include TestHelper
11
+
12
+ def test_get_list
13
+ api = Upwork::Api::Routers::Hr::Engagements.new(get_client_mock)
14
+ assert api.get_list({})
15
+ end
16
+
17
+ def test_get_specific
18
+ api = Upwork::Api::Routers::Hr::Engagements.new(get_client_mock)
19
+ assert api.get_specific('12')
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ $:.unshift 'lib'
2
+ $LOAD_PATH << File.dirname(__FILE__)
3
+
4
+ require 'helper'
5
+ require 'upwork/api/routers/hr/freelancers/applications'
6
+ require 'test/unit'
7
+ require 'mocha/test_unit'
8
+
9
+ class HrFreelancersApplicationsTest < Test::Unit::TestCase
10
+ include TestHelper
11
+
12
+ def test_get_list
13
+ api = Upwork::Api::Routers::Hr::Freelancers::Applications.new(get_client_mock)
14
+ assert api.get_list({})
15
+ end
16
+
17
+ def test_get_specific
18
+ api = Upwork::Api::Routers::Hr::Freelancers::Applications.new(get_client_mock)
19
+ assert api.get_specific('12')
20
+ end
21
+ end
@@ -0,0 +1,26 @@
1
+ $:.unshift 'lib'
2
+ $LOAD_PATH << File.dirname(__FILE__)
3
+
4
+ require 'helper'
5
+ require 'upwork/api/routers/hr/freelancers/offers'
6
+ require 'test/unit'
7
+ require 'mocha/test_unit'
8
+
9
+ class HrFreelancersOffersTest < Test::Unit::TestCase
10
+ include TestHelper
11
+
12
+ def test_get_list
13
+ api = Upwork::Api::Routers::Hr::Freelancers::Offers.new(get_client_mock)
14
+ assert api.get_list({})
15
+ end
16
+
17
+ def test_get_specific
18
+ api = Upwork::Api::Routers::Hr::Freelancers::Offers.new(get_client_mock)
19
+ assert api.get_specific('12')
20
+ end
21
+
22
+ def test_actions
23
+ api = Upwork::Api::Routers::Hr::Freelancers::Offers.new(get_client_mock)
24
+ assert api.actions('12', {})
25
+ end
26
+ end
@@ -0,0 +1,16 @@
1
+ $:.unshift 'lib'
2
+ $LOAD_PATH << File.dirname(__FILE__)
3
+
4
+ require 'helper'
5
+ require 'upwork/api/routers/hr/interviews'
6
+ require 'test/unit'
7
+ require 'mocha/test_unit'
8
+
9
+ class HrInterviewsTest < Test::Unit::TestCase
10
+ include TestHelper
11
+
12
+ def test_invite
13
+ api = Upwork::Api::Routers::Hr::Interviews.new(get_client_mock)
14
+ assert api.invite('key', {})
15
+ end
16
+ end
@@ -0,0 +1,36 @@
1
+ $:.unshift 'lib'
2
+ $LOAD_PATH << File.dirname(__FILE__)
3
+
4
+ require 'helper'
5
+ require 'upwork/api/routers/hr/jobs'
6
+ require 'test/unit'
7
+ require 'mocha/test_unit'
8
+
9
+ class HrJobsTest < Test::Unit::TestCase
10
+ include TestHelper
11
+
12
+ def test_list
13
+ api = Upwork::Api::Routers::Hr::Jobs.new(get_client_mock)
14
+ assert api.get_list({})
15
+ end
16
+
17
+ def test_
18
+ api = Upwork::Api::Routers::Hr::Jobs.new(get_client_mock)
19
+ assert api.get_specific('key')
20
+ end
21
+
22
+ def test_post_job
23
+ api = Upwork::Api::Routers::Hr::Jobs.new(get_client_mock)
24
+ assert api.post_job({})
25
+ end
26
+
27
+ def test_edit_job
28
+ api = Upwork::Api::Routers::Hr::Jobs.new(get_client_mock)
29
+ assert api.edit_job('key', {})
30
+ end
31
+
32
+ def test_delete_job
33
+ api = Upwork::Api::Routers::Hr::Jobs.new(get_client_mock)
34
+ assert api.delete_job('key', {})
35
+ end
36
+ end
@@ -0,0 +1,46 @@
1
+ $:.unshift 'lib'
2
+ $LOAD_PATH << File.dirname(__FILE__)
3
+
4
+ require 'helper'
5
+ require 'upwork/api/routers/hr/milestones'
6
+ require 'test/unit'
7
+ require 'mocha/test_unit'
8
+
9
+ class HrMilestonesTest < Test::Unit::TestCase
10
+ include TestHelper
11
+
12
+ def test_get_active_milestone
13
+ api = Upwork::Api::Routers::Hr::Milestones.new(get_client_mock)
14
+ assert api.get_active_milestone('1234')
15
+ end
16
+
17
+ def test_get_submissions
18
+ api = Upwork::Api::Routers::Hr::Milestones.new(get_client_mock)
19
+ assert api.get_submissions('1234')
20
+ end
21
+
22
+ def test_create
23
+ api = Upwork::Api::Routers::Hr::Milestones.new(get_client_mock)
24
+ assert api.create({})
25
+ end
26
+
27
+ def test_edit
28
+ api = Upwork::Api::Routers::Hr::Milestones.new(get_client_mock)
29
+ assert api.edit('1234', {})
30
+ end
31
+
32
+ def test_activate
33
+ api = Upwork::Api::Routers::Hr::Milestones.new(get_client_mock)
34
+ assert api.activate('1234', {})
35
+ end
36
+
37
+ def test_approve
38
+ api = Upwork::Api::Routers::Hr::Milestones.new(get_client_mock)
39
+ assert api.approve('1234', {})
40
+ end
41
+
42
+ def test_delete
43
+ api = Upwork::Api::Routers::Hr::Milestones.new(get_client_mock)
44
+ assert api.delete('1234')
45
+ end
46
+ end
@@ -0,0 +1,21 @@
1
+ $:.unshift 'lib'
2
+ $LOAD_PATH << File.dirname(__FILE__)
3
+
4
+ require 'helper'
5
+ require 'upwork/api/routers/hr/roles'
6
+ require 'test/unit'
7
+ require 'mocha/test_unit'
8
+
9
+ class HrRolesTest < Test::Unit::TestCase
10
+ include TestHelper
11
+
12
+ def test_get_all
13
+ api = Upwork::Api::Routers::Hr::Roles.new(get_client_mock)
14
+ assert api.get_all
15
+ end
16
+
17
+ def test_get_by_specific_user
18
+ api = Upwork::Api::Routers::Hr::Roles.new(get_client_mock)
19
+ assert api.get_by_specific_user('12')
20
+ end
21
+ end
@@ -0,0 +1,26 @@
1
+ $:.unshift 'lib'
2
+ $LOAD_PATH << File.dirname(__FILE__)
3
+
4
+ require 'helper'
5
+ require 'upwork/api/routers/hr/submissions'
6
+ require 'test/unit'
7
+ require 'mocha/test_unit'
8
+
9
+ class HrSubmissionsTest < Test::Unit::TestCase
10
+ include TestHelper
11
+
12
+ def test_request_approval
13
+ api = Upwork::Api::Routers::Hr::Submissions.new(get_client_mock)
14
+ assert api.request_approval({})
15
+ end
16
+
17
+ def test_approve
18
+ api = Upwork::Api::Routers::Hr::Submissions.new(get_client_mock)
19
+ assert api.approve('1234', {})
20
+ end
21
+
22
+ def test_reject
23
+ api = Upwork::Api::Routers::Hr::Submissions.new(get_client_mock)
24
+ assert api.reject('1234', {})
25
+ end
26
+ end
@@ -0,0 +1,16 @@
1
+ $:.unshift 'lib'
2
+ $LOAD_PATH << File.dirname(__FILE__)
3
+
4
+ require 'helper'
5
+ require 'upwork/api/routers/jobs/profile'
6
+ require 'test/unit'
7
+ require 'mocha/test_unit'
8
+
9
+ class JobsProfileTest < Test::Unit::TestCase
10
+ include TestHelper
11
+
12
+ def test_get_specific
13
+ api = Upwork::Api::Routers::Jobs::Profile.new(get_client_mock)
14
+ assert api.get_specific('~key')
15
+ end
16
+ end
@@ -0,0 +1,16 @@
1
+ $:.unshift 'lib'
2
+ $LOAD_PATH << File.dirname(__FILE__)
3
+
4
+ require 'helper'
5
+ require 'upwork/api/routers/jobs/search'
6
+ require 'test/unit'
7
+ require 'mocha/test_unit'
8
+
9
+ class JobsSearchTest < Test::Unit::TestCase
10
+ include TestHelper
11
+
12
+ def test_find
13
+ api = Upwork::Api::Routers::Jobs::Search.new(get_client_mock)
14
+ assert api.find({})
15
+ end
16
+ end
@@ -0,0 +1,15 @@
1
+ $:.unshift 'lib'
2
+
3
+ require 'upwork/api/logger'
4
+ require 'test/unit'
5
+ require 'mocha/test_unit'
6
+
7
+ class LoggerTest < Test::Unit::TestCase
8
+ def test_i
9
+ $DEBUG = true
10
+ @log = Upwork::Api::Logger.new
11
+ @log.expects(:puts).with("> bar")
12
+ @log.i "bar"
13
+ $DEBUG = false
14
+ end
15
+ end
@@ -0,0 +1,51 @@
1
+ $:.unshift 'lib'
2
+ $LOAD_PATH << File.dirname(__FILE__)
3
+
4
+ require 'helper'
5
+ require 'upwork/api/routers/mc'
6
+ require 'test/unit'
7
+ require 'mocha/test_unit'
8
+
9
+ class McTest < Test::Unit::TestCase
10
+ include TestHelper
11
+
12
+ def test_get_trays
13
+ api = Upwork::Api::Routers::Mc.new(get_client_mock)
14
+ assert api.get_trays
15
+ end
16
+
17
+ def test_get_tray_by_type
18
+ api = Upwork::Api::Routers::Mc.new(get_client_mock)
19
+ assert api.get_tray_by_type('username', 'type')
20
+ end
21
+
22
+ def test_get_thread_details
23
+ api = Upwork::Api::Routers::Mc.new(get_client_mock)
24
+ assert api.get_thread_details('username', '12')
25
+ end
26
+
27
+ def test_get_thread_by_context
28
+ api = Upwork::Api::Routers::Mc.new(get_client_mock)
29
+ assert api.get_thread_by_context('username', '~key', '12')
30
+ end
31
+
32
+ def test_get_thread_by_context_last_posts
33
+ api = Upwork::Api::Routers::Mc.new(get_client_mock)
34
+ assert api.get_thread_by_context_last_posts('username', '~key', '12')
35
+ end
36
+
37
+ def test_start_new_thread
38
+ api = Upwork::Api::Routers::Mc.new(get_client_mock)
39
+ assert api.start_new_thread('username', {})
40
+ end
41
+
42
+ def test_reply_to_thread
43
+ api = Upwork::Api::Routers::Mc.new(get_client_mock)
44
+ assert api.reply_to_thread('username', '12', {})
45
+ end
46
+
47
+ def test_mark_thread
48
+ api = Upwork::Api::Routers::Mc.new(get_client_mock)
49
+ assert api.mark_thread('username', '12', {})
50
+ end
51
+ end
@@ -0,0 +1,41 @@
1
+ $:.unshift 'lib'
2
+ $LOAD_PATH << File.dirname(__FILE__)
3
+
4
+ require 'helper'
5
+ require 'upwork/api/routers/metadata'
6
+ require 'test/unit'
7
+ require 'mocha/test_unit'
8
+
9
+ class MetadataTest < Test::Unit::TestCase
10
+ include TestHelper
11
+
12
+ def test_get_tests
13
+ api = Upwork::Api::Routers::Metadata.new(get_client_mock)
14
+ assert api.get_tests
15
+ end
16
+
17
+ def test_get_regions
18
+ api = Upwork::Api::Routers::Metadata.new(get_client_mock)
19
+ assert api.get_regions
20
+ end
21
+
22
+ def test_get_skills
23
+ api = Upwork::Api::Routers::Metadata.new(get_client_mock)
24
+ assert api.get_skills
25
+ end
26
+
27
+ def test_get_categories
28
+ api = Upwork::Api::Routers::Metadata.new(get_client_mock)
29
+ assert api.get_categories
30
+ end
31
+
32
+ def test_get_categories_v2
33
+ api = Upwork::Api::Routers::Metadata.new(get_client_mock)
34
+ assert api.get_categories_v2
35
+ end
36
+
37
+ def test_get_reasons
38
+ api = Upwork::Api::Routers::Metadata.new(get_client_mock)
39
+ assert api.get_reasons({})
40
+ end
41
+ end
@@ -0,0 +1,31 @@
1
+ $:.unshift 'lib'
2
+ $LOAD_PATH << File.dirname(__FILE__)
3
+
4
+ require 'helper'
5
+ require 'upwork/api/routers/organization/companies'
6
+ require 'test/unit'
7
+ require 'mocha/test_unit'
8
+
9
+ class OrganizationCompaniesTest < Test::Unit::TestCase
10
+ include TestHelper
11
+
12
+ def test_get_list
13
+ api = Upwork::Api::Routers::Organization::Companies.new(get_client_mock)
14
+ assert api.get_list
15
+ end
16
+
17
+ def test_get_specific
18
+ api = Upwork::Api::Routers::Organization::Companies.new(get_client_mock)
19
+ assert api.get_specific('12')
20
+ end
21
+
22
+ def test_get_teams
23
+ api = Upwork::Api::Routers::Organization::Companies.new(get_client_mock)
24
+ assert api.get_teams('12')
25
+ end
26
+
27
+ def test_get_users
28
+ api = Upwork::Api::Routers::Organization::Companies.new(get_client_mock)
29
+ assert api.get_users('12')
30
+ end
31
+ end