spree_cm_commissioner 1.8.7.pre.beta1 → 1.8.9
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.lock +2 -2
- data/app/controllers/concerns/spree_cm_commissioner/order_concern.rb +28 -0
- data/app/controllers/spree/api/v2/storefront/order_histories_controller.rb +58 -0
- data/app/controllers/spree/api/v2/storefront/pin_code_generators_controller.rb +4 -2
- data/app/controllers/spree/api/v2/storefront/queue_cart/line_items_controller.rb +0 -1
- data/app/controllers/spree/api/v2/tenant/pin_code_generators_controller.rb +4 -2
- data/app/controllers/spree_cm_commissioner/api/v2/storefront/cart_controller_decorator.rb +5 -30
- data/app/controllers/spree_cm_commissioner/api/v2/storefront/checkout_controller_decorator.rb +1 -3
- data/app/finders/spree_cm_commissioner/orders/find.rb +34 -0
- data/app/helpers/spree_cm_commissioner/pin_code_sender_helper.rb +22 -0
- data/app/interactors/spree_cm_commissioner/pin_code_sender.rb +14 -2
- data/app/interactors/spree_cm_commissioner/sms.rb +1 -1
- data/app/interactors/spree_cm_commissioner/telegram_debug_pin_code_sender.rb +2 -1
- data/app/jobs/spree_cm_commissioner/sms_pin_code_job.rb +1 -1
- data/app/jobs/spree_cm_commissioner/telegram_debug_pin_code_sender_job.rb +11 -3
- data/app/mailers/spree_cm_commissioner/pin_code_mailer.rb +9 -3
- data/app/models/concerns/spree_cm_commissioner/store_preference.rb +1 -0
- data/app/models/spree_cm_commissioner/order_decorator.rb +8 -0
- data/app/models/spree_cm_commissioner/store_decorator.rb +1 -0
- data/app/models/spree_cm_commissioner/tenant.rb +4 -0
- data/app/serializers/spree/v2/storefront/cart_serializer_decorator.rb +8 -1
- data/app/views/spree/shared/_base_mailer_header.html.erb +12 -0
- data/app/views/spree_cm_commissioner/pin_code_mailer/send_pin_code.html.erb +2 -2
- data/config/routes.rb +7 -0
- data/db/migrate/20250403040036_install_blazer.rb +5 -5
- data/db/migrate/20250403083001_create_spree_cm_commissioner_taxon_blazer_query.rb +1 -1
- data/db/migrate/20250404050117_add_archived_at_to_spree_orders.rb +5 -0
- data/lib/generators/spree_cm_commissioner/install/install_generator.rb +1 -1
- data/lib/spree_cm_commissioner/version.rb +1 -1
- data/spree_cm_commissioner.gemspec +1 -1
- metadata +12 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1b66674e326443a681e0e4f80caa6a25569d508141a05966471c14f675a6690d
|
4
|
+
data.tar.gz: ab0ab4b8b78a04c5a9f54ab15ce88df60b5719b85566ab8aae8c1a6574a46d73
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cb4d294124696d2fa0aa76beb43eb2ce76182565118d5d98b750efd5df27daadd2081dc4c3bd707c37794c375d3ac0f55b448ec0c2b52389b6169f70d261102d
|
7
|
+
data.tar.gz: d522bb1bc55ddb70ce0185ab6c0352a51829199c535da283555a33d9ca1897379b95229593fc2e98ed0023c8d4ca3ef9318438d1558439435656b9a33c8d14ac
|
data/Gemfile.lock
CHANGED
@@ -34,13 +34,13 @@ GIT
|
|
34
34
|
PATH
|
35
35
|
remote: .
|
36
36
|
specs:
|
37
|
-
spree_cm_commissioner (1.8.
|
37
|
+
spree_cm_commissioner (1.8.9)
|
38
38
|
activerecord-multi-tenant
|
39
39
|
activerecord_json_validator (~> 2.1, >= 2.1.3)
|
40
40
|
aws-sdk-cloudfront
|
41
41
|
aws-sdk-ecs
|
42
42
|
aws-sdk-s3
|
43
|
-
blazer (~> 3.0.
|
43
|
+
blazer (~> 3.0.4)
|
44
44
|
byebug
|
45
45
|
counter_culture (~> 3.2)
|
46
46
|
dry-validation (~> 1.10)
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module SpreeCmCommissioner
|
2
|
+
module OrderConcern
|
3
|
+
# override
|
4
|
+
def spree_current_order
|
5
|
+
@spree_current_order ||= find_spree_current_order
|
6
|
+
return nil if @spree_current_order.blank?
|
7
|
+
|
8
|
+
# Spree doesn't validate this by default (might be a bug).
|
9
|
+
# Temporary fix to ensure the order's user ID matches the logged-in user.
|
10
|
+
if @spree_current_order.user_id.present? && spree_current_user.present? && @spree_current_order.user_id != spree_current_user.id
|
11
|
+
raise CanCan::AccessDenied
|
12
|
+
end
|
13
|
+
|
14
|
+
@spree_current_order
|
15
|
+
end
|
16
|
+
|
17
|
+
# override
|
18
|
+
def find_spree_current_order
|
19
|
+
SpreeCmCommissioner::Orders::Find.new.execute(
|
20
|
+
store: current_store,
|
21
|
+
user: spree_current_user,
|
22
|
+
currency: current_currency,
|
23
|
+
token: order_token,
|
24
|
+
state: params[:state]
|
25
|
+
)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
module Spree
|
2
|
+
module Api
|
3
|
+
module V2
|
4
|
+
module Storefront
|
5
|
+
class OrderHistoriesController < ::Spree::Api::V2::ResourceController
|
6
|
+
# GET /api/v2/storefront/order_histories
|
7
|
+
# For user - no params needed
|
8
|
+
# For guest - pass: { "order_tokens[]": [1, 2, 3] }
|
9
|
+
def index
|
10
|
+
render_serialized_payload do
|
11
|
+
serialize_collection(paginated_collection)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
# PATCH /api/v2/storefront/order_histories/:id/archive
|
16
|
+
def archive
|
17
|
+
order_token = params[:id]
|
18
|
+
order = Spree::Order.not_archived.find_by!(token: order_token)
|
19
|
+
|
20
|
+
spree_authorize! :update, order, order_token
|
21
|
+
raise CanCan::AccessDenied unless order.payment?
|
22
|
+
|
23
|
+
if order.archive
|
24
|
+
render_serialized_payload { serialize_resource(order) }
|
25
|
+
else
|
26
|
+
render_error_payload(order.errors.full_messages.to_sentence)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
def collection
|
33
|
+
if spree_current_user.present?
|
34
|
+
spree_current_user.orders.payment.not_archived
|
35
|
+
else
|
36
|
+
order_tokens = Array(params[:order_tokens])
|
37
|
+
return Spree::Order.none if order_tokens.empty?
|
38
|
+
|
39
|
+
Spree::Order.payment.not_archived.without_user.where(token: order_tokens)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def collection_serializer
|
44
|
+
Spree::V2::Storefront::CartSerializer
|
45
|
+
end
|
46
|
+
|
47
|
+
def resource_serializer
|
48
|
+
Spree::V2::Storefront::CartSerializer
|
49
|
+
end
|
50
|
+
|
51
|
+
def model_class
|
52
|
+
Spree::Order
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
@@ -19,7 +19,7 @@ module Spree
|
|
19
19
|
render_error_payload(context.message, 400)
|
20
20
|
end
|
21
21
|
|
22
|
-
# :phone_number, :email, :type, :
|
22
|
+
# :phone_number, :email, :type, :tenant
|
23
23
|
def create
|
24
24
|
context = SpreeCmCommissioner::PinCodeGenerator.call(pin_code_attrs)
|
25
25
|
|
@@ -40,8 +40,10 @@ module Spree
|
|
40
40
|
SpreeCmCommissioner::V2::Storefront::PinCodeSerializer
|
41
41
|
end
|
42
42
|
|
43
|
+
private
|
44
|
+
|
43
45
|
def pin_code_attrs
|
44
|
-
params.slice(:phone_number, :email, :type)
|
46
|
+
params.slice(:phone_number, :email, :type).merge(tenant: @tenant)
|
45
47
|
end
|
46
48
|
end
|
47
49
|
end
|
@@ -3,7 +3,7 @@ module Spree
|
|
3
3
|
module V2
|
4
4
|
module Tenant
|
5
5
|
class PinCodeGeneratorsController < BaseController
|
6
|
-
# :phone_number, :email, :type
|
6
|
+
# :phone_number, :email, :type, :tenant
|
7
7
|
def create
|
8
8
|
context = SpreeCmCommissioner::PinCodeGenerator.call(pin_code_attrs)
|
9
9
|
|
@@ -24,8 +24,10 @@ module Spree
|
|
24
24
|
SpreeCmCommissioner::V2::Storefront::PinCodeSerializer
|
25
25
|
end
|
26
26
|
|
27
|
+
private
|
28
|
+
|
27
29
|
def pin_code_attrs
|
28
|
-
params.slice(:phone_number, :email, :type)
|
30
|
+
params.slice(:phone_number, :email, :type).merge(tenant: @tenant)
|
29
31
|
end
|
30
32
|
end
|
31
33
|
end
|
@@ -4,42 +4,17 @@ module SpreeCmCommissioner
|
|
4
4
|
module Storefront
|
5
5
|
module CartControllerDecorator
|
6
6
|
def self.prepended(base)
|
7
|
-
base.
|
7
|
+
base.include SpreeCmCommissioner::OrderConcern
|
8
8
|
end
|
9
9
|
|
10
|
-
#
|
11
|
-
# this cause app to be stuck at book page because cart is not considered cart or completed.
|
12
|
-
#
|
13
|
-
# solution is to restart it back to cart.
|
10
|
+
# Restart the checkout flow to bring the order back to the cart view
|
14
11
|
def restart_checkout_flow
|
15
12
|
spree_authorize! :update, spree_current_order, order_token
|
16
13
|
|
17
|
-
|
18
|
-
|
19
|
-
else
|
20
|
-
spree_current_order.restart_checkout_flow
|
21
|
-
spree_current_order.update_with_updater!
|
14
|
+
spree_current_order.restart_checkout_flow
|
15
|
+
spree_current_order.update_with_updater!
|
22
16
|
|
23
|
-
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
# we required only user can create cart
|
28
|
-
# in case there is no cart, and user try to add item to cart,
|
29
|
-
# it should create one instead of raising error.
|
30
|
-
def ensure_cart_exist
|
31
|
-
spree_authorize! :create, Spree::Order
|
32
|
-
return if spree_current_order.present?
|
33
|
-
|
34
|
-
create_cart_params = {
|
35
|
-
user: spree_current_user,
|
36
|
-
store: current_store,
|
37
|
-
currency: current_currency,
|
38
|
-
public_metadata: add_item_params[:public_metadata],
|
39
|
-
private_metadata: add_item_params[:private_metadata]
|
40
|
-
}
|
41
|
-
|
42
|
-
@spree_current_order ||= create_service.call(create_cart_params).value
|
17
|
+
render_serialized_payload { serialized_current_order }
|
43
18
|
end
|
44
19
|
end
|
45
20
|
end
|
data/app/controllers/spree_cm_commissioner/api/v2/storefront/checkout_controller_decorator.rb
CHANGED
@@ -4,9 +4,7 @@ module SpreeCmCommissioner
|
|
4
4
|
module Storefront
|
5
5
|
module CheckoutControllerDecorator
|
6
6
|
def self.prepended(base)
|
7
|
-
|
8
|
-
# GET /payment_redirect
|
9
|
-
base.around_action :set_writing_role, only: %i[payment_redirect]
|
7
|
+
base.include SpreeCmCommissioner::OrderConcern
|
10
8
|
end
|
11
9
|
end
|
12
10
|
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# Custom replacement for Spree::Orders::FindCurrent with the following improvements:
|
2
|
+
# - Supports filtering by state (e.g., to retrieve only 'cart' or 'address' orders for the page cart)
|
3
|
+
# - Allows retrieving the order in any state (not just incomplete), which solves the issue of 404s after payment
|
4
|
+
module SpreeCmCommissioner
|
5
|
+
module Orders
|
6
|
+
class Find
|
7
|
+
def execute(store:, user:, currency:, token: nil, state: nil)
|
8
|
+
params = { store_id: store.id, currency: currency }
|
9
|
+
params[:state] = state if state.present?
|
10
|
+
|
11
|
+
return find_by_token(params, token) if token.present?
|
12
|
+
return find_by_user(params, user) if user.present?
|
13
|
+
|
14
|
+
nil
|
15
|
+
end
|
16
|
+
|
17
|
+
def find_by_token(params, token)
|
18
|
+
params[:token] = token
|
19
|
+
scope.find_by(params)
|
20
|
+
end
|
21
|
+
|
22
|
+
def find_by_user(params, user)
|
23
|
+
params[:user_id] = user.id
|
24
|
+
scope.order(created_at: :desc).find_by(params)
|
25
|
+
end
|
26
|
+
|
27
|
+
private
|
28
|
+
|
29
|
+
def scope
|
30
|
+
Spree::Order.not_archived.not_canceled
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module SpreeCmCommissioner
|
2
|
+
module PinCodeSenderHelper
|
3
|
+
def sender_name(tenant)
|
4
|
+
return Spree::Store.default&.name if tenant.nil?
|
5
|
+
|
6
|
+
tenant.active_vendor&.name
|
7
|
+
end
|
8
|
+
|
9
|
+
def sender_email(tenant)
|
10
|
+
return Spree::Store.default.mail_from_address if tenant.nil?
|
11
|
+
|
12
|
+
tenant.active_vendor&.notification_email
|
13
|
+
end
|
14
|
+
|
15
|
+
def logo_url(tenant)
|
16
|
+
vendor_or_store = tenant.nil? || tenant.active_vendor.nil? ? Spree::Store.default : tenant.active_vendor
|
17
|
+
return unless vendor_or_store&.logo&.attachment&.attached?
|
18
|
+
|
19
|
+
main_app.cdn_image_url(vendor_or_store.logo.attachment.variant(resize_to_limit: [244, 104]))
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -15,7 +15,10 @@ module SpreeCmCommissioner
|
|
15
15
|
private
|
16
16
|
|
17
17
|
def send_sms
|
18
|
+
from = context.tenant || Spree::Store.default
|
19
|
+
|
18
20
|
options = {
|
21
|
+
from: from,
|
19
22
|
to: context.pin_code.contact,
|
20
23
|
body: I18n.t('pincode_sender.sms.body', code: context.pin_code.code, readable_type: context.pin_code.readable_type)
|
21
24
|
}
|
@@ -24,13 +27,22 @@ module SpreeCmCommissioner
|
|
24
27
|
end
|
25
28
|
|
26
29
|
def send_email
|
27
|
-
SpreeCmCommissioner::PinCodeMailer.send_pin_code(
|
30
|
+
SpreeCmCommissioner::PinCodeMailer.send_pin_code(
|
31
|
+
context.pin_code.id,
|
32
|
+
context.pin_code.readable_type,
|
33
|
+
context.tenant
|
34
|
+
).deliver_later
|
28
35
|
end
|
29
36
|
|
30
37
|
def send_telegram_debug_pin_code
|
31
38
|
return unless ENV['PIN_CODE_DEBUG_NOTIFIY_TELEGRAM_ENABLE'] == 'yes'
|
32
39
|
|
33
|
-
|
40
|
+
options = {
|
41
|
+
pin_code_id: context.pin_code.id,
|
42
|
+
tenant_id: context.tenant&.id
|
43
|
+
}
|
44
|
+
|
45
|
+
SpreeCmCommissioner::TelegramDebugPinCodeSenderJob.perform_later(options)
|
34
46
|
end
|
35
47
|
end
|
36
48
|
end
|
@@ -40,7 +40,7 @@ module SpreeCmCommissioner
|
|
40
40
|
end
|
41
41
|
|
42
42
|
def sms_options
|
43
|
-
opts = { to: context.to, body: context.body }
|
43
|
+
opts = { from: context.from, to: context.to, body: context.body }
|
44
44
|
opts[:to] = sanitize(opts[:to]) if opts[:to].present?
|
45
45
|
opts[:from] = from_number
|
46
46
|
opts
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module SpreeCmCommissioner
|
2
2
|
class TelegramDebugPinCodeSender < BaseInteractor
|
3
|
-
delegate :pin_code, to: :context
|
3
|
+
delegate :pin_code, :name, to: :context
|
4
4
|
|
5
5
|
def call
|
6
6
|
telegram_client.send_message(
|
@@ -13,6 +13,7 @@ module SpreeCmCommissioner
|
|
13
13
|
def body
|
14
14
|
text = []
|
15
15
|
|
16
|
+
text << "<b>From: #{name}</b>"
|
16
17
|
text << "<b>PIN CODE sent to #{pin_code.contact}</b>"
|
17
18
|
text << "<code>#{pin_code.code}</code> is your #{pin_code.readable_type}"
|
18
19
|
|
@@ -1,9 +1,17 @@
|
|
1
1
|
module SpreeCmCommissioner
|
2
2
|
class TelegramDebugPinCodeSenderJob < ApplicationUniqueJob
|
3
|
-
|
4
|
-
pin_code = SpreeCmCommissioner::PinCode.find(pin_code_id)
|
3
|
+
include SpreeCmCommissioner::PinCodeSenderHelper
|
5
4
|
|
6
|
-
|
5
|
+
def perform(options)
|
6
|
+
pin_code = SpreeCmCommissioner::PinCode.find(options[:pin_code_id])
|
7
|
+
tenant = SpreeCmCommissioner::Tenant.find_by(id: options[:tenant_id])
|
8
|
+
|
9
|
+
name = sender_name(tenant)
|
10
|
+
|
11
|
+
SpreeCmCommissioner::TelegramDebugPinCodeSender.call(
|
12
|
+
pin_code: pin_code,
|
13
|
+
name: name
|
14
|
+
)
|
7
15
|
end
|
8
16
|
end
|
9
17
|
end
|
@@ -1,13 +1,19 @@
|
|
1
1
|
module SpreeCmCommissioner
|
2
2
|
class PinCodeMailer < Spree::BaseMailer
|
3
|
-
|
3
|
+
include SpreeCmCommissioner::PinCodeSenderHelper
|
4
|
+
|
5
|
+
def send_pin_code(pin_code_id, action, tenant)
|
4
6
|
@pin_code = SpreeCmCommissioner::PinCode.find(pin_code_id)
|
5
7
|
|
8
|
+
@sender_name = sender_name(tenant)
|
9
|
+
@sender_email = sender_email(tenant)
|
10
|
+
@logo_path = logo_url(tenant)
|
11
|
+
|
6
12
|
return unless @pin_code.email?
|
7
13
|
|
8
|
-
subject = "#{
|
14
|
+
subject = "#{@sender_name} #{action.titlecase}"
|
9
15
|
|
10
|
-
mail(from:
|
16
|
+
mail(from: @sender_email, to: @pin_code.contact, subject: subject)
|
11
17
|
end
|
12
18
|
end
|
13
19
|
end
|
@@ -7,6 +7,10 @@ module SpreeCmCommissioner
|
|
7
7
|
base.scope :subscription, -> { where.not(subscription_id: nil) }
|
8
8
|
base.scope :paid, -> { where(payment_state: :paid) }
|
9
9
|
base.scope :complete_or_canceled, -> { complete.or(where(state: 'canceled')) }
|
10
|
+
base.scope :payment, -> { incomplete.where(state: 'payment') }
|
11
|
+
base.scope :archived, -> { where.not(archived_at: nil) }
|
12
|
+
base.scope :not_archived, -> { where(archived_at: nil) }
|
13
|
+
base.scope :without_user, -> { where(user_id: nil) }
|
10
14
|
|
11
15
|
base.scope :filter_by_match_user_contact, lambda { |user|
|
12
16
|
complete.where(
|
@@ -101,6 +105,10 @@ module SpreeCmCommissioner
|
|
101
105
|
self.class.unscoped.where(id: self).update_all(changes) # rubocop:disable Rails/SkipsModelValidations
|
102
106
|
end
|
103
107
|
|
108
|
+
def archive
|
109
|
+
update(archived_at: Time.current)
|
110
|
+
end
|
111
|
+
|
104
112
|
# overrided
|
105
113
|
# avoid raise error when source_id is nil.
|
106
114
|
# https://github.com/channainfo/commissioner/pull/843
|
@@ -5,6 +5,7 @@ module SpreeCmCommissioner
|
|
5
5
|
|
6
6
|
base.has_one :default_notification_image, class_name: 'SpreeCmCommissioner::FeatureImage', dependent: :destroy, as: :viewable
|
7
7
|
base.accepts_nested_attributes_for :default_notification_image, reject_if: :all_blank
|
8
|
+
base.multi_tenant :tenant, class_name: 'SpreeCmCommissioner::Tenant'
|
8
9
|
end
|
9
10
|
end
|
10
11
|
end
|
@@ -3,8 +3,15 @@ module Spree
|
|
3
3
|
module Storefront
|
4
4
|
module CartSerializerDecorator
|
5
5
|
def self.prepended(base)
|
6
|
-
base.attributes :phone_number, :intel_phone_number, :country_code, :request_state,
|
6
|
+
base.attributes :phone_number, :intel_phone_number, :country_code, :request_state,
|
7
7
|
:channel
|
8
|
+
|
9
|
+
base.attribute :qr_data do |order|
|
10
|
+
order.qr_data if order.completed?
|
11
|
+
end
|
12
|
+
|
13
|
+
# override to return all payments instead of only valid_payments
|
14
|
+
base.has_many :payments
|
8
15
|
end
|
9
16
|
end
|
10
17
|
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<!-- override base_mailer_header.html.erb -->
|
2
|
+
<tr>
|
3
|
+
<td class="email-masthead">
|
4
|
+
<%= link_to @sender_name, class: 'template-label' do %>
|
5
|
+
<% if @logo_path.present? %>
|
6
|
+
<%= image_tag @logo_path, class: 'logo', alt: @sender_name, title: @sender_name %>
|
7
|
+
<% else %>
|
8
|
+
<%= @sender_name %>
|
9
|
+
<% end %>
|
10
|
+
<% end %>
|
11
|
+
</td>
|
12
|
+
</tr>
|
@@ -3,7 +3,7 @@
|
|
3
3
|
<tr>
|
4
4
|
<td>
|
5
5
|
<h4>Hello, </h4>
|
6
|
-
<p>Welcome to <%=
|
6
|
+
<p>Welcome to <%= @sender_name %> </p>
|
7
7
|
<p>Please use the following code:</p>
|
8
8
|
<h5 style="font-size: 22px;padding: 0 10px;"><%= @pin_code.code %></h5>
|
9
9
|
<p>to verify your account.</p>
|
@@ -11,7 +11,7 @@
|
|
11
11
|
<br>
|
12
12
|
<p>
|
13
13
|
Regards,<br>
|
14
|
-
The <%=
|
14
|
+
The <%= @sender_name %> team
|
15
15
|
</p>
|
16
16
|
</td>
|
17
17
|
</tr>
|
data/config/routes.rb
CHANGED
@@ -523,6 +523,13 @@ Spree::Core::Engine.add_routes do
|
|
523
523
|
|
524
524
|
resources :wished_items
|
525
525
|
resources :user_promotion
|
526
|
+
|
527
|
+
resources :order_histories, only: %i[index] do
|
528
|
+
member do
|
529
|
+
patch :archive
|
530
|
+
end
|
531
|
+
end
|
532
|
+
|
526
533
|
resources :order_promotions
|
527
534
|
resources :guest_card_classes
|
528
535
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
class InstallBlazer < ActiveRecord::Migration[7.0]
|
2
2
|
def change
|
3
|
-
create_table :blazer_queries do |t|
|
3
|
+
create_table :blazer_queries, if_not_exists: true do |t|
|
4
4
|
t.references :creator
|
5
5
|
t.string :name
|
6
6
|
t.text :description
|
@@ -10,7 +10,7 @@ class InstallBlazer < ActiveRecord::Migration[7.0]
|
|
10
10
|
t.timestamps null: false
|
11
11
|
end
|
12
12
|
|
13
|
-
create_table :blazer_audits do |t|
|
13
|
+
create_table :blazer_audits, if_not_exists: true do |t|
|
14
14
|
t.references :user
|
15
15
|
t.references :query
|
16
16
|
t.text :statement
|
@@ -18,20 +18,20 @@ class InstallBlazer < ActiveRecord::Migration[7.0]
|
|
18
18
|
t.datetime :created_at
|
19
19
|
end
|
20
20
|
|
21
|
-
create_table :blazer_dashboards do |t|
|
21
|
+
create_table :blazer_dashboards, if_not_exists: true do |t|
|
22
22
|
t.references :creator
|
23
23
|
t.string :name
|
24
24
|
t.timestamps null: false
|
25
25
|
end
|
26
26
|
|
27
|
-
create_table :blazer_dashboard_queries do |t|
|
27
|
+
create_table :blazer_dashboard_queries, if_not_exists: true do |t|
|
28
28
|
t.references :dashboard
|
29
29
|
t.references :query
|
30
30
|
t.integer :position
|
31
31
|
t.timestamps null: false
|
32
32
|
end
|
33
33
|
|
34
|
-
create_table :blazer_checks do |t|
|
34
|
+
create_table :blazer_checks, if_not_exists: true do |t|
|
35
35
|
t.references :creator
|
36
36
|
t.references :query
|
37
37
|
t.string :state
|
@@ -1,6 +1,6 @@
|
|
1
1
|
class CreateSpreeCmCommissionerTaxonBlazerQuery < ActiveRecord::Migration[7.0]
|
2
2
|
def change
|
3
|
-
create_table :cm_taxon_blazer_queries,if_not_exists: true do |t|
|
3
|
+
create_table :cm_taxon_blazer_queries, if_not_exists: true do |t|
|
4
4
|
t.references :taxon, foreign_key: { to_table: :spree_taxons }, null: false, index: true
|
5
5
|
t.references :blazer_query, foreign_key: { to_table: :blazer_queries }, null: false, index: true
|
6
6
|
t.timestamps
|
@@ -55,6 +55,6 @@ Gem::Specification.new do |s|
|
|
55
55
|
s.add_dependency 'counter_culture', '~> 3.2'
|
56
56
|
s.add_development_dependency 'pg'
|
57
57
|
s.add_development_dependency 'spree_dev_tools'
|
58
|
-
s.add_dependency 'blazer', '~> 3.0.
|
58
|
+
s.add_dependency 'blazer', '~> 3.0.4'
|
59
59
|
s.metadata['rubygems_mfa_required'] = 'true'
|
60
60
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spree_cm_commissioner
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.8.
|
4
|
+
version: 1.8.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- You
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-04-
|
11
|
+
date: 2025-04-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: spree
|
@@ -484,14 +484,14 @@ dependencies:
|
|
484
484
|
requirements:
|
485
485
|
- - "~>"
|
486
486
|
- !ruby/object:Gem::Version
|
487
|
-
version: 3.0.
|
487
|
+
version: 3.0.4
|
488
488
|
type: :runtime
|
489
489
|
prerelease: false
|
490
490
|
version_requirements: !ruby/object:Gem::Requirement
|
491
491
|
requirements:
|
492
492
|
- - "~>"
|
493
493
|
- !ruby/object:Gem::Version
|
494
|
-
version: 3.0.
|
494
|
+
version: 3.0.4
|
495
495
|
description: Add (optional) extension description here
|
496
496
|
email: you@example.com
|
497
497
|
executables: []
|
@@ -679,6 +679,7 @@ files:
|
|
679
679
|
- app/controllers/concerns/spree_cm_commissioner/content_cachable.rb
|
680
680
|
- app/controllers/concerns/spree_cm_commissioner/events/role_authorization.rb
|
681
681
|
- app/controllers/concerns/spree_cm_commissioner/exception_notificable.rb
|
682
|
+
- app/controllers/concerns/spree_cm_commissioner/order_concern.rb
|
682
683
|
- app/controllers/concerns/spree_cm_commissioner/transit/taxon_bitwise.rb
|
683
684
|
- app/controllers/concerns/spree_cm_commissioner/waiting_room_authorization.rb
|
684
685
|
- app/controllers/spree/admin/account_deletions_controller.rb
|
@@ -800,6 +801,7 @@ files:
|
|
800
801
|
- app/controllers/spree/api/v2/storefront/line_items_controller.rb
|
801
802
|
- app/controllers/spree/api/v2/storefront/nearby_places_controller.rb
|
802
803
|
- app/controllers/spree/api/v2/storefront/notifications_controller.rb
|
804
|
+
- app/controllers/spree/api/v2/storefront/order_histories_controller.rb
|
803
805
|
- app/controllers/spree/api/v2/storefront/order_products_taxons_controller.rb
|
804
806
|
- app/controllers/spree/api/v2/storefront/order_promotions_controller.rb
|
805
807
|
- app/controllers/spree/api/v2/storefront/order_qrs_controller.rb
|
@@ -934,6 +936,7 @@ files:
|
|
934
936
|
- app/factory/spree_cm_commissioner/order_telegram_message_factory.rb
|
935
937
|
- app/factory/spree_cm_commissioner/telegram_message_factory.rb
|
936
938
|
- app/finders/spree_cm_commissioner/line_items/find_by_variant_decorator.rb
|
939
|
+
- app/finders/spree_cm_commissioner/orders/find.rb
|
937
940
|
- app/finders/spree_cm_commissioner/orders/find_by_state.rb
|
938
941
|
- app/finders/spree_cm_commissioner/payment_methods/group_by_bank.rb
|
939
942
|
- app/helpers/spree/admin/base_helper_decorator.rb
|
@@ -951,6 +954,7 @@ files:
|
|
951
954
|
- app/helpers/spree_cm_commissioner/admin/video_on_demand_helper.rb
|
952
955
|
- app/helpers/spree_cm_commissioner/billing/monthly_orders_helper.rb
|
953
956
|
- app/helpers/spree_cm_commissioner/billing/qrcodes_helper.rb
|
957
|
+
- app/helpers/spree_cm_commissioner/pin_code_sender_helper.rb
|
954
958
|
- app/helpers/spree_cm_commissioner/telegram/base_helper.rb
|
955
959
|
- app/helpers/spree_cm_commissioner/transit/service_calendars_helper.rb
|
956
960
|
- app/interactors/spree_cm_commissioner/accommodation_search_detail.rb
|
@@ -1920,6 +1924,7 @@ files:
|
|
1920
1924
|
- app/views/spree/order_mailer/confirm_email.html.erb
|
1921
1925
|
- app/views/spree/order_mailer/ticket_email.html.erb
|
1922
1926
|
- app/views/spree/order_mailer/ticket_email.text.erb
|
1927
|
+
- app/views/spree/shared/_base_mailer_header.html.erb
|
1923
1928
|
- app/views/spree/telegram/errors/_error.html.erb
|
1924
1929
|
- app/views/spree/telegram/errors/forbidden.html.erb
|
1925
1930
|
- app/views/spree/telegram/errors/resource_not_found.html.erb
|
@@ -2315,6 +2320,7 @@ files:
|
|
2315
2320
|
- db/migrate/20250328072947_remove_unique_constraint_from_name_in_spree_roles.rb
|
2316
2321
|
- db/migrate/20250403040036_install_blazer.rb
|
2317
2322
|
- db/migrate/20250403083001_create_spree_cm_commissioner_taxon_blazer_query.rb
|
2323
|
+
- db/migrate/20250404050117_add_archived_at_to_spree_orders.rb
|
2318
2324
|
- docker-compose.yml
|
2319
2325
|
- docs/option_types/attr_types.md
|
2320
2326
|
- docs/private_key.pem
|
@@ -2453,9 +2459,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
2453
2459
|
version: '2.7'
|
2454
2460
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
2455
2461
|
requirements:
|
2456
|
-
- - "
|
2462
|
+
- - ">="
|
2457
2463
|
- !ruby/object:Gem::Version
|
2458
|
-
version:
|
2464
|
+
version: '0'
|
2459
2465
|
requirements:
|
2460
2466
|
- none
|
2461
2467
|
rubygems_version: 3.4.1
|