Expose tables via API #80
@ -2,10 +2,15 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
class TablesArrangementsController < ApplicationController
 | 
					class TablesArrangementsController < ApplicationController
 | 
				
			||||||
  def index
 | 
					  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
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def show
 | 
					  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
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
				
			|||||||
@ -2,4 +2,5 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
class TablesArrangement < ApplicationRecord
 | 
					class TablesArrangement < ApplicationRecord
 | 
				
			||||||
  has_many :seats
 | 
					  has_many :seats
 | 
				
			||||||
 | 
					  has_many :guests, through: :seats
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user