service_client 0.1.2 → 0.1.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: 521a1eeca83e5e229c94fcd20c94e9173e30ef27036e961c1d5dcfc02294d7e1
4
- data.tar.gz: 46b385eb2d4619a8eafe55af1379ec8753d3fd8e314cff577694e972ed5545ef
3
+ metadata.gz: ef70f71d1ff5daf899d92ef3e56f0b342ab08265725f01dee7b56653a4f3686b
4
+ data.tar.gz: d91e2c02bae3a8252dc030aaaacf8f4699f63a1174c5e0addba893f1e1e4f375
5
5
  SHA512:
6
- metadata.gz: 39065c89a4675a343e87bf748eb910bd2d9b132655653e72e3e9459e8e834fc129d716b0cf5837d0c6a1f8c154304c289e060b02c3ac689d388fdd1cd42b06fc
7
- data.tar.gz: 1811584d2b959c7db852620e711ce1946bff3434960681695113e8779adf946e48c81ee037f28928c2b468a7fc86bb6a1ce47dcf34fad711e9bc43c27f5a4823
6
+ metadata.gz: 644443a0c8e582ac6835aaf8a0842e7963ca751ea11f34c5e1908088b5dc46ec5086d6e2a960c4214454a104422e9a9a7277ef229e3a1baadd6f25d01c51f404
7
+ data.tar.gz: 8948d6757a730b924896a666fac5dedb4152a80b7d65f49ddbbeb25137ccfa1a1b722fc412e2925d33f8792346b0c59438b4b853ddb30469acf2e957b6eff6f1
@@ -4,17 +4,24 @@ require 'httparty'
4
4
  require_relative 'response'
5
5
 
6
6
  module ServiceClient
7
- # Base class
7
+ # ParamsRequired error
8
8
  class ParamsRequired < StandardError; end
9
-
10
- class Base
11
- # ParamsRequired error
12
9
 
10
+ # Base class
11
+ class Base
13
12
  class << self
13
+ def base_url(url = nil)
14
+ @base_url = url
15
+ end
16
+
17
+ def default_headers(headers = nil)
18
+ @default_headers = headers
19
+ end
20
+
14
21
  def post(url = nil, headers: nil, body: nil)
15
22
  raise_params_required(url: url, headers: headers, body: body)
16
23
 
17
- request = HTTParty.post(url, headers: headers, body: body)
24
+ request = HTTParty.post(build_url(url), headers: build_headers(headers), body: body)
18
25
 
19
26
  make_response(request)
20
27
  end
@@ -22,7 +29,7 @@ module ServiceClient
22
29
  def get(url = nil, headers: nil)
23
30
  raise_params_required(url: url)
24
31
 
25
- request = HTTParty.get(url, headers: headers)
32
+ request = HTTParty.get(build_url(url), headers: build_headers(headers))
26
33
 
27
34
  make_response(request)
28
35
  end
@@ -30,7 +37,7 @@ module ServiceClient
30
37
  def put(url = nil, headers: nil, body: nil)
31
38
  raise_params_required(url: url, body: body)
32
39
 
33
- request = HTTParty.put(url, headers: headers, body: body)
40
+ request = HTTParty.put(build_url(url), headers: build_headers(headers), body: body)
34
41
 
35
42
  make_response(request)
36
43
  end
@@ -38,7 +45,7 @@ module ServiceClient
38
45
  def delete(url = nil, headers: nil)
39
46
  raise_params_required(url: url)
40
47
 
41
- request = HTTParty.delete(url, headers: headers)
48
+ request = HTTParty.delete(build_url(url), headers: build_headers(headers))
42
49
 
43
50
  make_response(request)
44
51
  end
@@ -60,6 +67,23 @@ module ServiceClient
60
67
  def params_nil?(params)
61
68
  params.values.any?(&:nil?)
62
69
  end
70
+
71
+ def build_url(path)
72
+ base_url = instance_variable_get('@base_url')
73
+
74
+ return if base_url.nil? && path.nil?
75
+
76
+ [base_url, path].compact.join('/')
77
+ end
78
+
79
+ def build_headers(headers)
80
+ default_headers = instance_variable_get('@default_headers')
81
+ return default_headers if headers.nil?
82
+
83
+ return headers if default_headers.nil?
84
+
85
+ default_headers.merge(headers)
86
+ end
63
87
  end
64
88
  end
65
89
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ServiceClient
4
- VERSION = "0.1.2".freeze
4
+ VERSION = '0.1.3'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: service_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alef Ojeda de Oliveira