service_client 0.1.2 → 0.1.3

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: 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