/** * Update the specified resource in storage. * * @param Request $request * @param int $id * @return Response */ public function update(Request $request, $id) { $rules = array('status' => 'exists:missions,status'); $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return Response::json($validator->messages(), 500); } else { $mission = Mission::findOrNew($id); if ($request->title) { $mission->title = $request->title; } $mission->status = $request->status; $mission->save(); if ($mission->status == 'completed' or $mission->status == 'canceled') { //Free employees if mission canceling or completed $mission->employees()->update(['mission_id' => null]); } return Response::json($mission); } }
/** * Put existing employee to mission and return it. * * @param Request $request * @return Response */ public function putMissionEmployee($mid, $eid) { $employee = Employee::findOrNew($eid); $rules = array('name' => 'required', 'position' => 'required'); $validator = Validator::make($employee->toArray(), $rules); if ($validator->fails()) { return Response::json($validator->messages(), 500); } else { $mission = Mission::findOrNew($mid); $mission->employees()->save($employee); return Response::json($employee); } }