lightspeed_ruby 0.1.0 → 0.1.1

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
  SHA1:
3
- metadata.gz: bb73850a7dfd9337bd22ce0609dcfbc2b482f232
4
- data.tar.gz: 6b0327a2b46737df57ff952e245c9db56833e4a3
3
+ metadata.gz: 349fe8c0c0f68955dfc6e54801916910df7c9098
4
+ data.tar.gz: 8d28c61943ea866d23c14bf3da9aa10ba5e8597c
5
5
  SHA512:
6
- metadata.gz: 1c61c2208c394eb4df6853176f4ecffe9e8feaa0dfc8adb82ae177839e0bf8261c29c090e319a62958cdfb30d7f9cd5018063351fd4bd44dbebe18dda75ad590
7
- data.tar.gz: d98b41a562fafc0a82de27e3d5da119cc27f6dc4208cfa233bd07f0b85fa37683c598d71e6532f0342377c0b95fdeea9bf9b7f969a853d9a559a37d8339e310a
6
+ metadata.gz: d5e4ab3fee51315e0eafb97e8987d7fd47a079022f60976af0858c3a0579efc6abc98d3fb04c836a665b785b277ec626276ab2484864e561d925680cd5cc49fc
7
+ data.tar.gz: 56e93f4e5d04aae855e1ebd284196c2a6ae4a5d13481f5487f33e944d5787d115c4eac8ff6fa68f38954fc0fe38abb2d4b8771f5a63acc673a648d1d09208b40
@@ -0,0 +1,66 @@
1
+ inherit_from: .rubocop_todo.yml
2
+ AllCops:
3
+ Include:
4
+ - "**/Rakefile"
5
+ - "**/config.ru"
6
+ Exclude:
7
+ - "db/**/*"
8
+ - "config/**/*"
9
+ - "script/**/*"
10
+ - "bin/**/*"
11
+ - "vendor/**/*"
12
+ - "node_modules/**/*"
13
+ - "Gemfile"
14
+ TargetRubyVersion: 2.3
15
+
16
+ Metrics/LineLength:
17
+ Enabled: false
18
+
19
+ Layout/AlignParameters:
20
+ EnforcedStyle: with_fixed_indentation
21
+
22
+ Style/ClassAndModuleChildren:
23
+ Enabled: false
24
+
25
+ Style/Documentation:
26
+ Enabled: false
27
+
28
+ Layout/DotPosition:
29
+ EnforcedStyle: trailing
30
+
31
+ Style/IfUnlessModifier:
32
+ Enabled: false
33
+
34
+ Style/PredicateName:
35
+ NamePrefixBlacklist:
36
+ - is_
37
+ - have_
38
+
39
+ Style/StringLiterals:
40
+ EnforcedStyle: double_quotes
41
+
42
+ Style/NumericLiterals:
43
+ Enabled: false
44
+
45
+ Style/SingleLineBlockParams:
46
+ Enabled: false
47
+
48
+ Layout/MultilineOperationIndentation:
49
+ EnforcedStyle: indented
50
+
51
+ Layout/MultilineMethodCallIndentation:
52
+ EnforcedStyle: indented
53
+
54
+ Style/TrailingCommaInArguments:
55
+ EnforcedStyleForMultiline: comma
56
+
57
+ Style/TrailingCommaInLiteral:
58
+ EnforcedStyleForMultiline: comma
59
+
60
+ Style/FrozenStringLiteralComment:
61
+ Enabled: false
62
+
63
+ Metrics/BlockLength:
64
+ Exclude:
65
+ - spec/**/*.rb
66
+
@@ -1,5 +1,3 @@
1
1
  require "lightspeed/version"
2
+ require "lightspeed/client"
2
3
 
3
- module Lightspeed
4
- # Your code goes here...
5
- end
@@ -0,0 +1,31 @@
1
+ require "lightspeed/errors/missing_refresh_token"
2
+
3
+ module Lightspeed
4
+ module API
5
+ class Tokens
6
+ REFRESH_TOKEN_URL = "https://cloud.merchantos.com/oauth/access_token.php"
7
+
8
+ def initialize(client)
9
+ @client = client
10
+ end
11
+
12
+ def refresh
13
+ raise Lightspeed::Errors::MissingRefreshToken unless client.refresh_token
14
+
15
+ response = Faraday.post(
16
+ REFRESH_TOKEN_URL,
17
+ refresh_token: client.refresh_token,
18
+ client_id: client.client_id,
19
+ client_secret: client.client_secret,
20
+ grant_type: "refresh_token",
21
+ )
22
+
23
+ JSON.parse(response.body)
24
+ end
25
+
26
+ private
27
+
28
+ attr_reader :client
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,18 @@
1
+ require "lightspeed/api/tokens"
2
+
3
+ module Lightspeed
4
+ class Client
5
+ API_BASE = "https://api.merchantos.com/API"
6
+
7
+ attr_reader :client_id, :client_secret, :access_token, :refresh_token
8
+
9
+ def initialize(client_id:, client_secret:, access_token:, refresh_token:)
10
+ @client_id = client_id
11
+ @client_secret = client_secret
12
+ @access_token = access_token
13
+ @refresh_token = refresh_token
14
+ end
15
+
16
+ def tokens; API::Tokens.new(self); end
17
+ end
18
+ end
@@ -0,0 +1,5 @@
1
+ module Lightspeed
2
+ module Errors
3
+ class MissingRefreshToken < StandardError; end
4
+ end
5
+ end
@@ -1,3 +1,3 @@
1
1
  module Lightspeed
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
@@ -24,4 +24,6 @@ Gem::Specification.new do |spec|
24
24
  spec.add_development_dependency "bundler", "~> 1.14"
25
25
  spec.add_development_dependency "rake", "~> 10.0"
26
26
  spec.add_development_dependency "minitest", "~> 5.0"
27
+
28
+ spec.add_dependency "faraday", "~> 0.12"
27
29
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lightspeed_ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Zamith
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '5.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: faraday
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0.12'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '0.12'
55
69
  description: Wrapper gem for the Lightspeed POS API
56
70
  email:
57
71
  - zamith@subvisual.co
@@ -60,6 +74,7 @@ extensions: []
60
74
  extra_rdoc_files: []
61
75
  files:
62
76
  - ".gitignore"
77
+ - ".rubocop.yml"
63
78
  - ".travis.yml"
64
79
  - Gemfile
65
80
  - LICENSE.txt
@@ -68,6 +83,9 @@ files:
68
83
  - bin/console
69
84
  - bin/setup
70
85
  - lib/lightspeed.rb
86
+ - lib/lightspeed/api/tokens.rb
87
+ - lib/lightspeed/client.rb
88
+ - lib/lightspeed/errors/missing_refresh_token.rb
71
89
  - lib/lightspeed/version.rb
72
90
  - lightspeed.gemspec
73
91
  homepage: https://github.com/ZincPlatform/lightspeed