Fix employee adding

This commit is contained in:
2015-02-27 11:09:16 +01:00
parent 6e805fed3e
commit bfc0f336d1
13 changed files with 137 additions and 21 deletions
@@ -20,10 +20,23 @@ module Suppliers
# POST /employees
# POST /employees.json
def create
@employee = Employee.find_by_email(employee_params[:email]) if employee_params[:email].present?
valid = false
if existing_employee = Employee.find_by_email(employee_params[:email])
@employee = existing_employee
if valid = @employee.valid?
current_supplier.add_employee @employee
@employee.update_attributes employee_params
end
else
@employee = Employee.new(employee_params)
@employee.password = SecureRandom.hex(8)
if valid = @employee.save
current_supplier.add_employee @employee
@employee.update_attributes employee_params # needed for supplier specific settings
end
end
if @employee.save
current_supplier.add_employee @employee unless current_supplier.employee_ids.include? @employee.id # already linked
if valid
render json: @employee, serializer: Suppliers::EmployeeSerializer, status: :created
else
render json: {errors: @employee.errors}, status: :unprocessable_entity