upwork-api 1.0.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.
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