public function createUserSkill(UserService $user, $user_id) { $retrieve = ['skill_id', 'rate']; try { $input = Request::only($retrieve); $validation = $user->validateUserSkill($input); if (!$validation->fails()) { if ($user->checkUserSkillArchive($user_id, $input['skill_id'])) { $restored_skill = $user->restoreUserSkill($user_id, $input['skill_id']); if ($restored_skill) { $skill = $user->updateUserSkill($user_id, $restored_skill['id'], $input); } } else { if ($user->checkUserSkill($user_id, $input['skill_id'])) { $skill = $user->getUserSkill($user_id, $input['skill_id']); } else { $skill = $user->createUserSkill($user_id, $input['skill_id'], $input['rate']); } } } else { return $this->json_response->error(['validation_message' => $validation->messages()]); } if (!empty($skill)) { return $this->json_response->success($skill); } return $this->json_response->error(); } catch (Exception $e) { return $this->json_response->error(['error' => $e->getMessage()]); } }