2021-08-10 08:45:23 +02:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
class CustomWizard::AdminProController < CustomWizard::AdminController
|
|
|
|
skip_before_action :check_xhr, :preload_json, :verify_authenticity_token, only: [:authorize, :authorize_callback]
|
|
|
|
|
|
|
|
def index
|
|
|
|
render_serialized(CustomWizard::Pro.new, CustomWizard::ProSerializer, root: false)
|
|
|
|
end
|
|
|
|
|
|
|
|
def authorize
|
|
|
|
request_id = SecureRandom.hex(32)
|
|
|
|
cookies[:user_api_request_id] = request_id
|
2021-08-18 08:59:43 +02:00
|
|
|
redirect_to CustomWizard::Pro.auth_request(current_user.id, request_id).to_s
|
2021-08-10 08:45:23 +02:00
|
|
|
end
|
|
|
|
|
|
|
|
def authorize_callback
|
|
|
|
payload = params[:payload]
|
|
|
|
request_id = cookies[:user_api_request_id]
|
|
|
|
|
2021-08-18 08:59:43 +02:00
|
|
|
CustomWizard::Pro.auth_response(request_id, payload)
|
|
|
|
CustomWizard::Pro.update_subscription
|
2021-08-10 08:45:23 +02:00
|
|
|
|
|
|
|
redirect_to '/admin/wizards/pro'
|
|
|
|
end
|
|
|
|
|
|
|
|
def destroy
|
|
|
|
if CustomWizard::ProAuthentication.destroy
|
|
|
|
render json: success_json
|
|
|
|
else
|
|
|
|
render json: failed_json
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def update_subscription
|
2021-08-18 08:59:43 +02:00
|
|
|
if CustomWizard::Pro.update
|
2021-08-10 08:45:23 +02:00
|
|
|
render json: success_json.merge(
|
|
|
|
subscription: CustomWizard::ProSubscriptionSerializer.new(
|
|
|
|
CustomWizard::ProSubscription.new,
|
|
|
|
root: false
|
|
|
|
)
|
|
|
|
)
|
|
|
|
else
|
|
|
|
render json: failed_json
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|