basic_api_client 1.0.0 → 1.1.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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +9 -0
  3. data/lib/basic_api_client.rb +18 -3
  4. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: acdf78b43f35bba13bb9ae63b1760a53762f23ba
4
- data.tar.gz: 9d2310d251369e250fdae844711754fb2ce9b146
3
+ metadata.gz: 2ec4537be034ae24cc1669827f84ff405a2209c8
4
+ data.tar.gz: 454c667842535fce5112bedfcc56746e7f6c8d6f
5
5
  SHA512:
6
- metadata.gz: a2f6c7c5d800525f86931daf826983ea9f84533dd96f1c6a06e2d55b286d97a43ee7fe73b6ffcfd0182b8d484f99b3159b22012f2d38122ebc45fe611699c03d
7
- data.tar.gz: 71ca21a3a9c82616b786aa4c6416fa45b5b6a6063e1378829533d55bf235f1bf1a0667e04979f684c1355717e196c7b12e936716030313ee97f81c149b93e5c4
6
+ metadata.gz: 04ca334680d7de2b799a3c6c670275a54aca7e500c2dfdff5521e9986b55638835f6625299d20706be6e3ebbf0123d4d95daff5f56f4da025ae553859ca113da
7
+ data.tar.gz: f03c73904c65ccd3f2b93c5c690ae3494b28be7b02f020018cd7304a5b7db0ef348b4c1355d60e8ede16f108477d6c67b3e9bee378d7d72ba10c4790a181a3bf
data/README.md CHANGED
@@ -1,4 +1,13 @@
1
+ # Instalation
2
+ ```
3
+ gem install basic_api_client
4
+ ```
5
+
6
+ # Usage
7
+
1
8
  ```ruby
9
+ require 'basic_api_client'
10
+
2
11
  client = BasicApiClient.new("user.cn", "userpassword", "http://example.com", "/api/v1/auth/sign_in")
3
12
 
4
13
  client.authorize
@@ -5,6 +5,7 @@ class BasicApiClient
5
5
  AUTH_HEADERS = %w{ access-token token-type uid expiry client }.sort
6
6
 
7
7
  attr_reader :headers
8
+ attr_accessor :last_response
8
9
 
9
10
  def initialize(cn, password, site, auth_url)
10
11
  @cn = cn
@@ -13,6 +14,10 @@ class BasicApiClient
13
14
  @auth_url = auth_url
14
15
  end
15
16
 
17
+ def headers
18
+ @headers ||= {}
19
+ end
20
+
16
21
  def conn
17
22
  @conn ||= begin
18
23
  Faraday.new(url: @site) do |faraday|
@@ -34,20 +39,24 @@ class BasicApiClient
34
39
  end
35
40
 
36
41
  def get(url, params = {})
42
+ authorize unless auth_headers?
43
+
37
44
  res = conn.get do |req|
38
45
  req.url url
39
46
  req.params = params.merge(req.params)
40
- req.headers = @headers
47
+ req.headers = headers
41
48
  end
42
49
 
43
50
  handle_response(res)
44
51
  end
45
52
 
46
53
  def post(url, params = {})
54
+ authorize unless auth_headers?
55
+
47
56
  res = conn.post do |req|
48
57
  req.url url
49
58
  req.params = params.merge(req.params)
50
- req.headers = @headers
59
+ req.headers = headers
51
60
  end
52
61
 
53
62
  handle_response(res)
@@ -55,11 +64,17 @@ class BasicApiClient
55
64
 
56
65
  private
57
66
  def handle_response(res)
67
+ self.last_response = res
58
68
  if res.success?
59
69
  @headers = res.headers.select { |k, v| AUTH_HEADERS.include?(k) }
70
+ JSON.parse(res.body)
60
71
  else
61
72
  @headers = {}
73
+ false
62
74
  end
63
- JSON.parse(res.body) if @headers.keys.sort == AUTH_HEADERS
75
+ end
76
+
77
+ def auth_headers?
78
+ headers.keys.sort == AUTH_HEADERS
64
79
  end
65
80
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: basic_api_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - jphager2