quick_book_gateway 0.0.4 → 0.0.7
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/README +28 -34
- data/lib/gateway/quickbook.rb +14 -21
- data/lib/gateway/result.rb +1 -1
- data/lib/service/finder.rb +1 -0
- metadata +21 -26
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 40de0d4b980aae3a0595197f6428558780babf934ee6099ff6329402889a674c
|
4
|
+
data.tar.gz: 4a3500f27e7926a2228f7f9cea979e7fa9b39499285fa158196378faa9e1cce8
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: d5541aff318047474721bd540daa4b35961a93970344bc9fd08939d2bc92cf1ad523e02480a5817aa8e4fb19da4091fd4af7573d10529c16c0f218dd8b320d80
|
7
|
+
data.tar.gz: fa9c338cbc688398cbc7ca9d66c9f8b14fae2e09bfd20666bb925958bacef78b365892acd749d0b9ea641ec3ae86c464e5f88dcc2a21e3e6a39208d0a51696d7
|
data/README
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
## Requirements
|
2
2
|
|
3
3
|
* Ruby >= 0
|
4
|
-
*
|
5
|
-
* Quickbook
|
4
|
+
* OAuth2
|
5
|
+
* Quickbook refresh token, can generate via Quickbook playground https://developer.intuit.com/app/developer/playground
|
6
6
|
|
7
7
|
|
8
8
|
## Installation
|
@@ -19,13 +19,12 @@
|
|
19
19
|
|
20
20
|
2. Configure Quickbook by adding below line to your ruby program
|
21
21
|
|
22
|
-
|
23
|
-
:
|
24
|
-
:
|
25
|
-
:
|
26
|
-
:
|
27
|
-
:
|
28
|
-
:environment => ENVIRONMENT::SANDBOX or ENVIRONMENT::PRODUCTION
|
22
|
+
Gateway::Quickbook.connect(
|
23
|
+
:client_id => QuickBook App Client ID,
|
24
|
+
:client_secret => QuickBook App Client Secret,
|
25
|
+
:refresh_token => Can generate from playground https://developer.intuit.com/app/developer/playground, validate for 100 days
|
26
|
+
:company_id => QuickBook Company ID,
|
27
|
+
:environment => ENVIRONMENT::SANDBOX or ENVIRONMENT::PRODUCTION
|
29
28
|
)
|
30
29
|
|
31
30
|
3. Create classes with names provided on Quickbook website
|
@@ -37,22 +36,22 @@
|
|
37
36
|
|
38
37
|
4. Inherit all classes with Service::Record Class, class should look like below
|
39
38
|
|
40
|
-
|
41
|
-
|
39
|
+
class Customer < Service::Record
|
40
|
+
end
|
42
41
|
|
43
|
-
|
44
|
-
|
42
|
+
class Vendor < Service::Record
|
43
|
+
end
|
45
44
|
|
46
|
-
|
47
|
-
|
45
|
+
class Item < Service::Record
|
46
|
+
end
|
48
47
|
|
49
48
|
5. You are ready to create, fetch or modify any data on Quickbook.
|
50
49
|
|
51
50
|
For ex.
|
52
51
|
|
53
|
-
|
54
|
-
|
55
|
-
|
52
|
+
customer = Customer.find(DisplayName: "Kunal")
|
53
|
+
customer.CompanyName = "Kunal Lalge"
|
54
|
+
customer.save!
|
56
55
|
|
57
56
|
6. For attributes reference read Documentation reference for each class on Quickbook link provided above.
|
58
57
|
|
@@ -60,24 +59,17 @@
|
|
60
59
|
|
61
60
|
7. One can also use callbacks, below are list of callbacks:
|
62
61
|
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
62
|
+
before_save - Executes every time before object save
|
63
|
+
after_save - Executes every time after object save
|
64
|
+
before_create - Executes only before new object save
|
65
|
+
after_create - Executes only after new object save
|
66
|
+
before_update - Executes only before existing object save
|
67
|
+
after_update - Executes only after existing object save
|
68
|
+
before_destroy - Executes every time before destroy an object
|
69
|
+
after_destroy - Executes every time after destroy an object
|
67
70
|
|
68
|
-
|
71
|
+
Example
|
69
72
|
|
70
|
-
after_create - Executes only after new object save
|
71
|
-
|
72
|
-
before_update - Executes only before existing object save
|
73
|
-
|
74
|
-
after_update - Executes only after existing object save
|
75
|
-
|
76
|
-
before_destroy - Executes every time before destroy an object
|
77
|
-
|
78
|
-
after_destroy - Executes every time after destroy an object
|
79
|
-
|
80
|
-
Ex.
|
81
73
|
class Customer < Service::Record
|
82
74
|
def after_create
|
83
75
|
puts "New customer is created on QB"
|
@@ -89,6 +81,8 @@
|
|
89
81
|
|
90
82
|
0.0.4 - find_all will fetch all records using pagination
|
91
83
|
|
84
|
+
0.0.5 - Quickbook OAuth 2.0 security upgradation implemented
|
85
|
+
|
92
86
|
|
93
87
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
94
88
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
data/lib/gateway/quickbook.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require '
|
1
|
+
require 'oauth2'
|
2
2
|
|
3
3
|
module Gateway
|
4
4
|
class Quickbook < Result
|
@@ -32,34 +32,27 @@ module Gateway
|
|
32
32
|
#Options are as follow
|
33
33
|
# String: Environment ENVIRONMENT::SANDBOX or ENVIRONMENT::PRODUCTION. AutoLoad QuickBook key, secret, access token, access secret, company ID from config/quickbook.yml corresponding to environment given.
|
34
34
|
# Hash:
|
35
|
-
# :
|
36
|
-
# :
|
37
|
-
# :
|
38
|
-
# :
|
39
|
-
# :
|
40
|
-
# :environment => ENVIRONMENT::SANDBOX or ENVIRONMENT::PRODUCTION
|
35
|
+
# :client_id => QuickBook App Client ID,
|
36
|
+
# :client_secret => QuickBook App Client Secret,
|
37
|
+
# :refresh_token => Can generate from playground https://developer.intuit.com/app/developer/playground, validate for 100 days
|
38
|
+
# :company_id => QuickBook Company ID,
|
39
|
+
# :environment => ENVIRONMENT::SANDBOX or ENVIRONMENT::PRODUCTION
|
41
40
|
def self.connect(options)
|
42
41
|
if(options.class == String)
|
43
42
|
configuration = YAML.load_file("config/quickbook.yml")
|
44
43
|
environment = options
|
45
44
|
options = Hash.new
|
46
|
-
options[:
|
47
|
-
options[:
|
48
|
-
options[:
|
49
|
-
options[:secret] = configuration[environment]["access_secret"]
|
45
|
+
options[:client_id] = configuration[environment]["client_id"]
|
46
|
+
options[:client_secret] = configuration[environment]["client_secret"]
|
47
|
+
options[:refresh_token] = configuration[environment]["refresh_token"]
|
50
48
|
options[:company_id] = configuration[environment]["company_id"]
|
51
49
|
options[:environment] = environment
|
52
50
|
end
|
53
51
|
|
54
52
|
gateway = new
|
55
|
-
gateway.consumer =
|
56
|
-
|
57
|
-
|
58
|
-
:authorize_url => "https://appcenter.intuit.com/Connect/Begin",
|
59
|
-
:access_token_path => "/oauth/v1/get_access_token"
|
60
|
-
})
|
61
|
-
|
62
|
-
gateway.access_token = OAuth::AccessToken.new(gateway.consumer, options[:token], options[:secret])
|
53
|
+
gateway.consumer = OAuth2::Client.new(options[:client_id], options[:client_secret], {:token_url => 'https://oauth.platform.intuit.com/oauth2/v1/tokens/bearer', auth_scheme: :basic_auth})
|
54
|
+
gateway.access_token = OAuth2::AccessToken.new(gateway.consumer, nil, {refresh_token: options[:refresh_token]})
|
55
|
+
gateway.access_token = gateway.access_token.refresh!
|
63
56
|
|
64
57
|
gateway.company_id = options[:company_id]
|
65
58
|
|
@@ -81,7 +74,7 @@ module Gateway
|
|
81
74
|
|
82
75
|
public
|
83
76
|
def get(path, parameters = {})
|
84
|
-
return handle_query_result(self.access_token.get(url(path, parameters), {"Accept" => HTTP::JSON}))
|
77
|
+
return handle_query_result(self.access_token.get(url(path, parameters), {headers: {"Accept" => HTTP::JSON}}))
|
85
78
|
end
|
86
79
|
|
87
80
|
def query_data(query)
|
@@ -89,7 +82,7 @@ module Gateway
|
|
89
82
|
end
|
90
83
|
|
91
84
|
def post(path, parameters, body)
|
92
|
-
return handle_query_result(self.access_token.post(url(path, parameters), body,
|
85
|
+
return handle_query_result(self.access_token.post(url(path, parameters), {body: body, headers: {"Content-Type" => HTTP::JSON, "Accept" => HTTP::JSON}}))
|
93
86
|
end
|
94
87
|
end
|
95
88
|
end
|
data/lib/gateway/result.rb
CHANGED
data/lib/service/finder.rb
CHANGED
metadata
CHANGED
@@ -1,74 +1,69 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: quick_book_gateway
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.7
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Kunal Lalge
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2020-02-12 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
|
-
name:
|
14
|
+
name: oauth2
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- - ~>
|
17
|
+
- - "~>"
|
20
18
|
- !ruby/object:Gem::Version
|
21
|
-
version: '
|
19
|
+
version: '1'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- - ~>
|
24
|
+
- - "~>"
|
28
25
|
- !ruby/object:Gem::Version
|
29
|
-
version: '
|
30
|
-
description:
|
31
|
-
README file to know how to use located at gems-directory/quick_book_gateway-0.0.
|
26
|
+
version: '1'
|
27
|
+
description: 'Connect to QuickBook Online and easily synchronize data. Please read
|
28
|
+
README file to know how to use located at gems-directory/quick_book_gateway-0.0.7/README '
|
32
29
|
email: kunallalge@gmail.com
|
33
30
|
executables: []
|
34
31
|
extensions: []
|
35
32
|
extra_rdoc_files: []
|
36
33
|
files:
|
37
|
-
-
|
38
|
-
- lib/errors.rb
|
39
|
-
- lib/core_ext/string.rb
|
34
|
+
- README
|
40
35
|
- lib/core_ext/hash.rb
|
41
36
|
- lib/core_ext/nil.rb
|
37
|
+
- lib/core_ext/string.rb
|
38
|
+
- lib/errors.rb
|
42
39
|
- lib/gateway/quickbook.rb
|
43
40
|
- lib/gateway/result.rb
|
44
|
-
- lib/
|
45
|
-
- lib/service/finder.rb
|
41
|
+
- lib/quick_book_gateway.rb
|
46
42
|
- lib/service/callback.rb
|
43
|
+
- lib/service/finder.rb
|
47
44
|
- lib/service/persistence.rb
|
45
|
+
- lib/service/query.rb
|
48
46
|
- lib/service/record.rb
|
49
|
-
|
50
|
-
homepage: https://rubygems.org/gems/quick_book_gateway
|
47
|
+
homepage: https://github.com/KunalLalge/quick_book_gateway
|
51
48
|
licenses: []
|
49
|
+
metadata: {}
|
52
50
|
post_install_message:
|
53
51
|
rdoc_options: []
|
54
52
|
require_paths:
|
55
53
|
- lib
|
56
54
|
required_ruby_version: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
55
|
requirements:
|
59
|
-
- -
|
56
|
+
- - ">="
|
60
57
|
- !ruby/object:Gem::Version
|
61
58
|
version: '0'
|
62
59
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
63
|
-
none: false
|
64
60
|
requirements:
|
65
|
-
- -
|
61
|
+
- - ">="
|
66
62
|
- !ruby/object:Gem::Version
|
67
63
|
version: '0'
|
68
64
|
requirements: []
|
69
|
-
|
70
|
-
rubygems_version: 1.8.24
|
65
|
+
rubygems_version: 3.1.2
|
71
66
|
signing_key:
|
72
|
-
specification_version:
|
67
|
+
specification_version: 4
|
73
68
|
summary: QuickBook Online Gateway
|
74
69
|
test_files: []
|