tosuto 0.3.0 → 0.4.3
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/Gemfile +2 -0
- data/Gemfile.lock +14 -4
- data/lib/tosuto/api.rb +1 -1
- data/lib/tosuto/applied_tax_rate.rb +9 -1
- data/lib/tosuto/check.rb +25 -5
- data/lib/tosuto/curbside_pickup_info.rb +19 -0
- data/lib/tosuto/dining_option.rb +21 -4
- data/lib/tosuto/menu_item_selection.rb +24 -5
- data/lib/tosuto/oauth_token.rb +13 -11
- data/lib/tosuto/order.rb +33 -7
- data/lib/tosuto/version.rb +1 -1
- data/tosuto.gemspec +1 -1
- metadata +9 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 65961f5a798b7c01bde52c6c3b02ae75fecefde2912342750e6bca9394c360d4
|
4
|
+
data.tar.gz: be149610b9018f33844d7bb2680d2bb50300f07dde80f37d531dcc75b31f857b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 63e1239cdb08e468a1652c5e6c99d7f2c58fb44c57485cca6b8c98927b70c4a2b6f0c97df859e811cf464324c99da4b360ca785191038967e310937929739165
|
7
|
+
data.tar.gz: f67c396d70b53d5e3984642ae42b25d5da4868f0576cfef5628cbc76598c4fe2f5802a157580297147b25e35d1eee44caa11996c0a679a4ec5031414472722f7
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,13 +1,22 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
tosuto (0.3
|
4
|
+
tosuto (0.4.3)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
8
8
|
specs:
|
9
|
+
byebug (11.1.3)
|
10
|
+
coderay (1.1.3)
|
9
11
|
diff-lcs (1.3)
|
10
|
-
|
12
|
+
method_source (1.0.0)
|
13
|
+
pry (0.13.1)
|
14
|
+
coderay (~> 1.1)
|
15
|
+
method_source (~> 1.0)
|
16
|
+
pry-byebug (3.9.0)
|
17
|
+
byebug (~> 11.0)
|
18
|
+
pry (~> 0.13.0)
|
19
|
+
rake (13.0.1)
|
11
20
|
rspec (3.9.0)
|
12
21
|
rspec-core (~> 3.9.0)
|
13
22
|
rspec-expectations (~> 3.9.0)
|
@@ -27,9 +36,10 @@ PLATFORMS
|
|
27
36
|
|
28
37
|
DEPENDENCIES
|
29
38
|
bundler (~> 2.0)
|
30
|
-
|
39
|
+
pry-byebug
|
40
|
+
rake (~> 13.0)
|
31
41
|
rspec (~> 3.0)
|
32
42
|
tosuto!
|
33
43
|
|
34
44
|
BUNDLED WITH
|
35
|
-
2.
|
45
|
+
2.2.28
|
data/lib/tosuto/api.rb
CHANGED
@@ -1,6 +1,14 @@
|
|
1
1
|
module Tosuto
|
2
2
|
class AppliedTaxRate < Resource
|
3
|
-
attr_accessor :guid
|
3
|
+
attr_accessor :guid
|
4
|
+
|
5
|
+
attr_accessor(*%i[
|
6
|
+
name
|
7
|
+
rate
|
8
|
+
tax_amount
|
9
|
+
tax_rate
|
10
|
+
type
|
11
|
+
])
|
4
12
|
|
5
13
|
def initialize(hash)
|
6
14
|
set_attributes(hash)
|
data/lib/tosuto/check.rb
CHANGED
@@ -1,10 +1,30 @@
|
|
1
1
|
module Tosuto
|
2
2
|
class Check < Resource
|
3
|
-
attr_accessor :
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
3
|
+
attr_accessor :external_id, :guid
|
4
|
+
|
5
|
+
attr_accessor(*%i[
|
6
|
+
amount
|
7
|
+
applied_discounts
|
8
|
+
applied_loyalty_info
|
9
|
+
applied_service_charges
|
10
|
+
closed_date
|
11
|
+
customer
|
12
|
+
deleted
|
13
|
+
deleted_date
|
14
|
+
display_number
|
15
|
+
modified_date
|
16
|
+
opened_date
|
17
|
+
paid_date
|
18
|
+
payment_status
|
19
|
+
payments
|
20
|
+
tab_name
|
21
|
+
tax_amount
|
22
|
+
tax_exempt
|
23
|
+
total_amount
|
24
|
+
void_business_date
|
25
|
+
void_date
|
26
|
+
voided
|
27
|
+
])
|
8
28
|
|
9
29
|
attr_collections selections: MenuItemSelection
|
10
30
|
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'tosuto/resource'
|
4
|
+
|
5
|
+
module Tosuto
|
6
|
+
class CurbsidePickupInfo < Resource
|
7
|
+
attr_accessor :entity_type, :guid
|
8
|
+
|
9
|
+
attr_accessor(*%i[
|
10
|
+
notes
|
11
|
+
transport_color
|
12
|
+
transport_description
|
13
|
+
])
|
14
|
+
|
15
|
+
def initialize(hash)
|
16
|
+
set_attributes(hash)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/lib/tosuto/dining_option.rb
CHANGED
@@ -1,8 +1,17 @@
|
|
1
1
|
module Tosuto
|
2
2
|
class DiningOption < Resource
|
3
|
-
ENDPOINT =
|
3
|
+
ENDPOINT = '/config/v2/diningOptions'.freeze
|
4
4
|
|
5
|
-
|
5
|
+
CARRYOUT_MATCH = %w[carryout].freeze
|
6
|
+
DSP_MATCH = %w[delivery door grub postmates uber].freeze
|
7
|
+
|
8
|
+
attr_accessor :entity_type, :external_id, :guid
|
9
|
+
|
10
|
+
attr_accessor(*%i[
|
11
|
+
behavior
|
12
|
+
curbside
|
13
|
+
name
|
14
|
+
])
|
6
15
|
|
7
16
|
def initialize(hash)
|
8
17
|
set_attributes(hash)
|
@@ -22,12 +31,20 @@ module Tosuto
|
|
22
31
|
self
|
23
32
|
end
|
24
33
|
|
34
|
+
def dsp?
|
35
|
+
DSP_MATCH.any? { |dsp| name&.downcase&.match?(dsp) }
|
36
|
+
end
|
37
|
+
|
38
|
+
def carryout?
|
39
|
+
CARRYOUT_MATCH.any? { |carryout| name&.downcase&.match?(carryout) }
|
40
|
+
end
|
41
|
+
|
25
42
|
def take_out?
|
26
|
-
behavior ==
|
43
|
+
behavior == 'TAKE_OUT' && (carryout? || !dsp?)
|
27
44
|
end
|
28
45
|
|
29
46
|
def delivery?
|
30
|
-
behavior ==
|
47
|
+
behavior == 'DELIVERY' || (dsp? && !carryout?)
|
31
48
|
end
|
32
49
|
end
|
33
50
|
end
|
@@ -1,10 +1,29 @@
|
|
1
1
|
module Tosuto
|
2
2
|
class MenuItemSelection < Resource
|
3
|
-
attr_accessor :
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
3
|
+
attr_accessor :external_id, :guid
|
4
|
+
|
5
|
+
attr_accessor(*%i[
|
6
|
+
applied_discounts
|
7
|
+
created_date
|
8
|
+
deferred
|
9
|
+
display_name
|
10
|
+
fulfillment_status
|
11
|
+
modified_date
|
12
|
+
modifiers
|
13
|
+
option_group
|
14
|
+
pre_discount_price
|
15
|
+
pre_modifier
|
16
|
+
price
|
17
|
+
quantity
|
18
|
+
seat_number
|
19
|
+
selection_type
|
20
|
+
tax
|
21
|
+
unit_of_measure
|
22
|
+
void_business_date
|
23
|
+
void_date
|
24
|
+
void_reason
|
25
|
+
voided
|
26
|
+
])
|
8
27
|
|
9
28
|
attr_collections applied_taxes: AppliedTaxRate
|
10
29
|
|
data/lib/tosuto/oauth_token.rb
CHANGED
@@ -1,27 +1,29 @@
|
|
1
1
|
module Tosuto
|
2
2
|
class OauthToken < Resource
|
3
|
-
ENDPOINT = "/
|
3
|
+
ENDPOINT = "/authentication/v1/authentication/login".freeze
|
4
4
|
|
5
5
|
attr_accessor :access_token, :token_type, :expires_in, :expires_at, :scope
|
6
6
|
|
7
|
-
def self.create(client_id, client_secret,
|
7
|
+
def self.create(client_id, client_secret, user_access_type: "TOAST_MACHINE_CLIENT", api: API.new)
|
8
8
|
body = {
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
userAccessType: user_access_type,
|
10
|
+
clientId: client_id,
|
11
|
+
clientSecret: client_secret,
|
12
12
|
}
|
13
|
-
response = api.request(:post, ENDPOINT, body:
|
13
|
+
response = api.request(:post, ENDPOINT, body: body)
|
14
14
|
raise response.error unless response.success?
|
15
15
|
|
16
|
-
return
|
16
|
+
return new(response.json_body)
|
17
17
|
end
|
18
18
|
|
19
19
|
def initialize(attributes = {})
|
20
|
-
|
21
|
-
|
20
|
+
return unless (token = attributes['token'])
|
21
|
+
|
22
|
+
self.access_token = token['accessToken']
|
23
|
+
self.expires_in = token['expiresIn'].to_i
|
22
24
|
self.expires_at = Time.now + expires_in
|
23
|
-
self.token_type =
|
24
|
-
self.scope =
|
25
|
+
self.token_type = token['tokenType']
|
26
|
+
self.scope = token['scope']
|
25
27
|
end
|
26
28
|
|
27
29
|
def expired?
|
data/lib/tosuto/order.rb
CHANGED
@@ -1,17 +1,43 @@
|
|
1
1
|
require 'date'
|
2
2
|
|
3
|
+
require 'tosuto/curbside_pickup_info'
|
4
|
+
|
3
5
|
module Tosuto
|
4
6
|
class Order < Resource
|
5
|
-
ENDPOINT = "/orders/v2/orders"
|
7
|
+
ENDPOINT = "/orders/v2/orders".freeze
|
8
|
+
|
9
|
+
attr_accessor :external_id, :guid
|
6
10
|
|
7
|
-
attr_accessor
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
11
|
+
attr_accessor(*%i[
|
12
|
+
approval_status
|
13
|
+
business_date
|
14
|
+
closed_date
|
15
|
+
deleted
|
16
|
+
deleted_date
|
17
|
+
delivery_info
|
18
|
+
duration
|
19
|
+
estimated_fulfillment_date
|
20
|
+
modified_date
|
21
|
+
number_of_guests
|
22
|
+
opened_date
|
23
|
+
paid_date
|
24
|
+
pricing_features
|
25
|
+
promised_date
|
26
|
+
required_prep_time
|
27
|
+
restaurant_id
|
28
|
+
restaurant_service
|
29
|
+
revenue_center
|
30
|
+
server
|
31
|
+
service_area
|
32
|
+
source
|
33
|
+
table
|
34
|
+
void_business_date
|
35
|
+
void_date
|
36
|
+
voided
|
37
|
+
])
|
13
38
|
|
14
39
|
attr_collections checks: Check
|
40
|
+
attr_objects curbside_pickup_info: CurbsidePickupInfo
|
15
41
|
attr_objects dining_option: DiningOption
|
16
42
|
|
17
43
|
def self.all(restaurant_id:, token:, date_range: nil, business_date: nil, api: API.new)
|
data/lib/tosuto/version.rb
CHANGED
data/tosuto.gemspec
CHANGED
@@ -27,6 +27,6 @@ Gem::Specification.new do |spec|
|
|
27
27
|
spec.require_paths = ["lib"]
|
28
28
|
|
29
29
|
spec.add_development_dependency "bundler", "~> 2.0"
|
30
|
-
spec.add_development_dependency "rake", "~>
|
30
|
+
spec.add_development_dependency "rake", "~> 13.0"
|
31
31
|
spec.add_development_dependency "rspec", "~> 3.0"
|
32
32
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tosuto
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3
|
4
|
+
version: 0.4.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Scott Yoder
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-09-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '13.0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '13.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rspec
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -75,6 +75,7 @@ files:
|
|
75
75
|
- lib/tosuto/api.rb
|
76
76
|
- lib/tosuto/applied_tax_rate.rb
|
77
77
|
- lib/tosuto/check.rb
|
78
|
+
- lib/tosuto/curbside_pickup_info.rb
|
78
79
|
- lib/tosuto/dining_option.rb
|
79
80
|
- lib/tosuto/menu_item_selection.rb
|
80
81
|
- lib/tosuto/oauth_token.rb
|
@@ -89,7 +90,7 @@ metadata:
|
|
89
90
|
homepage_uri: https://github.com/RadiusNetworks/tosuto
|
90
91
|
source_code_uri: https://github.com/RadiusNetworks/tosuto
|
91
92
|
changelog_uri: https://github.com/RadiusNetworks/tosuto
|
92
|
-
post_install_message:
|
93
|
+
post_install_message:
|
93
94
|
rdoc_options: []
|
94
95
|
require_paths:
|
95
96
|
- lib
|
@@ -104,9 +105,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
104
105
|
- !ruby/object:Gem::Version
|
105
106
|
version: '0'
|
106
107
|
requirements: []
|
107
|
-
|
108
|
-
|
109
|
-
signing_key:
|
108
|
+
rubygems_version: 3.0.8
|
109
|
+
signing_key:
|
110
110
|
specification_version: 4
|
111
111
|
summary: A gem for accessing Toast's API
|
112
112
|
test_files: []
|