upwork-api 1.1.0 → 1.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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 687d56981732d041ce5ca1de7db6b05472a13190
4
+ data.tar.gz: 7382d3f5cd651e69a39a715daa3b1c19a702cccc
5
+ SHA512:
6
+ metadata.gz: 7fd8b6660036d2f6e5a02cfe244d4cfa9af85756f36ab3e294e4be5cab2bdae2c2742e36da16c605ce37e9ff0ea911d2a11915dfcedd89d21a6ebbb717023533
7
+ data.tar.gz: 8999e166988f08b94c87937034991bde252fd0ed7b3f389290c14285e438044ee0dc84eb4e71e71629e834dca6e37958c53a6b0a9e819767cf91a90c9b3a5d97
data/README.md CHANGED
@@ -21,7 +21,7 @@ These are the supported API resources:
21
21
  * Job and Freelancer Profile
22
22
  * Search Jobs and Freelancers
23
23
  * Organization
24
- * MC
24
+ * Messages
25
25
  * Time and Financial Reporting
26
26
  * Metadata
27
27
  * Snapshot
data/Rakefile CHANGED
@@ -1,6 +1,6 @@
1
1
  %w[rubygems rake rake/clean rake/testtask fileutils].each { |f| require f }
2
2
  $LOAD_PATH << File.dirname(__FILE__) + '/lib'
3
- require "bundler/gem_tasks"
3
+ require 'bundler/gem_tasks'
4
4
  require 'oauth'
5
5
 
6
6
  Rake::TestTask.new do |t|
@@ -9,4 +9,4 @@ Rake::TestTask.new do |t|
9
9
  t.verbose = true
10
10
  end
11
11
 
12
- task :default => :test
12
+ task :default => :test
data/example/myapp.rb CHANGED
@@ -6,7 +6,6 @@ $LOAD_PATH << File.dirname(__FILE__)
6
6
 
7
7
  require 'upwork/api'
8
8
  require 'upwork/api/routers/auth'
9
- require 'upwork/api/routers/mc'
10
9
  require 'upwork/api/routers/reports/time'
11
10
  require 'upwork/api/routers/freelancers/search'
12
11
  #require 'pry'
@@ -39,17 +38,10 @@ end
39
38
  auth = Upwork::Api::Routers::Auth.new(client)
40
39
  info = auth.get_user_info
41
40
 
42
- # work with mc
43
- mc = Upwork::Api::Routers::Mc.new(client)
44
- mc_response = mc.get_trays
45
-
46
- # mark the thread
47
- #response = mc.mark_thread 'username', '88888', {'read' => 'false'}
48
-
49
41
  report = Upwork::Api::Routers::Reports::Time.new(client)
50
42
  report_response = report.get_by_freelancer_limited('mnovozhilov', {'tqx' => 'out:json', 'tq' => "select task where worked_on >= '2014-06-01' AND worked_on <= '2014-06-03' order by worked_on"})
51
43
 
52
- p info['info']['portrait_32_img'], mc_response['trays'], report_response
44
+ p info['info']['portrait_32_img'], report_response
53
45
 
54
46
  params = {'q' => 'python'}
55
47
  freelancers = Upwork::Api::Routers::Freelancers::Search.new(client)
@@ -0,0 +1,129 @@
1
+ # Licensed under the Upwork's API Terms of Use;
2
+ # you may not use this file except in compliance with the Terms.
3
+ #
4
+ # Unless required by applicable law or agreed to in writing, software
5
+ # distributed under the License is distributed on an "AS IS" BASIS,
6
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
7
+ # See the License for the specific language governing permissions and
8
+ # limitations under the License.
9
+ #
10
+ # Author:: Maksym Novozhylov (mnovozhilov@upwork.com)
11
+ # Copyright:: Copyright 2016(c) Upwork.com
12
+ # License:: See LICENSE.txt and TOS - https://developers.upwork.com/api-tos.html
13
+
14
+ module Upwork
15
+ module Api
16
+ module Routers
17
+ class Messages
18
+ ENTRY_POINT = 'api'
19
+
20
+ # Init
21
+ #
22
+ # Arguments:
23
+ # client: (Client)
24
+ def initialize(client)
25
+ @client = client
26
+ @client.epoint = ENTRY_POINT
27
+ end
28
+
29
+ # Retrieve rooms information
30
+ #
31
+ # Arguments:
32
+ # company: (String)
33
+ # params: (Hash)
34
+ def get_rooms(company, params = {})
35
+ $LOG.i "running " + __method__.to_s
36
+ @client.get '/messages/v3/' + company + '/rooms', params
37
+ end
38
+
39
+ # Get a specific room information
40
+ #
41
+ # Arguments:
42
+ # company: (String)
43
+ # room_id: (String)
44
+ # params: (Hash)
45
+ def get_room_details(company, room_id, params = {})
46
+ $LOG.i "running " + __method__.to_s
47
+ @client.get '/messages/v3/' + company + '/rooms/' + room_id, params
48
+ end
49
+
50
+ # Get a specific room by offer ID
51
+ #
52
+ # Arguments:
53
+ # company: (String)
54
+ # offer_id: (String)
55
+ # params: (Hash)
56
+ def get_room_by_offer(company, offer_id, params = {})
57
+ $LOG.i "running " + __method__.to_s
58
+ @client.get '/messages/v3/' + company + '/rooms/offers/' + offer_id, params
59
+ end
60
+
61
+ # Get a specific room by application ID
62
+ #
63
+ # Arguments:
64
+ # company: (String)
65
+ # application_id: (String)
66
+ # params: (Hash)
67
+ def get_room_by_application(company, application_id, params = {})
68
+ $LOG.i "running " + __method__.to_s
69
+ @client.get '/messages/v3/' + company + '/rooms/applications/' + application_id, params
70
+ end
71
+
72
+ # Get a specific room by contract ID
73
+ #
74
+ # Arguments:
75
+ # company: (String)
76
+ # contract_id: (String)
77
+ # params: (Hash)
78
+ def get_room_by_contract(company, contract_id, params = {})
79
+ $LOG.i "running " + __method__.to_s
80
+ @client.get '/messages/v3/' + company + '/rooms/contracts/' + contract_id, params
81
+ end
82
+
83
+ # Create a new room
84
+ #
85
+ # Arguments:
86
+ # company: (String)
87
+ # params: (Hash)
88
+ def create_room(company, params = {})
89
+ $LOG.i "running " + __method__.to_s
90
+ @client.post '/messages/v3/' + company + '/rooms', params
91
+ end
92
+
93
+ # Send a message to a room
94
+ #
95
+ # Arguments:
96
+ # company: (String)
97
+ # room_id: (String)
98
+ # params: (Hash)
99
+ def send_message_to_room(company, room_id, params = {})
100
+ $LOG.i "running " + __method__.to_s
101
+ @client.post '/messages/v3/' + company + '/rooms/' + room_id + '/stories', params
102
+ end
103
+
104
+ # Update a room settings
105
+ #
106
+ # Arguments:
107
+ # company: (String)
108
+ # room_id: (String)
109
+ # username: (String)
110
+ # params: (Hash)
111
+ def update_room_settings(company, room_id, username, params = {})
112
+ $LOG.i "running " + __method__.to_s
113
+ @client.put '/messages/v3/' + company + '/rooms/' + room_id + '/users/' + username, params
114
+ end
115
+
116
+ # Update the metadata of a room
117
+ #
118
+ # Arguments:
119
+ # company: (String)
120
+ # room_id: (String)
121
+ # params: (Hash)
122
+ def update_room_metadata(company, room_id, params = {})
123
+ $LOG.i "running " + __method__.to_s
124
+ @client.put '/messages/v3/' + company + '/rooms/' + room_id, params
125
+ end
126
+ end
127
+ end
128
+ end
129
+ end
@@ -13,6 +13,6 @@
13
13
 
14
14
  module Upwork # :nodoc:
15
15
  module Api
16
- VERSION = "1.1.0"
16
+ VERSION = "1.2.0"
17
17
  end
18
18
  end
data/test/test_config.rb CHANGED
@@ -5,7 +5,7 @@ require 'test/unit'
5
5
  require 'mocha/test_unit'
6
6
 
7
7
  class ConfigTest < Test::Unit::TestCase
8
- def test_config_initialization
8
+ def test_my_config_initialization
9
9
  config = Upwork::Api::Config.new({
10
10
  'consumer_key' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
11
11
  'consumer_secret' => 'xxxxxxxxxxxxxxxx',
@@ -22,4 +22,4 @@ class ConfigTest < Test::Unit::TestCase
22
22
  assert_equal 'sig',config.signature_method
23
23
  assert_equal false,config.debug
24
24
  end
25
- end
25
+ end
@@ -0,0 +1,56 @@
1
+ $:.unshift 'lib'
2
+ $LOAD_PATH << File.dirname(__FILE__)
3
+
4
+ require 'helper'
5
+ require 'upwork/api/routers/messages'
6
+ require 'test/unit'
7
+ require 'mocha/test_unit'
8
+
9
+ class MessagesTest < Test::Unit::TestCase
10
+ include TestHelper
11
+
12
+ def test_get_rooms
13
+ api = Upwork::Api::Routers::Messages.new(get_client_mock)
14
+ assert api.get_rooms('company')
15
+ end
16
+
17
+ def test_get_room_details
18
+ api = Upwork::Api::Routers::Messages.new(get_client_mock)
19
+ assert api.get_room_details('company', 'room-id', {})
20
+ end
21
+
22
+ def test_get_room_by_offer
23
+ api = Upwork::Api::Routers::Messages.new(get_client_mock)
24
+ assert api.get_room_by_offer('company', '1234', {})
25
+ end
26
+
27
+ def test_get_room_by_application
28
+ api = Upwork::Api::Routers::Messages.new(get_client_mock)
29
+ assert api.get_room_by_application('company', '1234', {})
30
+ end
31
+
32
+ def test_get_room_by_contract
33
+ api = Upwork::Api::Routers::Messages.new(get_client_mock)
34
+ assert api.get_room_by_contract('company', '1234', {})
35
+ end
36
+
37
+ def test_create_room
38
+ api = Upwork::Api::Routers::Messages.new(get_client_mock)
39
+ assert api.create_room('company', {})
40
+ end
41
+
42
+ def test_send_message_to_room
43
+ api = Upwork::Api::Routers::Messages.new(get_client_mock)
44
+ assert api.send_message_to_room('company', 'room-id', {})
45
+ end
46
+
47
+ def test_update_room_settings
48
+ api = Upwork::Api::Routers::Messages.new(get_client_mock)
49
+ assert api.update_room_settings('company', 'room-id', 'username', {})
50
+ end
51
+
52
+ def test_update_room_metadata
53
+ api = Upwork::Api::Routers::Messages.new(get_client_mock)
54
+ assert api.update_room_metadata('company', 'room-id', {})
55
+ end
56
+ end
metadata CHANGED
@@ -1,94 +1,83 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: upwork-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
5
- prerelease:
4
+ version: 1.2.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Maksym Novozhylov
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2015-10-12 00:00:00.000000000 Z
11
+ date: 2016-06-14 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: oauth
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - ">="
20
18
  - !ruby/object:Gem::Version
21
19
  version: 0.4.7
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - ">="
28
25
  - !ruby/object:Gem::Version
29
26
  version: 0.4.7
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: bundler
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ~>
31
+ - - "~>"
36
32
  - !ruby/object:Gem::Version
37
33
  version: '1.6'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ~>
38
+ - - "~>"
44
39
  - !ruby/object:Gem::Version
45
40
  version: '1.6'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: rake
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - ">="
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - ">="
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: mocha
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - ">="
68
60
  - !ruby/object:Gem::Version
69
61
  version: '0'
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - ">="
76
67
  - !ruby/object:Gem::Version
77
68
  version: '0'
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: test-unit
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ! '>='
73
+ - - ">="
84
74
  - !ruby/object:Gem::Version
85
75
  version: '0'
86
76
  type: :development
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ! '>='
80
+ - - ">="
92
81
  - !ruby/object:Gem::Version
93
82
  version: '0'
94
83
  description: Ruby bindings for Upwork API makes your life easier due to working with
@@ -99,9 +88,9 @@ executables: []
99
88
  extensions: []
100
89
  extra_rdoc_files: []
101
90
  files:
102
- - .docgen
103
- - .gitignore
104
- - .travis.yml
91
+ - ".docgen"
92
+ - ".gitignore"
93
+ - ".travis.yml"
105
94
  - Gemfile
106
95
  - LICENSE.txt
107
96
  - README.md
@@ -129,7 +118,7 @@ files:
129
118
  - lib/upwork/api/routers/hr/submissions.rb
130
119
  - lib/upwork/api/routers/jobs/profile.rb
131
120
  - lib/upwork/api/routers/jobs/search.rb
132
- - lib/upwork/api/routers/mc.rb
121
+ - lib/upwork/api/routers/messages.rb
133
122
  - lib/upwork/api/routers/metadata.rb
134
123
  - lib/upwork/api/routers/organization/companies.rb
135
124
  - lib/upwork/api/routers/organization/teams.rb
@@ -166,7 +155,7 @@ files:
166
155
  - test/test_jobs_profile.rb
167
156
  - test/test_jobs_search.rb
168
157
  - test/test_logger.rb
169
- - test/test_mc.rb
158
+ - test/test_messages.rb
170
159
  - test/test_metadata.rb
171
160
  - test/test_organization_companies.rb
172
161
  - test/test_organization_teams.rb
@@ -184,27 +173,26 @@ files:
184
173
  homepage: http://developers.upwork.com
185
174
  licenses:
186
175
  - Apache-2.0
176
+ metadata: {}
187
177
  post_install_message:
188
178
  rdoc_options: []
189
179
  require_paths:
190
180
  - lib
191
181
  required_ruby_version: !ruby/object:Gem::Requirement
192
- none: false
193
182
  requirements:
194
- - - ! '>='
183
+ - - ">="
195
184
  - !ruby/object:Gem::Version
196
185
  version: '0'
197
186
  required_rubygems_version: !ruby/object:Gem::Requirement
198
- none: false
199
187
  requirements:
200
- - - ! '>='
188
+ - - ">="
201
189
  - !ruby/object:Gem::Version
202
190
  version: '0'
203
191
  requirements: []
204
192
  rubyforge_project:
205
- rubygems_version: 1.8.23
193
+ rubygems_version: 2.5.1
206
194
  signing_key:
207
- specification_version: 3
195
+ specification_version: 4
208
196
  summary: Ruby bindings for Upwork API.
209
197
  test_files:
210
198
  - test/helper.rb
@@ -229,7 +217,7 @@ test_files:
229
217
  - test/test_jobs_profile.rb
230
218
  - test/test_jobs_search.rb
231
219
  - test/test_logger.rb
232
- - test/test_mc.rb
220
+ - test/test_messages.rb
233
221
  - test/test_metadata.rb
234
222
  - test/test_organization_companies.rb
235
223
  - test/test_organization_teams.rb
@@ -1,113 +0,0 @@
1
- # Licensed under the Upwork's API Terms of Use;
2
- # you may not use this file except in compliance with the Terms.
3
- #
4
- # Unless required by applicable law or agreed to in writing, software
5
- # distributed under the License is distributed on an "AS IS" BASIS,
6
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
7
- # See the License for the specific language governing permissions and
8
- # limitations under the License.
9
- #
10
- # Author:: Maksym Novozhylov (mnovozhilov@upwork.com)
11
- # Copyright:: Copyright 2014(c) Upwork.com
12
- # License:: See LICENSE.txt and TOS - https://developers.upwork.com/api-tos.html
13
-
14
- module Upwork
15
- module Api
16
- module Routers
17
- class Mc
18
- ENTRY_POINT = 'api'
19
-
20
- # Init
21
- #
22
- # Arguments:
23
- # client: (Client)
24
- def initialize(client)
25
- @client = client
26
- @client.epoint = ENTRY_POINT
27
- end
28
-
29
- # Get trays
30
- def get_trays
31
- $LOG.i "running " + __method__.to_s
32
- @client.get '/mc/v1/trays'
33
- end
34
-
35
- # Get tray by type
36
- #
37
- # Arguments:
38
- # username: (String)
39
- # type: (String)
40
- def get_tray_by_type(username, type)
41
- $LOG.i "running " + __method__.to_s
42
- @client.get '/mc/v1/trays/' + username + '/' + type
43
- end
44
-
45
- # List thread details based on thread id
46
- #
47
- # Arguments:
48
- # username: (String)
49
- # thread_id: (String)
50
- def get_thread_details(username, thread_id)
51
- $LOG.i "running " + __method__.to_s
52
- @client.get '/mc/v1/threads/' + username + '/' + thread_id
53
- end
54
-
55
- # Get a specific thread by context
56
- #
57
- # Arguments:
58
- # username: (String)
59
- # job_key: (String)
60
- # application_id: (String)
61
- # context: (String)
62
- def get_thread_by_context(username, job_key, application_id, context = 'Interviews')
63
- $LOG.i "running " + __method__.to_s
64
- @client.get '/mc/v1/contexts/' + username + '/' + context + ':' + job_key + ':' + application_id
65
- end
66
-
67
- # Get a specific thread by context (last message content)
68
- #
69
- # Arguments:
70
- # username: (String)
71
- # job_key: (String)
72
- # application_id: (String)
73
- # context: (String)
74
- def get_thread_by_context_last_posts(username, job_key, application_id, context = 'Interviews')
75
- $LOG.i "running " + __method__.to_s
76
- @client.get '/mc/v1/contexts/' + username + '/' + context + ':' + job_key + ':' + application_id + '/last_posts'
77
- end
78
-
79
- # Send new message
80
- #
81
- # Arguments:
82
- # username: (String)
83
- # params: (Hash)
84
- def start_new_thread(username, params = {})
85
- $LOG.i "running " + __method__.to_s
86
- @client.post '/mc/v1/threads/' + username, params
87
- end
88
-
89
- # Reply to existent thread
90
- #
91
- # Arguments:
92
- # username: (String)
93
- # thread_id: (String)
94
- # params: (Hash)
95
- def reply_to_thread(username, thread_id, params = {})
96
- $LOG.i "running " + __method__.to_s
97
- @client.post '/mc/v1/threads/' + username + '/' + thread_id, params
98
- end
99
-
100
- # Update threads based on user actions
101
- #
102
- # Arguments:
103
- # username: (String)
104
- # thread_id: (String)
105
- # params: (Hash)
106
- def mark_thread(username, thread_id, params = {})
107
- $LOG.i "running " + __method__.to_s
108
- @client.put '/mc/v1/threads/' + username + '/' + thread_id, params
109
- end
110
- end
111
- end
112
- end
113
- end
data/test/test_mc.rb DELETED
@@ -1,51 +0,0 @@
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