automation-api 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|