wenmar 0.8.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.
- checksums.yaml +7 -0
- data/LICENSE +21 -0
- data/README.md +162 -0
- data/lib/wenmar/auth.rb +98 -0
- data/lib/wenmar/client.rb +222 -0
- data/lib/wenmar/config.rb +34 -0
- data/lib/wenmar/credentials.rb +124 -0
- data/lib/wenmar/error.rb +108 -0
- data/lib/wenmar/oauth.rb +53 -0
- data/lib/wenmar/pagination.rb +90 -0
- data/lib/wenmar/resources.rb +2588 -0
- data/lib/wenmar/token.rb +54 -0
- data/lib/wenmar/version.rb +5 -0
- data/lib/wenmar.rb +15 -0
- metadata +97 -0
data/lib/wenmar/token.rb
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "time"
|
|
4
|
+
|
|
5
|
+
module Wenmar
|
|
6
|
+
class Token
|
|
7
|
+
attr_reader :access_token, :refresh_token, :expires_at, :token_type
|
|
8
|
+
|
|
9
|
+
def initialize(access_token:, refresh_token: nil, expires_at: nil, token_type: "Bearer")
|
|
10
|
+
@access_token = access_token
|
|
11
|
+
@refresh_token = refresh_token
|
|
12
|
+
@expires_at = expires_at
|
|
13
|
+
@token_type = token_type
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def expired?
|
|
17
|
+
@expires_at && @expires_at < Time.now
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def will_expire_within?(seconds)
|
|
21
|
+
@expires_at && Time.now + seconds > @expires_at
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def to_h
|
|
25
|
+
hash = {"access_token" => @access_token, "token_type" => @token_type}
|
|
26
|
+
hash["refresh_token"] = @refresh_token if @refresh_token
|
|
27
|
+
hash["expires_at"] = @expires_at.utc.iso8601 if @expires_at
|
|
28
|
+
hash
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def self.from_h(hash)
|
|
32
|
+
hash ||= {}
|
|
33
|
+
hash = hash.transform_keys(&:to_s)
|
|
34
|
+
access_token = hash["access_token"]
|
|
35
|
+
raise TokenError, "token hash missing access_token" if access_token.nil? || access_token.empty?
|
|
36
|
+
|
|
37
|
+
expires_at = hash["expires_at"]
|
|
38
|
+
expires_at = parse_time(expires_at) if expires_at.is_a?(String)
|
|
39
|
+
new(
|
|
40
|
+
access_token: access_token,
|
|
41
|
+
refresh_token: hash["refresh_token"],
|
|
42
|
+
expires_at: expires_at,
|
|
43
|
+
token_type: hash.fetch("token_type", "Bearer")
|
|
44
|
+
)
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def self.parse_time(value)
|
|
48
|
+
Time.parse(value)
|
|
49
|
+
rescue ArgumentError
|
|
50
|
+
raise TokenError, "invalid expires_at: #{value.inspect}"
|
|
51
|
+
end
|
|
52
|
+
private_class_method :parse_time
|
|
53
|
+
end
|
|
54
|
+
end
|
data/lib/wenmar.rb
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "wenmar/version"
|
|
4
|
+
require_relative "wenmar/error"
|
|
5
|
+
require_relative "wenmar/token"
|
|
6
|
+
require_relative "wenmar/oauth"
|
|
7
|
+
require_relative "wenmar/auth"
|
|
8
|
+
require_relative "wenmar/credentials"
|
|
9
|
+
require_relative "wenmar/config"
|
|
10
|
+
require_relative "wenmar/pagination"
|
|
11
|
+
require_relative "wenmar/client"
|
|
12
|
+
require_relative "wenmar/resources"
|
|
13
|
+
|
|
14
|
+
module Wenmar
|
|
15
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: wenmar
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.8.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Ben D'Angelo
|
|
8
|
+
bindir: bin
|
|
9
|
+
cert_chain: []
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
|
+
dependencies:
|
|
12
|
+
- !ruby/object:Gem::Dependency
|
|
13
|
+
name: faraday
|
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
|
15
|
+
requirements:
|
|
16
|
+
- - "~>"
|
|
17
|
+
- !ruby/object:Gem::Version
|
|
18
|
+
version: '2.0'
|
|
19
|
+
type: :runtime
|
|
20
|
+
prerelease: false
|
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
22
|
+
requirements:
|
|
23
|
+
- - "~>"
|
|
24
|
+
- !ruby/object:Gem::Version
|
|
25
|
+
version: '2.0'
|
|
26
|
+
- !ruby/object:Gem::Dependency
|
|
27
|
+
name: faraday-retry
|
|
28
|
+
requirement: !ruby/object:Gem::Requirement
|
|
29
|
+
requirements:
|
|
30
|
+
- - "~>"
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '2.0'
|
|
33
|
+
type: :runtime
|
|
34
|
+
prerelease: false
|
|
35
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
36
|
+
requirements:
|
|
37
|
+
- - "~>"
|
|
38
|
+
- !ruby/object:Gem::Version
|
|
39
|
+
version: '2.0'
|
|
40
|
+
- !ruby/object:Gem::Dependency
|
|
41
|
+
name: ruby-keychain
|
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
|
43
|
+
requirements:
|
|
44
|
+
- - "~>"
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: '0.3'
|
|
47
|
+
type: :development
|
|
48
|
+
prerelease: false
|
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
50
|
+
requirements:
|
|
51
|
+
- - "~>"
|
|
52
|
+
- !ruby/object:Gem::Version
|
|
53
|
+
version: '0.3'
|
|
54
|
+
description: Idiomatic Ruby client for the Wenmar Pro automotive shop management API.
|
|
55
|
+
email:
|
|
56
|
+
- ben@wenmarpro.com
|
|
57
|
+
executables: []
|
|
58
|
+
extensions: []
|
|
59
|
+
extra_rdoc_files: []
|
|
60
|
+
files:
|
|
61
|
+
- LICENSE
|
|
62
|
+
- README.md
|
|
63
|
+
- lib/wenmar.rb
|
|
64
|
+
- lib/wenmar/auth.rb
|
|
65
|
+
- lib/wenmar/client.rb
|
|
66
|
+
- lib/wenmar/config.rb
|
|
67
|
+
- lib/wenmar/credentials.rb
|
|
68
|
+
- lib/wenmar/error.rb
|
|
69
|
+
- lib/wenmar/oauth.rb
|
|
70
|
+
- lib/wenmar/pagination.rb
|
|
71
|
+
- lib/wenmar/resources.rb
|
|
72
|
+
- lib/wenmar/token.rb
|
|
73
|
+
- lib/wenmar/version.rb
|
|
74
|
+
homepage: https://github.com/wenmar-pro/wenmar-sdk
|
|
75
|
+
licenses:
|
|
76
|
+
- MIT
|
|
77
|
+
metadata:
|
|
78
|
+
source_code_uri: https://github.com/wenmar-pro/wenmar-sdk
|
|
79
|
+
changelog_uri: https://github.com/wenmar-pro/wenmar-sdk/blob/main/MIGRATING.md
|
|
80
|
+
rdoc_options: []
|
|
81
|
+
require_paths:
|
|
82
|
+
- lib
|
|
83
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
84
|
+
requirements:
|
|
85
|
+
- - ">="
|
|
86
|
+
- !ruby/object:Gem::Version
|
|
87
|
+
version: 3.1.0
|
|
88
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
89
|
+
requirements:
|
|
90
|
+
- - ">="
|
|
91
|
+
- !ruby/object:Gem::Version
|
|
92
|
+
version: '0'
|
|
93
|
+
requirements: []
|
|
94
|
+
rubygems_version: 4.0.18
|
|
95
|
+
specification_version: 4
|
|
96
|
+
summary: Ruby SDK for the Wenmar Pro API
|
|
97
|
+
test_files: []
|