service_client 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6b08c3ae1cd289404a362c7a57e3caafa43b0c5cb59cb3af1baeb9391dc8c59b
4
- data.tar.gz: 6b3a8b21aba11b9cf2213f88a8f16c8df35bac58611791dde035738195a26b72
3
+ metadata.gz: 521a1eeca83e5e229c94fcd20c94e9173e30ef27036e961c1d5dcfc02294d7e1
4
+ data.tar.gz: 46b385eb2d4619a8eafe55af1379ec8753d3fd8e314cff577694e972ed5545ef
5
5
  SHA512:
6
- metadata.gz: bc58261c84dd5f89c3f88ba70d92cd74ddd6223effbc3784d5a436f0303e5d17000fc038d224266561e0adde28eac729e7f53d4888b393b6fb70f52b4bf0aae9
7
- data.tar.gz: 85006dfbf928d9b63e34fc456bfa33a3556e9706cd4d9fc932eed424e4216846936b32bcddcd37422d5405e6e75e59a398afc9ec11c62f6db4b6caa5996836a2
6
+ metadata.gz: 39065c89a4675a343e87bf748eb910bd2d9b132655653e72e3e9459e8e834fc129d716b0cf5837d0c6a1f8c154304c289e060b02c3ac689d388fdd1cd42b06fc
7
+ data.tar.gz: 1811584d2b959c7db852620e711ce1946bff3434960681695113e8779adf946e48c81ee037f28928c2b468a7fc86bb6a1ce47dcf34fad711e9bc43c27f5a4823
data/Gemfile.lock CHANGED
@@ -1,13 +1,12 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- service_client (0.1.0)
4
+ service_client (0.1.2)
5
5
  httparty (~> 0.18.0)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- byebug (11.1.3)
11
10
  diff-lcs (1.5.0)
12
11
  httparty (0.18.1)
13
12
  mime-types (~> 3.0)
@@ -37,7 +36,6 @@ PLATFORMS
37
36
 
38
37
  DEPENDENCIES
39
38
  bundler (= 2.1.4)
40
- byebug
41
39
  httparty (~> 0.18.0)
42
40
  rack (~> 2.2.3)
43
41
  rake (~> 12.0)
data/README.md CHANGED
@@ -2,8 +2,6 @@
2
2
 
3
3
  Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/service_client`. To experiment with that code, run `bin/console` for an interactive prompt.
4
4
 
5
- TODO: Delete this and the text above, and describe your gem
6
-
7
5
  ## Installation
8
6
 
9
7
  Add this line to your application's Gemfile:
@@ -14,19 +12,23 @@ gem 'service_client'
14
12
 
15
13
  And then execute:
16
14
 
17
- $ bundle install
15
+ ```bash
16
+ bundle install
17
+ ```
18
18
 
19
19
  Or install it yourself as:
20
20
 
21
- $ gem install service_client
21
+ ```bash
22
+ gem install service_client
23
+ ```
22
24
 
23
25
  ## Usage
24
26
 
25
27
  Basic usage example:
26
28
 
27
29
  ```ruby
28
- class Request < ServiceClient::Call
29
- def customer(id)
30
+ class CustomerClient < ServiceClient::Base
31
+ def find(id)
30
32
  response = get("https://api.com/customers/#{id}")
31
33
 
32
34
  response.data
@@ -41,7 +43,7 @@ class Request < ServiceClient::Call
41
43
  # All errors of HTTP status code
42
44
  end
43
45
 
44
- def customers
46
+ def all
45
47
  get(nil)
46
48
  rescue ServiceClient::ParamsRequired => e
47
49
  puts e.message
@@ -50,26 +52,26 @@ end
50
52
 
51
53
  ```
52
54
 
53
- # Methods of class
55
+ ## Methods of class
54
56
 
55
57
  ```ruby
56
58
  # GET
57
- ServiceClient::Call.get(url, headers:)
59
+ ServiceClient::Base.get(url, headers:)
58
60
 
59
61
  # POST
60
- ServiceClient::Call.post(url, headers:, body:)
62
+ ServiceClient::Base.post(url, headers:, body:)
61
63
 
62
64
  # PUT
63
- ServiceClient::Call.put(url, headers:, body:)
65
+ ServiceClient::Base.put(url, headers:, body:)
64
66
 
65
67
  # DELETE
66
- ServiceClient::Call.delete(url, headers:, body:)
68
+ ServiceClient::Base.delete(url, headers:, body:)
67
69
  ```
68
70
 
69
- # Classes of errors
71
+ ## Classes of errors
70
72
 
71
73
  ```ruby
72
- # 400 – Bad Request
74
+ # 400 – Bad Request
73
75
  ServiceClient::Errors::BadRequestError
74
76
  # 401 – Unauthorized
75
77
  ServiceClient::Errors::UnauthorizedError
@@ -167,7 +169,7 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
167
169
 
168
170
  ## Contributing
169
171
 
170
- Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/service_client.
172
+ Bug reports and pull requests are welcome on GitHub at https://github.com/nemuba/service_client.
171
173
 
172
174
  ## License
173
175
 
@@ -0,0 +1,65 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'httparty'
4
+ require_relative 'response'
5
+
6
+ module ServiceClient
7
+ # Base class
8
+ class ParamsRequired < StandardError; end
9
+
10
+ class Base
11
+ # ParamsRequired error
12
+
13
+ class << self
14
+ def post(url = nil, headers: nil, body: nil)
15
+ raise_params_required(url: url, headers: headers, body: body)
16
+
17
+ request = HTTParty.post(url, headers: headers, body: body)
18
+
19
+ make_response(request)
20
+ end
21
+
22
+ def get(url = nil, headers: nil)
23
+ raise_params_required(url: url)
24
+
25
+ request = HTTParty.get(url, headers: headers)
26
+
27
+ make_response(request)
28
+ end
29
+
30
+ def put(url = nil, headers: nil, body: nil)
31
+ raise_params_required(url: url, body: body)
32
+
33
+ request = HTTParty.put(url, headers: headers, body: body)
34
+
35
+ make_response(request)
36
+ end
37
+
38
+ def delete(url = nil, headers: nil)
39
+ raise_params_required(url: url)
40
+
41
+ request = HTTParty.delete(url, headers: headers)
42
+
43
+ make_response(request)
44
+ end
45
+
46
+ private
47
+
48
+ def make_response(response)
49
+ Response.call(response)
50
+ end
51
+
52
+ def raise_params_required(params)
53
+ raise ParamsRequired, "Params: #{nil_params(params)} are required" if params_nil?(params)
54
+ end
55
+
56
+ def nil_params(params)
57
+ params.select { |_, value| value.nil? }.keys
58
+ end
59
+
60
+ def params_nil?(params)
61
+ params.values.any?(&:nil?)
62
+ end
63
+ end
64
+ end
65
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ServiceClient
2
- VERSION = "0.1.1"
4
+ VERSION = "0.1.2".freeze
3
5
  end
@@ -1,67 +1,7 @@
1
1
  # frozen_string_literal: true
2
+
3
+ require 'httparty'
2
4
  require_relative 'service_client/version'
3
5
  require_relative 'service_client/response'
6
+ require_relative 'service_client/base'
4
7
  require_relative 'service_client/errors'
5
- require 'httparty'
6
- require 'rack/utils'
7
-
8
- # Service Client
9
- module ServiceClient
10
- # ParamsRequired error
11
- class ParamsRequired < StandardError; end
12
-
13
- # Call class
14
- class Call
15
- def self.post(url = nil, headers: nil, body: nil)
16
- raise_params_required(url: url, headers: headers, body: body)
17
-
18
- request = HTTParty.post(url, headers: headers, body: body)
19
-
20
- make_response(request)
21
- end
22
-
23
- def self.get(url = nil, headers: nil)
24
- raise_params_required(url: url)
25
-
26
- request = HTTParty.get(url, headers: headers)
27
-
28
- make_response(request)
29
- end
30
-
31
- def self.put(url = nil, headers: nil, body: nil)
32
- raise_params_required(url: url, body: body)
33
-
34
- request = HTTParty.put(url, headers: headers, body: body)
35
-
36
- make_response(request)
37
- end
38
-
39
- def self.delete(url = nil, headers: nil)
40
- raise_params_required(url: url)
41
-
42
- request = HTTParty.delete(url, headers: headers)
43
-
44
- make_response(request)
45
- end
46
-
47
- class << self
48
- private
49
-
50
- def make_response(response)
51
- Response.call(response)
52
- end
53
-
54
- def raise_params_required(params)
55
- raise ParamsRequired, "Params: #{nil_params(params)} are required" if params_nil?(params)
56
- end
57
-
58
- def nil_params(params)
59
- params.select { |_, value| value.nil? }.keys
60
- end
61
-
62
- def params_nil?(params)
63
- params.values.any?(&:nil?)
64
- end
65
- end
66
- end
67
- end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: service_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alef Ojeda de Oliveira
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-02-12 00:00:00.000000000 Z
11
+ date: 2023-02-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -54,6 +54,7 @@ files:
54
54
  - bin/console
55
55
  - bin/setup
56
56
  - lib/service_client.rb
57
+ - lib/service_client/base.rb
57
58
  - lib/service_client/errors.rb
58
59
  - lib/service_client/response.rb
59
60
  - lib/service_client/version.rb