/** *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(); }