This repository has been archived on 2025-07-15. You can view files and clone it, but cannot push or open issues or pull requests.
Files
lean_in_world/app/Http/Controllers/Frontend/HomeController.php
meghamalore eed0ce11d2 first commit
2024-07-04 16:57:26 +05:30

160 lines
6.0 KiB
PHP

<?php
namespace App\Http\Controllers\Frontend;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\Admin\program;
use App\Models\Admin\country;
use App\Models\Admin\faq;
use App\Models\Admin\blog_category;
use App\Models\Admin\blog;
use App\Models\Admin\Testimonial;
use App\Models\Frontend\news_letter;
use App\Models\Frontend\user_rating;
use Illuminate\Support\Facades\Auth;
use Illuminate\Database\QueryException;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use App\Models\Admin\latest_update;
//use League\CommonMark\Attributes\Country;
class HomeController extends Controller {
public function index() {
$show_program = Program::where('is_active', 1)->get()->toArray();
$user_rating = user_rating::all()->toArray();
$show_countries = country::all()->toArray();
$latestFaqs = FAQ::latest()->limit(5)->get();
$blog_one = blog::latest()->limit(1)->get();
$blog_three = blog::latest()->limit(3)->get();
$blog_categ = blog_category::latest()->limit(2)->get()->toArray();
$testimonial = Testimonial::with('country')->get()->toArray();
$country_count = country::count();
return view('Frontend.Pages.Home.home')
->with([
'program' => $show_program,
'country' => $show_countries,
'faq' => $latestFaqs,
'blog_singal' => $blog_one,
'blog_muilti' => $blog_three,
'blog_category' => $blog_categ,
'test' => $testimonial,
'user_rate' => $user_rating,
'country_count' => $country_count,
]);
}
public function getCountryFlag($countryCode) {
$flag = Country::getEmojiFlag($countryCode);
return $flag;
}
public function get_countries() {
$show_countries = Country::all(['country_code', 'name'])->toArray();
$countryData = collect($show_countries)->map(function ($item) {
return [
'id' => $item['country_code'],
'text' => $item['name']
];
});
return response()->json($countryData);
}
public function home_get_programs(Request $request) {
$country_code = $request->input('country_code');
$country = Country::where('country_code', $country_code)->first()->toArray();
// dd($country_code,$query->toSql(), $query->getBindings());
$countryId = $country['id'];
$programs = Program::where('country_xid', $countryId)
->where('is_active', 1)
->get(['id', 'program_title', 'thumbnail'])
->toArray();
// dd($programs);
return response()->json([
'programs' => $programs,
]);
}
// public function insert_newsletter(Request $request) {
// $existingEmail = news_letter::where('email', $request->input('email_id'))->first();
// if ($existingEmail) {
// return response()->json(['success' => false, 'status' => 400, 'message' => 'Email already exists. Please choose a different email']);
// }
//
// $add_newsletter_data = new news_letter;
// $add_newsletter_data->first_name = $request->input('first_name');
// $add_newsletter_data->email = $request->input('email');
// $add_newsletter_data->save();
//
// return response()->json(['success' => true, 'status' => 200, 'message' => 'Newsletter added successfully']);
//}
public function insert_newsletter(Request $request) {
try {
$existingEmail = news_letter::where('email', $request->input('email_id'))->first();
if ($existingEmail) {
return response()->json(['success' => false, 'status' => 400, 'message' => 'Email already exists. Please choose a different email']);
}
$add_newsletter_data = new news_letter;
$add_newsletter_data->first_name = $request->input('first_name');
$add_newsletter_data->email = trim($request->input('email'));
$add_newsletter_data->save();
return response()->json(['success' => true, 'status' => 200, 'message' => 'Newsletter added successfully']);
} catch (QueryException $e) {
if ($e->errorInfo[1] == 1062) {
// Handle unique constraint violation exception (error code 1062)
return response()->json(['success' => false, 'status' => 400, 'message' => 'Email already exists. Please choose a different email']);
}
// Handle other database-related exceptions if necessaryl']);
return response()->json(['success' => false, 'status' => 500, 'message' => 'Database error occurred. Please try again later.']);
}
}
public function view_newsletter() {
$view_newsletter_data = news_letter::all()->toArray();
// dd($view_newsletter_data);
return view('Admin.Pages.manage_newsletter.manage_newsletter', ['newsletter' => $view_newsletter_data]);
}
public function store_rating(Request $request) {
// Check if the user is authenticated
if (!auth()->check()) {
return response()->json(['success' => false, 'status' => 401]);
}
$userIds = auth()->id();
// Data to be inserted or updated
$data = [
'principal_xid' => $userIds,
'rating' => $request->input('star-rating'),
];
// Use updateOrInsert to update or insert the rating
user_rating::updateOrInsert(
['principal_xid' => $userIds], $data
);
return response()->json(['success' => true, 'status' => 200]);
}
public function programs_by_country($countryId) {
$country = Country::with(['programs' => function($query) {
$query->where('is_active', 1);
}])->findOrFail($countryId);
return response()->json(['program_country' => $country]);
}
}