41 lines
1.4 KiB
Ruby
41 lines
1.4 KiB
Ruby
module Suppliers
|
|
class EmployeeShiftsController < Suppliers::ApplicationController
|
|
def index
|
|
@employee_shifts = EmployeeShift.for_supplier(current_supplier, relevant_from: 1.week.ago)
|
|
#@employee_shifts.include_relations(:employee, :supplier)
|
|
# Only select shifts from currently linked and employees
|
|
@employee_shifts.select! do |shift|
|
|
return false unless current_supplier.employee_ids.include?(shift.employee.try(:id))
|
|
shift.employee.enrich_with_settings current_supplier.settings_for(shift.employee)
|
|
true
|
|
end
|
|
render json: @employee_shifts
|
|
end
|
|
def create
|
|
@employee_shift = EmployeeShift.new(employee_shift_params)
|
|
@employee_shift.supplier = current_supplier
|
|
@employee_shift.save
|
|
render json: @employee_shift
|
|
end
|
|
|
|
def update
|
|
@employee_shift = EmployeeShift.find_by_supplier_id_and_id!(current_supplier.id, params[:id])
|
|
@employee_shift.update employee_shift_params
|
|
render json: @employee_shift
|
|
end
|
|
|
|
def destroy
|
|
head :forbidden and return unless @employee_shift.supplier_id == current_supplier.id
|
|
@employee_shift= EmployeeShift.find_by_supplier_id_and_id!(current_supplier.id, params[:id])
|
|
@employee_shift.destroy
|
|
head :no_content
|
|
end
|
|
|
|
private
|
|
|
|
def employee_shift_params
|
|
params.require(:employee_shift).permit(:start_from, :end_on, :employee_id, :description)
|
|
end
|
|
end
|
|
end
|