Merge pull request 'Expose tables via API' (#80) from arrangements-api into main
All checks were successful
Run unit tests / unit_tests (push) Successful in 1m29s
Build Nginx-based docker image / build-static-assets (push) Successful in 34m23s

Reviewed-on: #80
This commit is contained in:
bustikiller 2024-11-02 12:19:16 +00:00
commit f75f903363
2 changed files with 8 additions and 2 deletions

View File

@ -2,10 +2,15 @@
class TablesArrangementsController < ApplicationController
def index
render json: TablesArrangement.all.order(discomfort: :asc).limit(10)
render json: TablesArrangement.all.order(discomfort: :asc).limit(3).as_json(only: %i[id discomfort])
end
def show
render json: TablesArrangement.find(params[:id])
Seat.joins(:guest).where(tables_arrangement_id: params[:id])
.pluck(:table_number, Arel.sql("guests.first_name || ' ' || guests.last_name "), 'guests.id')
.group_by(&:first)
.transform_values { |table| table.map { |(_, name, id)| { id:, name: } } }
.map { |number, guests| { number:, guests: } }
.then { |result| render json: result }
end
end

View File

@ -2,4 +2,5 @@
class TablesArrangement < ApplicationRecord
has_many :seats
has_many :guests, through: :seats
end