/** * Contacting Manager by Talent * @param Request $request */ public function contactManager(Request $request) { $validator = Validator::make($request->all(), ['manager_id' => 'required', 'talent_id' => 'required', 'message' => 'required']); if ($validator->fails()) { return response()->json(['status' => 'error', 'error_type' => 'ID_MISSING']); } if (Session::get(SiteSessions::USER_ID) != $request->talent_id) { return response()->json(['status' => 'error', 'error_type' => 'TALENT_ID_INVALID']); } try { $user = User::find(Session::get(SiteSessions::USER_ID)); $manager = ManagersDatabase::find($request->manager_id); Event::fire(new SendMail(SendMail::MAIL_TYPE_CONTACT_MANAGER, $manager->email, [], ["manager" => $manager, "talent" => $user, "message" => $request->message])); DB::table('managers_contacted')->insert(['user_id' => $request->talent_id, 'manager_id' => $request->manager_id, 'message_to_manager' => $request->message, 'contacted_on' => Carbon::now()]); } catch (QueryException $e) { return response()->json(['status' => 'error', 'error_type' => 'DATABASE_ERROR']); } return response()->json(['status' => 'successful']); }