/**
  * Initializing Welcome view with initial data needed on the View
  *
  * @param Request $request
  * @return mixed
  */
 public function initializeWelcomeView(Request $request)
 {
     $user = null;
     $jsonArrayReply = [APIResponse::REQUEST_STATUS => APIResponse::SUCCESSFUL, 'session_id' => $request->session()->get(AppSession::SESSION_ID), "countries" => FormDataRepository::jsonCountryList()];
     if ($request->session()->has(AppSession::USER_ID)) {
         $user = UserModel::find($request->session()->get(AppSession::USER_ID));
         if ($user != null) {
             $jsonArrayReply = array_merge($jsonArrayReply, $user->toArray());
         }
     }
     return response()->json($jsonArrayReply);
 }
 /**
  * Saving Country of the User
  * @param Request $request
  * @return \Illuminate\Http\JsonResponse
  */
 public function saveCountry(Request $request)
 {
     $validator = Validator::make($request->all(), ['country' => 'required|in:' . implode(",", array_keys(FormDataRepository::countryList()))]);
     if ($validator->fails()) {
         return $validator->errors()->all();
     }
     if (!$request->session()->has(AppSession::USER_ID)) {
         $user = UserModel::create(['country' => $request->country]);
         $user->save();
     } else {
         $user = UserModel::findOrNew($request->session()->get(AppSession::USER_ID));
         $user->country = $request->country;
         $user->save();
     }
     AppSession::updateUserDataSession($request->session(), $user);
     return response()->json([APIResponse::REQUEST_STATUS => APIResponse::SUCCESSFUL]);
 }