automation-api 0.3.0
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/.dependabot/config.yml +8 -0
- data/.gitignore +13 -0
- data/.rspec +3 -0
- data/.rubocop.yml +3 -0
- data/.ruby-version +1 -0
- data/.travis.yml +7 -0
- data/CHANGELONG.md +13 -0
- data/Dockerfile +16 -0
- data/Gemfile +6 -0
- data/Gemfile.lock +149 -0
- data/Jenkinsfile +31 -0
- data/README.md +176 -0
- data/Rakefile +44 -0
- data/automation-api.gemspec +42 -0
- data/bin/console +17 -0
- data/bin/setup +8 -0
- data/config/basic.yml +16 -0
- data/config/essential.yml +21 -0
- data/config/loyalty.yml +7 -0
- data/config/online.yml +17 -0
- data/config/profile.yml.example +231 -0
- data/config/restrictions.yml +55 -0
- data/config/starter.yml +11 -0
- data/docker-compose.yml +12 -0
- data/exe/store-gen +6 -0
- data/lib/automation/api.rb +17 -0
- data/lib/automation/api/cli.rb +320 -0
- data/lib/automation/api/client.rb +133 -0
- data/lib/automation/api/requests.rb +26 -0
- data/lib/automation/api/requests/account_owner.rb +22 -0
- data/lib/automation/api/requests/app_sync.rb +93 -0
- data/lib/automation/api/requests/button_pages.rb +34 -0
- data/lib/automation/api/requests/buttons.rb +34 -0
- data/lib/automation/api/requests/categories.rb +34 -0
- data/lib/automation/api/requests/collection.rb +32 -0
- data/lib/automation/api/requests/customers.rb +34 -0
- data/lib/automation/api/requests/departments.rb +34 -0
- data/lib/automation/api/requests/employees.rb +34 -0
- data/lib/automation/api/requests/entitlements.rb +33 -0
- data/lib/automation/api/requests/features.rb +33 -0
- data/lib/automation/api/requests/helper.rb +59 -0
- data/lib/automation/api/requests/location_preferences.rb +22 -0
- data/lib/automation/api/requests/loyalty_provisioning.rb +22 -0
- data/lib/automation/api/requests/matrix_products.rb +34 -0
- data/lib/automation/api/requests/modifiers.rb +34 -0
- data/lib/automation/api/requests/named_discounts.rb +34 -0
- data/lib/automation/api/requests/online_orders.rb +18 -0
- data/lib/automation/api/requests/registers.rb +30 -0
- data/lib/automation/api/requests/sales.rb +22 -0
- data/lib/automation/api/requests/sales_restrictions.rb +34 -0
- data/lib/automation/api/requests/settings.rb +22 -0
- data/lib/automation/api/requests/stock_items.rb +34 -0
- data/lib/automation/api/requests/tax_rate_service_taxes.rb +34 -0
- data/lib/automation/api/requests/taxes.rb +34 -0
- data/lib/automation/api/requests/tenders.rb +38 -0
- data/lib/automation/api/version.rb +7 -0
- metadata +321 -0
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'automation/api/requests/account_owner'
|
4
|
+
require 'automation/api/requests/app_sync'
|
5
|
+
require 'automation/api/requests/buttons'
|
6
|
+
require 'automation/api/requests/button_pages'
|
7
|
+
require 'automation/api/requests/categories'
|
8
|
+
require 'automation/api/requests/customers'
|
9
|
+
require 'automation/api/requests/departments'
|
10
|
+
require 'automation/api/requests/employees'
|
11
|
+
require 'automation/api/requests/entitlements'
|
12
|
+
require 'automation/api/requests/features'
|
13
|
+
require 'automation/api/requests/location_preferences'
|
14
|
+
require 'automation/api/requests/loyalty_provisioning'
|
15
|
+
require 'automation/api/requests/matrix_products'
|
16
|
+
require 'automation/api/requests/modifiers'
|
17
|
+
require 'automation/api/requests/named_discounts'
|
18
|
+
require 'automation/api/requests/online_orders'
|
19
|
+
require 'automation/api/requests/registers'
|
20
|
+
require 'automation/api/requests/sales'
|
21
|
+
require 'automation/api/requests/sales_restrictions'
|
22
|
+
require 'automation/api/requests/settings'
|
23
|
+
require 'automation/api/requests/stock_items'
|
24
|
+
require 'automation/api/requests/taxes'
|
25
|
+
require 'automation/api/requests/tax_rate_service_taxes'
|
26
|
+
require 'automation/api/requests/tenders'
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'helper'
|
4
|
+
|
5
|
+
module Automation
|
6
|
+
module API
|
7
|
+
module Requests
|
8
|
+
# Automation::API::Requests::AccountOwner
|
9
|
+
module AccountOwner
|
10
|
+
include Helper
|
11
|
+
|
12
|
+
def account_owner
|
13
|
+
get("#{@base_uri}/account_owner")
|
14
|
+
end
|
15
|
+
|
16
|
+
def update_account_owner(params)
|
17
|
+
patch("#{@base_uri}/account_owner", params: params)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,93 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'graphql/client'
|
4
|
+
require 'graphql/client/http'
|
5
|
+
|
6
|
+
module Automation
|
7
|
+
module API
|
8
|
+
module Requests
|
9
|
+
# Automation::API::Requests::AppSync
|
10
|
+
module AppSync
|
11
|
+
GRAPHQL_ENDPOINT = 'https://fdrvbwlqtngjxogf2325feddm4.appsync-api.us-east-1.amazonaws.com/graphql'
|
12
|
+
|
13
|
+
GRAPHQL_SEARCH = <<-'GRAPHQL'
|
14
|
+
query($storeId: ID) {
|
15
|
+
searchChecks(
|
16
|
+
filter: {
|
17
|
+
storeId: { eq: $storeId }
|
18
|
+
}
|
19
|
+
) {
|
20
|
+
items {
|
21
|
+
id
|
22
|
+
version
|
23
|
+
}
|
24
|
+
}
|
25
|
+
}
|
26
|
+
GRAPHQL
|
27
|
+
|
28
|
+
GRAPHQL_DELETE = <<-"GRAPHQL"
|
29
|
+
mutation ($input: DeleteCheckInput!) {
|
30
|
+
deleteCheck(input: $input) {
|
31
|
+
id
|
32
|
+
}
|
33
|
+
}
|
34
|
+
GRAPHQL
|
35
|
+
|
36
|
+
def search_checks
|
37
|
+
client.query(
|
38
|
+
search_query,
|
39
|
+
variables: { storeId: uuid.downcase },
|
40
|
+
context: { token: jwt_token }
|
41
|
+
).data.search_checks.items
|
42
|
+
end
|
43
|
+
|
44
|
+
def delete_check(id, version)
|
45
|
+
client.query(
|
46
|
+
delete_mutation,
|
47
|
+
variables: { input: { id: id, expectedVersion: version } },
|
48
|
+
context: { token: jwt_token }
|
49
|
+
).data.delete_check
|
50
|
+
end
|
51
|
+
|
52
|
+
private
|
53
|
+
|
54
|
+
def http
|
55
|
+
@http ||= ::GraphQL::Client::HTTP.new(GRAPHQL_ENDPOINT) do
|
56
|
+
def headers(context) # rubocop:disable Lint/NestedMethodDefinition
|
57
|
+
{
|
58
|
+
'User-Agent': 'Automation API',
|
59
|
+
'Authorization': context[:token]
|
60
|
+
}
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
def schema
|
66
|
+
@schema ||= GraphQL::Client.load_schema(
|
67
|
+
GraphQL::Client.dump_schema(http, context: { token: jwt_token })
|
68
|
+
)
|
69
|
+
end
|
70
|
+
|
71
|
+
def client
|
72
|
+
@client ||= ::GraphQL::Client.new(schema: schema, execute: http)
|
73
|
+
end
|
74
|
+
|
75
|
+
def search_query
|
76
|
+
if AppSync.const_defined?(:SearchQuery)
|
77
|
+
AppSync::SearchQuery
|
78
|
+
else
|
79
|
+
AppSync.const_set(:SearchQuery, client.parse(GRAPHQL_SEARCH))
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
def delete_mutation
|
84
|
+
if AppSync.const_defined?(:DeleteQuery)
|
85
|
+
AppSync::DeleteQuery
|
86
|
+
else
|
87
|
+
AppSync.const_set(:DeleteQuery, client.parse(GRAPHQL_DELETE))
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'helper'
|
4
|
+
|
5
|
+
module Automation
|
6
|
+
module API
|
7
|
+
module Requests
|
8
|
+
# Automation::API::Requests::ButtonPages
|
9
|
+
module ButtonPages
|
10
|
+
include Helper
|
11
|
+
|
12
|
+
def button_pages
|
13
|
+
get("#{@base_uri}/button_pages")
|
14
|
+
end
|
15
|
+
|
16
|
+
def button_page(id:)
|
17
|
+
get("#{@base_uri}/button_pages/#{id}")
|
18
|
+
end
|
19
|
+
|
20
|
+
def create_button_page(button_page:)
|
21
|
+
post("#{@base_uri}/button_pages", params: button_page)
|
22
|
+
end
|
23
|
+
|
24
|
+
def update_button_page(id:, button_page:)
|
25
|
+
patch("#{@base_uri}/button_pages/#{id}", params: button_page)
|
26
|
+
end
|
27
|
+
|
28
|
+
def delete_button_page(id:)
|
29
|
+
delete("#{@base_uri}/button_pages/#{id}")
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'helper'
|
4
|
+
|
5
|
+
module Automation
|
6
|
+
module API
|
7
|
+
module Requests
|
8
|
+
# Automation::API::Requests::Buttons
|
9
|
+
module Buttons
|
10
|
+
include Helper
|
11
|
+
|
12
|
+
def buttons(button_page_id:)
|
13
|
+
get("#{@base_uri}/button_pages/#{button_page_id}/buttons")
|
14
|
+
end
|
15
|
+
|
16
|
+
def button(button_page_id:, id:)
|
17
|
+
get("#{@base_uri}/button_pages/#{button_page_id}/buttons/#{id}")
|
18
|
+
end
|
19
|
+
|
20
|
+
def create_button(button_page_id:, button:)
|
21
|
+
post("#{@base_uri}/button_pages/#{button_page_id}/buttons", params: button)
|
22
|
+
end
|
23
|
+
|
24
|
+
def update_button(button_page_id:, id:, button:)
|
25
|
+
patch("#{@base_uri}/button_pages/#{button_page_id}/buttons/#{id}", params: button)
|
26
|
+
end
|
27
|
+
|
28
|
+
def delete_button(button_page_id:, id:)
|
29
|
+
delete("#{@base_uri}/button_pages/#{button_page_id}/buttons/#{id}")
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'helper'
|
4
|
+
|
5
|
+
module Automation
|
6
|
+
module API
|
7
|
+
module Requests
|
8
|
+
# Automation::API::Requests::Categories
|
9
|
+
module Categories
|
10
|
+
include Helper
|
11
|
+
|
12
|
+
def categories(department_id:)
|
13
|
+
get("#{@base_uri}/departments/#{department_id}/categories")
|
14
|
+
end
|
15
|
+
|
16
|
+
def category(department_id:, id:)
|
17
|
+
get("#{@base_uri}/departments/#{department_id}/categories/#{id}")
|
18
|
+
end
|
19
|
+
|
20
|
+
def create_category(department_id:, category:)
|
21
|
+
post("#{@base_uri}/departments/#{department_id}/categories", params: category)
|
22
|
+
end
|
23
|
+
|
24
|
+
def update_category(department_id:, id:, category:)
|
25
|
+
patch("#{@base_uri}/departments/#{department_id}/categories/#{id}", params: category)
|
26
|
+
end
|
27
|
+
|
28
|
+
def delete_category(department_id:, id:)
|
29
|
+
delete("#{@base_uri}/departments/#{department_id}/categories/#{id}")
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Automation
|
4
|
+
module API
|
5
|
+
module Requests
|
6
|
+
# Automation::API::Requests::Collection
|
7
|
+
class Collection
|
8
|
+
def initialize(records)
|
9
|
+
@records = records
|
10
|
+
end
|
11
|
+
|
12
|
+
def find_by(criteria)
|
13
|
+
key, value = criteria.first
|
14
|
+
|
15
|
+
@records.find { |record| record[key] == value }
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
def method_missing(method, *args, &block)
|
21
|
+
super unless @records.respond_to?(method)
|
22
|
+
|
23
|
+
@records.send(method, *args, &block)
|
24
|
+
end
|
25
|
+
|
26
|
+
def respond_to_missing?(method, *_args, &_block)
|
27
|
+
@records.respond_to?(method)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'helper'
|
4
|
+
|
5
|
+
module Automation
|
6
|
+
module API
|
7
|
+
module Requests
|
8
|
+
# Automation::API::Requests::Customers
|
9
|
+
module Customers
|
10
|
+
include Helper
|
11
|
+
|
12
|
+
def customers
|
13
|
+
get("#{@base_uri}/customers")
|
14
|
+
end
|
15
|
+
|
16
|
+
def customer(id:)
|
17
|
+
get("#{@base_uri}/customers/#{id}")
|
18
|
+
end
|
19
|
+
|
20
|
+
def create_customer(customer:)
|
21
|
+
post("#{@base_uri}/customers", params: customer)
|
22
|
+
end
|
23
|
+
|
24
|
+
def update_customer(id:, customer:)
|
25
|
+
patch("#{@base_uri}/customers/#{id}", params: customer)
|
26
|
+
end
|
27
|
+
|
28
|
+
def delete_customer(id:)
|
29
|
+
delete("#{@base_uri}/customers/#{id}")
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'helper'
|
4
|
+
|
5
|
+
module Automation
|
6
|
+
module API
|
7
|
+
module Requests
|
8
|
+
# Automation::API::Requests::Departments
|
9
|
+
module Departments
|
10
|
+
include Helper
|
11
|
+
|
12
|
+
def departments
|
13
|
+
get("#{@base_uri}/departments")
|
14
|
+
end
|
15
|
+
|
16
|
+
def department(id:)
|
17
|
+
get("#{@base_uri}/departments/#{id}")
|
18
|
+
end
|
19
|
+
|
20
|
+
def create_department(department:)
|
21
|
+
post("#{@base_uri}/departments", params: department)
|
22
|
+
end
|
23
|
+
|
24
|
+
def update_department(id:, department:)
|
25
|
+
patch("#{@base_uri}/departments/#{id}", params: department)
|
26
|
+
end
|
27
|
+
|
28
|
+
def delete_department(id:)
|
29
|
+
delete("#{@base_uri}/departments/#{id}")
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'helper'
|
4
|
+
|
5
|
+
module Automation
|
6
|
+
module API
|
7
|
+
module Requests
|
8
|
+
# Automation::API::Requests::Employees
|
9
|
+
module Employees
|
10
|
+
include Helper
|
11
|
+
|
12
|
+
def employees
|
13
|
+
get("#{@base_uri}/employees")
|
14
|
+
end
|
15
|
+
|
16
|
+
def employee(id:)
|
17
|
+
get("#{@base_uri}/employees/#{id}")
|
18
|
+
end
|
19
|
+
|
20
|
+
def create_employee(employee:)
|
21
|
+
post("#{@base_uri}/employees", params: employee)
|
22
|
+
end
|
23
|
+
|
24
|
+
def update_employee(id:, employee:)
|
25
|
+
patch("#{@base_uri}/employees/#{id}", params: employee)
|
26
|
+
end
|
27
|
+
|
28
|
+
def delete_employee(id:)
|
29
|
+
delete("#{@base_uri}/employees/#{id}")
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'helper'
|
4
|
+
|
5
|
+
module Automation
|
6
|
+
module API
|
7
|
+
module Requests
|
8
|
+
# Automation::API::Requests::Entitlements
|
9
|
+
module Entitlements
|
10
|
+
include Helper
|
11
|
+
|
12
|
+
def activate_entitlement(entitlement)
|
13
|
+
params = { entitlement: entitlement }
|
14
|
+
|
15
|
+
post("#{@base_uri}/entitlements", params: params)
|
16
|
+
end
|
17
|
+
|
18
|
+
def deactivate_entitlement(entitlement)
|
19
|
+
params = { entitlement: entitlement }
|
20
|
+
|
21
|
+
delete_with_payload("#{@base_uri}/entitlements", params: params)
|
22
|
+
end
|
23
|
+
|
24
|
+
def update_entitlements(activate: [], deactivate: [])
|
25
|
+
params = { active_entitlements: activate,
|
26
|
+
inactive_entitlements: deactivate }
|
27
|
+
|
28
|
+
patch("#{@base_uri}/entitlements", params: params)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'helper'
|
4
|
+
|
5
|
+
module Automation
|
6
|
+
module API
|
7
|
+
module Requests
|
8
|
+
# Automation::API::Requests::Features
|
9
|
+
module Features
|
10
|
+
include Helper
|
11
|
+
|
12
|
+
def activate_feature(feature)
|
13
|
+
params = { feature: feature }
|
14
|
+
|
15
|
+
post("#{@base_uri}/features", params: params)
|
16
|
+
end
|
17
|
+
|
18
|
+
def deactivate_feature(feature)
|
19
|
+
params = { feature: feature }
|
20
|
+
|
21
|
+
delete_with_payload("#{@base_uri}/features", params: params)
|
22
|
+
end
|
23
|
+
|
24
|
+
def update_features(activate: [], deactivate: [])
|
25
|
+
params = { active_features: activate,
|
26
|
+
inactive_features: deactivate }
|
27
|
+
|
28
|
+
patch("#{@base_uri}/features", params: params)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|