basic_api_client 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
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