lightspeed_ruby 0.1.0 → 0.1.1

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