quick_book_gateway 0.0.1 → 0.0.2
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 +4 -4
- data/README +83 -0
- data/lib/gateway/quickbook.rb +5 -5
- data/lib/quick_book_gateway.rb +11 -4
- data/lib/service/finder.rb +1 -1
- data/lib/service/record.rb +1 -1
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3c8d6f892535dd7bd3d268c41b800805c5127a3b
|
4
|
+
data.tar.gz: 33ceb4988781d01fe856a0d034c5d5807cf51b74
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fdedd1f3a31a592b01c8df6c127249613259d388c5a1cd76e3b187136cb43a095c6b2fd9ca4c6a6e528d23f71ebdafa0abfb88bfaf6e63b6658a042b624ccd45
|
7
|
+
data.tar.gz: e10c5855b3006c6a4b25b1132823ef382e458bdba28f9b9a9b98934f0f82ce6a59ab20394b1c6ffc71e085538a2ca29dfb5243591cd97bc9b62d2e28fa366e72
|
data/README
ADDED
@@ -0,0 +1,83 @@
|
|
1
|
+
## Requirements
|
2
|
+
|
3
|
+
* Ruby >= 0
|
4
|
+
* OAuth
|
5
|
+
* Quickbook tokens
|
6
|
+
|
7
|
+
|
8
|
+
## Installation
|
9
|
+
|
10
|
+
* Execute below command
|
11
|
+
gem install quick_book_gateway
|
12
|
+
|
13
|
+
## How to use
|
14
|
+
|
15
|
+
1. Add line to your ruby program
|
16
|
+
|
17
|
+
require 'quick_book_gateway'
|
18
|
+
|
19
|
+
|
20
|
+
2. Configure Quickbook by adding below line to your ruby program
|
21
|
+
|
22
|
+
Gateway::Quickbook.connect(
|
23
|
+
:qb_key => Quickbook Key,
|
24
|
+
:qb_secret => Quickbook Secret,
|
25
|
+
:token => Access Token,
|
26
|
+
:secret => Access Sceret,
|
27
|
+
:company_id => Quickbook Company ID,
|
28
|
+
:environment => ENVIRONMENT::SANDBOX or ENVIRONMENT::PRODUCTION
|
29
|
+
)
|
30
|
+
|
31
|
+
3. Create classes with names provided on Quickbook website
|
32
|
+
|
33
|
+
https://developer.intuit.com/v2/apiexplorer?apiname=V3QBO
|
34
|
+
|
35
|
+
For ex. Account, Customer, Vendor, Invoice, Item, etc
|
36
|
+
|
37
|
+
|
38
|
+
4. Inherit all classes with Service::Record Class, class should look like below
|
39
|
+
|
40
|
+
class Customer < Service::Record
|
41
|
+
end
|
42
|
+
|
43
|
+
class Vendor < Service::Record
|
44
|
+
end
|
45
|
+
|
46
|
+
class Item < Service::Record
|
47
|
+
end
|
48
|
+
|
49
|
+
5. You are ready to create, fetch or modify any data on Quickbook.
|
50
|
+
|
51
|
+
For ex.
|
52
|
+
Customer.find(DisplayName: "Kunal")
|
53
|
+
customer.CompanyName = "Kunal Lalge"
|
54
|
+
customer.save!
|
55
|
+
|
56
|
+
6. For attributes reference read Documentation reference for each class on Quickbook link provided above.
|
57
|
+
|
58
|
+
For ex. https://developer.intuit.com/docs/api/accounting/customer
|
59
|
+
|
60
|
+
7. One can also use callbacks, below are list of callbacks:
|
61
|
+
|
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
|
70
|
+
|
71
|
+
Ex.
|
72
|
+
class Customer < Service::Record
|
73
|
+
def after_create
|
74
|
+
puts "New customer is created on QB"
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
79
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
80
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
|
81
|
+
AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
82
|
+
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
83
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/lib/gateway/quickbook.rb
CHANGED
@@ -32,11 +32,11 @@ 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
|
-
# :qb_key => QuickBook Key
|
36
|
-
# :qb_secret => QuickBook Secret
|
37
|
-
# :token => Access Token
|
38
|
-
# :secret => Access Sceret
|
39
|
-
# :company_id => QuickBook Company ID
|
35
|
+
# :qb_key => QuickBook Key,
|
36
|
+
# :qb_secret => QuickBook Secret,
|
37
|
+
# :token => Access Token,
|
38
|
+
# :secret => Access Sceret,
|
39
|
+
# :company_id => QuickBook Company ID,
|
40
40
|
# :environment => ENVIRONMENT::SANDBOX or ENVIRONMENT::PRODUCTION
|
41
41
|
def self.connect(options)
|
42
42
|
if(options.class == String)
|
data/lib/quick_book_gateway.rb
CHANGED
@@ -13,12 +13,19 @@ require 'service/callback'
|
|
13
13
|
require 'service/persistence'
|
14
14
|
require 'service/record'
|
15
15
|
|
16
|
-
Dir.glob("app/services/*.rb") do|service|
|
17
|
-
require "./#{service}"
|
18
|
-
end
|
19
|
-
|
20
16
|
Dir.glob("quick_book_lib/*.rb") do|library|
|
21
17
|
require "./#{library}"
|
22
18
|
end if(File.exists?("quick_book_lib"))
|
23
19
|
|
20
|
+
service_failed = []
|
21
|
+
Dir.glob("app/services/*.rb") do|service|
|
22
|
+
begin
|
23
|
+
service_failed << service unless require "./#{service}"
|
24
|
+
rescue
|
25
|
+
service_failed << service
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
service_failed.each{|service| require "./#{service}"}
|
30
|
+
|
24
31
|
Gateway::Quickbook.connect(Gateway::Quickbook::ENVIRONMENT::SANDBOX) if File.exist?("./config/quickbook.yml")
|
data/lib/service/finder.rb
CHANGED
@@ -47,7 +47,7 @@ module Service
|
|
47
47
|
#Try to find record on QuickBook Online as per options provided else create instance of new
|
48
48
|
#Options should be an Hash contains columns and values to find record.
|
49
49
|
# For ex. if you want to update customer(Kunal) country to India if exist or create new:
|
50
|
-
# kunal = Customer.find_or_initialize({"DisplayName" => "Kunal")
|
50
|
+
# kunal = Customer.find_or_initialize({"DisplayName" => "Kunal"})
|
51
51
|
# kunal.Country = "India"
|
52
52
|
# kunal.save!
|
53
53
|
def find_or_initialize(options)
|
data/lib/service/record.rb
CHANGED
@@ -3,10 +3,10 @@ module Service
|
|
3
3
|
#QuickBook API documentation https://developer.intuit.com/v2/apiexplorer?apiname=V3QBO
|
4
4
|
class Record
|
5
5
|
@@quickbook_gateway
|
6
|
-
@@entity
|
7
6
|
|
8
7
|
extend Service::Finder
|
9
8
|
include Service::Persistence
|
9
|
+
include Errors
|
10
10
|
|
11
11
|
attr_accessor :attributes, :is_new_record
|
12
12
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: quick_book_gateway
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kunal Lalge
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-12-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: oauth
|
@@ -24,12 +24,14 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
|
-
description: Connect to QuickBook Online and easily synchronize data.
|
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.2/README '
|
28
29
|
email: kunallalge@gmail.com
|
29
30
|
executables: []
|
30
31
|
extensions: []
|
31
32
|
extra_rdoc_files: []
|
32
33
|
files:
|
34
|
+
- README
|
33
35
|
- lib/core_ext/hash.rb
|
34
36
|
- lib/core_ext/nil.rb
|
35
37
|
- lib/core_ext/string.rb
|