1
0
mirror of https://github.com/LaCasemate/fab-manager.git synced 2024-12-12 23:09:03 +01:00
fab-manager/app/controllers/api/checkout_controller.rb

40 lines
1.4 KiB
Ruby
Raw Normal View History

# frozen_string_literal: true
2022-09-28 12:54:29 +02:00
require 'stripe/helper'
require 'pay_zen/helper'
# API Controller for cart checkout
2023-02-24 17:26:55 +01:00
class API::CheckoutController < API::APIController
include ::API::OrderConcern
2022-08-25 08:52:17 +02:00
before_action :authenticate_user!
before_action :current_order
before_action :ensure_order
def payment
2022-08-27 18:59:59 +02:00
authorize @current_order, policy_class: CheckoutPolicy
if @current_order.statistic_profile_id.nil? && current_user.privileged?
user = User.find(params[:customer_id])
@current_order.statistic_profile = user.statistic_profile
end
res = Checkout::PaymentService.new.payment(@current_order, current_user, params[:coupon_code],
params[:payment_id])
2022-08-25 08:52:17 +02:00
render json: res
2022-09-28 12:54:29 +02:00
rescue Stripe::StripeError => e
render json: Stripe::Helper.human_error(e), status: :unprocessable_entity
rescue PayzenError => e
render json: PayZen::Helper.human_error(e), status: :unprocessable_entity
2022-08-25 08:52:17 +02:00
rescue StandardError => e
Rails.logger.error e
Rails.logger.debug e.backtrace
2022-08-25 08:52:17 +02:00
render json: e, status: :unprocessable_entity
end
def confirm_payment
2022-08-27 18:59:59 +02:00
authorize @current_order, policy_class: CheckoutPolicy
2022-08-26 20:10:21 +02:00
res = Checkout::PaymentService.new.confirm_payment(@current_order, current_user, params[:coupon_code], params[:payment_id])
2022-08-25 08:52:17 +02:00
render json: res
rescue StandardError => e
render json: e, status: :unprocessable_entity
end
end