Exemplo n.º 1
0
 /**
  * @param $id
  */
 public function allUserData($id, $mode = 'show')
 {
     if (!($user = User::find($id))) {
         abort(404);
     }
     $name = $user->full_name;
     if (!($fullProfile = Profile::where('user_id', '=', $id)->first())) {
         $fullProfile = new Profile();
     }
     $cityLiving = $this->placeLiving($fullProfile->place_living_id);
     $cityFrom = $this->placeFrom($fullProfile->place_from_id);
     $languages_high = Language::where('profile_id', '=', $fullProfile->id)->where('level', '=', 'advanced')->get();
     $languages_med = Language::where('profile_id', '=', $fullProfile->id)->where('level', '=', 'intermediate')->get();
     $languages_low = Language::where('profile_id', '=', $fullProfile->id)->where('level', '=', 'basic')->get();
     //Avatar is optional
     if ($user->avatar) {
         $avatar = $user->avatar;
     }
     if ($mode == 'show' || $mode == 'references') {
         $references = Reference::where('profile_user_id', '=', $id)->with(['user'])->orderBy('updated_at', 'DES')->get();
         $age = $user->age;
         $owner = \Auth::id() == $id;
         $gender = $user->gender;
         $places = $user->placesWanted;
         $placesVisited = $user->placesVisited;
         $avg = Reference::where('profile_user_id', '=', $id)->avg('grade');
         $ref = false;
         $fav = boolval(Favorites::where('owner_id', \Auth::id())->where('user_id', $id)->first());
         if ($mode == 'references') {
             $ref = true;
         }
         return compact('fullProfile', 'references', 'name', 'avatar', 'ref', 'avg', 'cityFrom', 'cityLiving', 'age', 'gender', 'id', 'owner', 'fav', 'languages_high', 'languages_med', 'languages_low', 'places', 'placesVisited');
     } else {
         if ($mode == 'edit') {
             return compact('fullProfile', 'cityFrom', 'cityLiving', 'name', 'avatar', 'id', 'languages_high', 'languages_med', 'languages_low');
         } else {
             return abort(404);
         }
     }
 }