/**
  *Requesting recommendation from the person as specified in the form
  * @param Request $request
  */
 public function request(HttpRequest $request)
 {
     $validator = Validator::make($request->all(), ['name' => 'required', 'email' => 'required|email', 'recommender_type' => 'required|in:' . SiteConstants::RECOMMENDER_COACH . "," . SiteConstants::RECOMMENDER_ATHLETE]);
     if ($validator->fails()) {
         return redirect()->back()->withErrors($validator->errors());
     }
     $recommendation = new Recommendations();
     $recommendation->user_id = Session::get(SiteSessions::USER_ID);
     $recommendation->status = SiteConstants::RECOMMENDATION_STATUS_WAITING;
     $recommendation->name = $request->get("name");
     $recommendation->email = $request->get("email");
     $recommendation->recommender_type = SiteConstants::getRecommenderType()[$request->get("recommender_type")];
     $recommendation->save();
     $userProfile = UserProfile::find(Session::get(SiteSessions::USER_ID));
     //Send Mail to the Desired Person for recommendation
     Event::fire(new SendMail(SendMail::MAIL_TYPE_REQUEST_RECOMMENDATION, $recommendation->email, [], ["recommendation" => $recommendation, "userProfile" => $userProfile]));
     Session::flash('recommendation_request_status', 'success');
     return redirect()->back();
 }