Esempio n. 1
0
 public function saveUserTraits(UserService $user, $user_id)
 {
     try {
         $inputs = Request::only('trait_ids', 'type');
         $traits = [];
         $trait_ids = $inputs['trait_ids'];
         $query = ['select' => 'id', 'whereNotIn' => $trait_ids, 'list' => true];
         $non_user_traits = $user->getTraitsByType($inputs['type'], $query);
         $user->deleteUserTrait($user_id, $non_user_traits);
         for ($i = 0; $i < count($trait_ids); $i++) {
             $trait = [];
             if ($user->checkUserTraitArchive($user_id, $trait_ids[$i])) {
                 $trait = $user->restoreUserTrait($user_id, $trait_ids[$i]);
             } else {
                 if ($user->checkUserTrait($user_id, $trait_ids[$i])) {
                     $trait = $user->getUserTrait($user_id, $trait_ids[$i]);
                 } else {
                     $trait = $user->createUserTrait($user_id, $trait_ids[$i]);
                 }
             }
             if ($trait) {
                 $traits[] = $trait;
             }
         }
         if (count($traits) > 0 && !empty($traits)) {
             return $this->json_response->success($traits);
         }
         return $this->json_response->error();
     } catch (Exception $e) {
         return $this->json_response->error(['error' => $e->getMessage()]);
     }
 }