cirro-ruby-client 1.0.1 → 1.2.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 33ba087b63705ed300fa9958de71d00e2dca208356662f8a82c4e6a66b81d141
4
- data.tar.gz: 6e7a7a20f585108f3e7b8954a1413621ca57ee1b5ff60a969deacabb2e224b52
3
+ metadata.gz: dcb633e6af68286109c3f5329c596be38609e12bfc74f8db3532b62b5d7a198a
4
+ data.tar.gz: 1043a463fdd431cf96fb4abe6c85de402c3c39c00056c830eb701457f0a2f246
5
5
  SHA512:
6
- metadata.gz: 495c530ff6247607095004c4c744b71f7e2db27dddaeaf5d494d87b7119ef0c24d550cf12ebcea3944610b0a631e92fcc04d10ccfefba21b738f2a720faf4e60
7
- data.tar.gz: b921117207120ee50213c281bcdda1d9bebae3ca57ec4e506d8999611a7d1a539e57f373b95f1555697ee485fcc8bc944413a5f3f375697850f10a22167fe628
6
+ metadata.gz: 19b4504bb063bcf4ba2575c785928c7cc7a5b358e10fbf5bb17a39a5dd1b0b5b647e416c4450686682cf5e78ee88a62dbdcb452fc0a4e053731a4a2aaa406f67
7
+ data.tar.gz: bddcf4a2f30da9ae1e6ba56a1099b57957f50cefeb642e226e08ae974f756d3a874b739380732f3d937e7b9f5386639c4046903ffddd766b294c26d1ed24f2d4
@@ -1,16 +1,17 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cirro-ruby-client (1.0.1)
4
+ cirro-ruby-client (1.2.1)
5
+ faraday_middleware
5
6
  json_api_client
6
7
  jwt
7
8
 
8
9
  GEM
9
10
  remote: https://rubygems.org/
10
11
  specs:
11
- activemodel (6.0.3.3)
12
- activesupport (= 6.0.3.3)
13
- activesupport (6.0.3.3)
12
+ activemodel (6.0.3.4)
13
+ activesupport (= 6.0.3.4)
14
+ activesupport (6.0.3.4)
14
15
  concurrent-ruby (~> 1.0, >= 1.0.2)
15
16
  i18n (>= 0.7, < 2)
16
17
  minitest (~> 5.1)
@@ -25,14 +26,15 @@ GEM
25
26
  diff-lcs (1.4.4)
26
27
  faker (2.14.0)
27
28
  i18n (>= 1.6, < 2)
28
- faraday (1.0.1)
29
+ faraday (1.1.0)
29
30
  multipart-post (>= 1.2, < 3)
31
+ ruby2_keywords
30
32
  faraday_middleware (1.0.0)
31
33
  faraday (~> 1.0)
32
34
  hashdiff (1.0.1)
33
35
  i18n (1.8.5)
34
36
  concurrent-ruby (~> 1.0)
35
- json_api_client (1.17.1)
37
+ json_api_client (1.18.0)
36
38
  activemodel (>= 3.2.0)
37
39
  activesupport (>= 3.2.0)
38
40
  addressable (~> 2.2)
@@ -82,15 +84,16 @@ GEM
82
84
  rubocop-rspec (1.43.2)
83
85
  rubocop (~> 0.87)
84
86
  ruby-progressbar (1.10.1)
87
+ ruby2_keywords (0.0.2)
85
88
  thread_safe (0.3.6)
86
- tzinfo (1.2.7)
89
+ tzinfo (1.2.8)
87
90
  thread_safe (~> 0.1)
88
91
  unicode-display_width (1.7.0)
89
92
  webmock (3.9.1)
90
93
  addressable (>= 2.3.6)
91
94
  crack (>= 0.3.2)
92
95
  hashdiff (>= 0.4.0, < 2.0.0)
93
- zeitwerk (2.4.0)
96
+ zeitwerk (2.4.2)
94
97
 
95
98
  PLATFORMS
96
99
  ruby
@@ -26,5 +26,7 @@ Gem::Specification.new do |spec|
26
26
  spec.require_paths = ['lib']
27
27
 
28
28
  spec.add_runtime_dependency 'jwt'
29
- spec.add_runtime_dependency 'json_api_client'
29
+ spec.add_runtime_dependency 'faraday', '< 1.2.0'
30
+ spec.add_runtime_dependency 'faraday_middleware'
31
+ spec.add_runtime_dependency 'json_api_client', '>= 1.10.0'
30
32
  end
@@ -1,4 +1,5 @@
1
1
  require 'json_api_client'
2
+
2
3
  require 'cirro_io/client/version'
3
4
  require 'cirro_io/client/configuration'
4
5
  require 'cirro_io/client/response_debugging_middleware'
@@ -7,6 +8,11 @@ require 'cirro_io/client/base'
7
8
  require 'cirro_io/client/gig_invitation'
8
9
  require 'cirro_io/client/app_user'
9
10
  require 'cirro_io/client/app_worker'
11
+ require 'cirro_io/client/worker_invitation_filter'
12
+ require 'cirro_io/client/gig_task'
13
+ require 'cirro_io/client/gig_result'
14
+ require 'cirro_io/client/gig_time_activity'
15
+ require 'cirro_io/client/gig'
10
16
 
11
17
  module CirroIO
12
18
  module Client
@@ -1,9 +1,6 @@
1
1
  module CirroIO
2
2
  module Client
3
3
  class AppUser < Base
4
- def self.resource_name
5
- 'app-users'
6
- end
7
4
  end
8
5
  end
9
6
  end
@@ -3,10 +3,6 @@ module CirroIO
3
3
  class AppWorker < Base
4
4
  has_one :app_user
5
5
  has_many :gig_invitations
6
-
7
- def self.resource_name
8
- 'app-workers'
9
- end
10
6
  end
11
7
  end
12
8
  end
@@ -9,6 +9,19 @@ module CirroIO
9
9
  super(url)
10
10
  connection.faraday.url_prefix = url
11
11
  end
12
+
13
+ def self.custom_post(endpoint, payload)
14
+ custom_connection.post(endpoint, payload.to_json)
15
+ end
16
+
17
+ def self.custom_connection
18
+ Faraday.new(url: "#{CirroIO::Client.configuration.site}/#{CirroIO::Client.configuration.api_version}") do |conn|
19
+ conn.request :json
20
+ conn.response :json
21
+ conn.use CirroIO::Client::JwtAuthentication
22
+ conn.use JsonApiClient::Middleware::Status, {}
23
+ end
24
+ end
12
25
  end
13
26
  end
14
27
  end
@@ -0,0 +1,45 @@
1
+ module CirroIO
2
+ module Client
3
+ class Gig < Base
4
+ has_one :worker_invitation_filter
5
+ has_many :gig_tasks
6
+ has_many :gig_results
7
+ has_many :gig_time_activities
8
+
9
+ # rubocop:disable Metrics/AbcSize
10
+ def bulk_create_with(worker_invitation_filter, gig_tasks)
11
+ payload = { data: { attributes: attributes, relationships: {} } }
12
+ payload[:data][:relationships][:gig_tasks] = gig_tasks.map(&:attributes)
13
+ payload[:data][:relationships][:worker_invitation_filter] = worker_invitation_filter.attributes
14
+
15
+ response = self.class.custom_post('bulk/gigs', format_to_dashed_keys(payload))
16
+
17
+ self.class.parser.parse(self.class, response).first
18
+ end
19
+
20
+ def bulk_archive_with(gig_results, gig_time_activities)
21
+ payload = { data: { relationships: {} } }
22
+ payload[:data][:relationships][:gig_results] = gig_results.map do |result|
23
+ result.attributes.merge({ relationships: {
24
+ 'app-worker': { data: result.app_worker.attributes },
25
+ 'gig-task': { data: result.gig_task.attributes },
26
+ } })
27
+ end
28
+ payload[:data][:relationships][:gig_time_activities] = gig_time_activities.map do |activity|
29
+ activity.attributes.merge({ relationships: { 'app-worker': { data: activity.app_worker.attributes } } })
30
+ end
31
+
32
+ response = self.class.custom_post("bulk/gigs/#{id}/archive", format_to_dashed_keys(payload))
33
+
34
+ self.class.parser.parse(self.class, response).first
35
+ end
36
+ # rubocop:enable Metrics/AbcSize
37
+
38
+ private
39
+
40
+ def format_to_dashed_keys(params)
41
+ params.deep_transform_keys { |key| key.to_s.gsub('_', '-') }
42
+ end
43
+ end
44
+ end
45
+ end
@@ -1,9 +1,6 @@
1
1
  module CirroIO
2
2
  module Client
3
3
  class GigInvitation < Base
4
- def self.resource_name
5
- 'gig-invitations'
6
- end
7
4
  end
8
5
  end
9
6
  end
@@ -0,0 +1,8 @@
1
+ module CirroIO
2
+ module Client
3
+ class GigResult < Base
4
+ has_one :app_worker
5
+ has_one :gig_task
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,6 @@
1
+ module CirroIO
2
+ module Client
3
+ class GigTask < Base
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,7 @@
1
+ module CirroIO
2
+ module Client
3
+ class GigTimeActivity < Base
4
+ has_one :app_worker
5
+ end
6
+ end
7
+ end
@@ -3,7 +3,7 @@ module CirroIO
3
3
  module Client
4
4
  class ResponseDebuggingMiddleware < Faraday::Response::Middleware
5
5
  def on_complete(env)
6
- # binding.pry
6
+ binding.pry # rubocop:disable Lint/Debugger
7
7
  end
8
8
  end
9
9
  end
@@ -1,7 +1,7 @@
1
1
  # rubocop:disable Style/MutableConstant
2
2
  module CirroIO
3
3
  module Client
4
- VERSION = '1.0.1'
4
+ VERSION = '1.2.3'
5
5
  end
6
6
  end
7
7
  # rubocop:enable Style/MutableConstant
@@ -0,0 +1,6 @@
1
+ module CirroIO
2
+ module Client
3
+ class WorkerInvitationFilter < Base
4
+ end
5
+ end
6
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cirro-ruby-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cirro Dev Team
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-11-24 00:00:00.000000000 Z
11
+ date: 2021-01-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jwt
@@ -25,7 +25,21 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: json_api_client
28
+ name: faraday
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "<"
32
+ - !ruby/object:Gem::Version
33
+ version: 1.2.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "<"
39
+ - !ruby/object:Gem::Version
40
+ version: 1.2.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: faraday_middleware
29
43
  requirement: !ruby/object:Gem::Requirement
30
44
  requirements:
31
45
  - - ">="
@@ -38,6 +52,20 @@ dependencies:
38
52
  - - ">="
39
53
  - !ruby/object:Gem::Version
40
54
  version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: json_api_client
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: 1.10.0
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: 1.10.0
41
69
  description: Simple wrapper for Cirro API
42
70
  email:
43
71
  - OrgtestIODevelopers@epam.com
@@ -65,10 +93,15 @@ files:
65
93
  - lib/cirro_io/client/app_worker.rb
66
94
  - lib/cirro_io/client/base.rb
67
95
  - lib/cirro_io/client/configuration.rb
96
+ - lib/cirro_io/client/gig.rb
68
97
  - lib/cirro_io/client/gig_invitation.rb
98
+ - lib/cirro_io/client/gig_result.rb
99
+ - lib/cirro_io/client/gig_task.rb
100
+ - lib/cirro_io/client/gig_time_activity.rb
69
101
  - lib/cirro_io/client/jwt_authentication.rb
70
102
  - lib/cirro_io/client/response_debugging_middleware.rb
71
103
  - lib/cirro_io/client/version.rb
104
+ - lib/cirro_io/client/worker_invitation_filter.rb
72
105
  homepage: https://cirro.io/api-docs/v1#cirro-api-documentation
73
106
  licenses:
74
107
  - MIT