toArray(); $get_countries = country::all()->toArray(); return view('Frontend.Pages.Login.login')->with(['programs' => $get_program, 'get_country' => $get_countries]); } public function insert_user_data(Request $request) { // Check if the email already exists in the database $existingUser = User::where('email', $request->input('email_id'))->first(); if ($existingUser) { return response()->json(['success' => false, 'status' => 400, 'message' => 'Email already exists. Please choose a different email']); } $user_data = new User; $user_data->first_name = $request->input('first_name'); $user_data->last_name = $request->input('last_name'); $user_data->email = $request->input('email_id'); $user_data->password = Hash::make($request->input('password1')); $user_data->phone_number = $request->input('phone_number'); $user_data->gender = $request->input('gender'); $user_data->date_of_birth = $request->input('date_of_birth'); $user_data->address_line1 = $request->input('address'); $user_data->city = $request->input('city'); $user_data->state = $request->input('state'); $user_data->country = $request->input('manual_countries'); $user_data->post_code = $request->input('zip_code'); $user_data->lang_level = $request->input('lang_level'); $user_data->hear_about_us = $request->input('hear_about'); $user_data->motivation_to_join_program = $request->input('describe'); $user_data->any_comment = $request->input('comment'); $user_data->save(); Mail::to($user_data->email)->send(new RegisterationMail($user_data)); $credetials = [ 'email' => $request->input('email_id'), 'password' => $request->input('password'), ]; Auth::login($user_data); // dd(auth()->user()->id); $user_id = auth()->user()->id; // if (Auth::login($user_data)) { return response()->json(['success' => true, 'status' => 200,'user_id' => $user_id]); // } } public function login_user(Request $request) { $credetials = [ 'email' => $request->email, 'password' => $request->password, ]; if (Auth::attempt($credetials)) { return response()->json(['success' => true, 'status' => 200]); } else { return response()->json(['error' => 'Invalid Credentials', 'status' => 401]); } } public function forgot_password() { return view('Frontend.Pages.Login.forgot_password'); } public function add_forgot_password(Request $request) { $user = DB::table('iam_principal')->where('email', $request->email)->first(); if (!$user) { return response()->json(['error' => 'Email not found.', 'status' => 404]); } $token = Str::random(64); $expirationTime = now()->addMinutes(5); $data = [ 'email' => $request->email, 'token' => $token, 'expires_at' => $expirationTime, 'created_at' => Carbon::now(), ]; $user_token = DB::table('password_reset_tokens')->where('email', $request->email)->first(); if ($user_token) { DB::table('password_reset_tokens') ->where('email', $request->email) ->update($data); } else { DB::table('password_reset_tokens') ->insert($data); } // Mail::send('Frontend.Templates.forgot_password', ['token' => $token], function($message) use ($request) { // $message->to($request->email); // $message->subject("Reset Password"); // }); // dd($data); Mail::to($request->email)->send(new PasswordResetMail($data)); return response()->json(['success' => true, 'status' => 200]); } public function resend_link(Request $request) { $token = Str::random(64); $expirationTime = now()->addMinutes(5); $data = [ 'email' => $request->email, 'token' => $token, 'expires_at' => $expirationTime, 'created_at' => Carbon::now(), ]; $user_token = DB::table('password_reset_tokens')->where('email', $request->email)->first(); // dd($user_token); if ($user_token) { DB::table('password_reset_tokens') ->where('email', $request->email) ->update($data); } else { DB::table('password_reset_tokens') ->insert($data); } // Mail::send('Frontend.Templates.forgot_password', ['token' => $token], function($message) use ($request) { // $message->to($request->email); // $message->subject("Reset Password"); // }); Mail::to($request->email)->send(new PasswordResetMail($token)); return response()->json(['success' => true, 'status' => 200, 'message' => 'A new password reset link has been sent to your email.']); } public function change_password() { return view('Frontend.Pages.Login.reset_new_password'); } public function password_set($token) { return view('Frontend.Pages.Login.set_password')->with(['token' => $token]); } public function confirm_forgot_password(Request $request) { $updatePassword = DB::table('password_reset_tokens') ->where([ 'email' => $request->email, 'token' => $request->token, ]) ->first(); if (!$updatePassword) { return response()->json(['status' => 401, 'message' => 'Invalid or expired token']); } // Check if the token has expired if (Carbon::now()->diffInMinutes($updatePassword->expires_at) > 0) { return response()->json(['status' => 401, 'message' => 'Token has expired']); } User::where('email', $request->email) ->update(['password' => Hash::make($request->password)]); DB::table('password_reset_tokens') ->where(['email' => $request->email]) ->delete(); return response()->json(['success' => true, 'status' => 200]); } public function page_check_email() { return view('Frontend.Pages.Login.check_password_reset_mail'); } public function success_password_reset() { return view('Frontend.Pages.Login.success_password_reset'); } public function get_programs(Request $request) { $countryId = $request->input('country_id'); $programs = Program::where('country_xid', $countryId)->get(); return response()->json(['programs' => $programs]); } public function get_single_program_detail(Request $request) { $programId = $request->input('program_id'); // Fetch the program details based on the selected program ID $program = Program::find($programId); return response()->json(['program' => $program]); } public function fetch_converted_amount(Request $request) { $convert_to = $request->input('convert_to'); if ($convert_to == 1) { $convert_name = 'USD'; } else if ($convert_to == 2) { $convert_name = 'GBP'; } else { $convert_name = 'EUR'; } // $converted = Currency::convert() // ->from('GBP') // ->to($convert_name) // ->amount(152.60) // ->get(); $fromCurrency = 'GBP'; $gbp_price = 200; $apiKey = config('services.exchangerates.api_key'); $baseUrl = 'https://api.apilayer.com/exchangerates_data_api/latest'; $client = new Client(); // $response = $client->get("{$baseUrl}?access_key={$apiKey}"); $response = \Http::get('https://api.freecurrencyapi.com/v1/latest?apikey=fca_live_IUpn22wjq5zhcvRqGix4k6FlOZKo9SOHSAobRtMd'); $data = json_decode($response->getBody(), true); // echo "
";
//            print_r($data['data']);
//            die;

            $conversionRate = $data['data'][$convert_name] / $data['data'][$fromCurrency];
            $convertedAmount = $gbp_price * $conversionRate;
        
        return response()->json([
                    'converted_amount' => $convertedAmount
        ]);
    }

    public function logout() {
        Auth::logout();
        return redirect('/website_login');
    }

}