feat: Refactor cart storage to use API architecture

Move store_cart functionality from main EventsController to API namespace:
- Add store_cart method to Api::V1::EventsController with API key bypass
- Remove store_cart from main EventsController
- Update routes to use RESTful API endpoint structure
- Maintain session-based cart storage for frontend compatibility
This commit is contained in:
kbe
2025-08-30 20:12:50 +02:00
parent 6ea3005a65
commit b493027c86
5 changed files with 56 additions and 48 deletions

View File

@@ -6,7 +6,7 @@ class EventsController < ApplicationController
include StripeConcern
before_action :authenticate_user!, only: [ :checkout, :process_names, :payment_success, :download_ticket ]
before_action :set_event, only: [ :show, :checkout, :process_names, :store_cart ]
before_action :set_event, only: [ :show, :checkout, :process_names ]
# Display all events
def index
@@ -91,16 +91,6 @@ class EventsController < ApplicationController
process_payment(cart_data)
end
# Store cart data in session (AJAX endpoint)
def store_cart
cart_data = params[:cart] || {}
session[:pending_cart] = cart_data
render json: { status: "success", message: "Cart stored successfully" }
rescue => e
Rails.logger.error "Error storing cart: #{e.message}"
render json: { status: "error", message: "Failed to store cart" }, status: 500
end
# Handle successful payment
def payment_success