Class: Api::Aoa::V1::ReservationsController

Inherits:
BaseController
  • Object
show all
Includes:
EncryptableHelper
Defined in:
app/controllers/api/aoa/v1/reservations_controller.rb

Constant Summary

Constants inherited from BaseController

BaseController::CACHE_NAMESPACE

Instance Method Summary collapse

Methods included from EncryptableHelper

#decrypt, #encrypt, #generate_signature

Methods inherited from BaseController

#identity_cache_memoization

Methods included from LogrageCustomLogger

#append_info_to_payload

Methods included from ResponseCacheConcern

#my_response_cache

Instance Method Details

#historyObject



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'app/controllers/api/aoa/v1/reservations_controller.rb', line 6

def history
  decrypted_data = decrypt(params[:token])
  aoa_user_id = decrypted_data if decrypted_data.present?

  reservations = Reservation.joins(:aoa_reservation).
    where(aoa_reservations: { aoa_user_id: aoa_user_id }).exclude_temporary.group('reservations.id')

  order_clause = params[:sort] == 'created_at_desc' ? 'reservations.created_at DESC' : 'reservations.id DESC'
  reservations = reservations.order(order_clause)
  pagy, reservations = pagy(reservations)
  pagy.vars[:metadata] = [:first_url, :prev_url, :page_url, :next_url, :last_url, :count]
   = {
    metadata: (pagy),
  }

  serialized_data = Api::Aoa::V1::ReservationSerializer.new(reservations).as_json.merge()
  render json: serialized_data
end

#showObject



25
26
27
28
29
30
31
32
33
# File 'app/controllers/api/aoa/v1/reservations_controller.rb', line 25

def show
  aoa_user_id = decrypt(params[:token]) if params[:token].present?

  reservation = Reservation.includes(:aoa_reservation).where(id: params.require(:id),
                                                             aoa_reservations: { aoa_user_id: aoa_user_id }).exclude_temporary.last

  serialized_data = Api::Aoa::V1::ReservationSerializer.new(reservation)
  render json: serialized_data
end