# frozen_string_literal: true module Api # OrdersController class OrdersController < AuthenticatedController def index @orders = current_user_account.orders render json: serialized_collection.serializable_hash, status: :ok end def create @service = PaymentService.new(@order, permitted_params[:card_id]) @order = @service.call if @order render json: serialized_object.serializable_hash, status: :ok else render json: { errors: @service.error_messages }, status: :unprocessable_entity end end private def serialized_collection @serialized_collection ||= OrderSerializer.new(@orders) end def serialized_object @serialized_object ||= OrderSerializer.new(@order) end end end