Files
Global-Jain/app/Http/Controllers/Backend/UserController.php
2025-11-05 10:37:10 +05:30

203 lines
5.5 KiB
PHP

<?php
namespace App\Http\Controllers\Backend;
use Exception;
use App\Models\User;
use App\Models\UserDetail;
use App\Models\Dharma;
use App\Models\Jati;
use App\Constant\Constant;
use Illuminate\Http\Request;
use Illuminate\Http\JsonResponse;
use Illuminate\Support\Facades\Log;
use App\Http\Controllers\BaseController;
use App\Http\Requests\User\StoreUserRequest;
use App\Http\Requests\User\UpdateUserRequest;
use App\Repositories\Backend\User\UserService;
class UserController extends BaseController
{
/**
* @var UserService
*/
protected $userService;
/**
* UserController constructor.
* @param UserService $userService
*/
public function __construct(UserService $userService)
{
$this->userService = $userService;
}
/**
* This function is returning the Datatable columns response
*
* @param Request $request
* @return array|object
*/
public function getUserListing(Request $request)
{
$response = [];
try {
$response = $this->userService->getForDataTable($request->all());
} catch (Exception $ex) {
Log::error($ex->getMessage());
}
return $response;
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
try {
} catch (Exception $ex) {
Log::error($ex->getMessage());
}
return view('backend.user.list');
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
try {
//
$dharmaList = Dharma::pluck('name','id');
$jatiList = Jati::pluck('name','id');
} catch (Exception $ex) {
Log::error($ex->getMessage());
}
return view('backend.user.create', compact('dharmaList', 'jatiList'));
}
/**
* Store a newly created resource in storage.
*
* @param \App\Http\Requests\StoreUserRequest $request
* @return \Illuminate\Http\Response
*/
public function store(StoreUserRequest $request)
{
try {
$response = $this->userService->create($request);
if ($response) {
return redirect(route('admin.user.index'))
->with('flash_success', __('message.create_user_success'));
}
} catch (Exception $ex) {
Log::error($ex->getMessage());
}
return redirect()->back()->with('flash_error', __('message.create_user_error'));
}
/**
* Display the specified resource.
*
* @param \App\Models\User $user
* @return \Illuminate\Http\Response
*/
public function show(user $user)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param \App\Models\User $user
* @return \Illuminate\Http\Response
*/
public function edit(User $user)
{
try {
$dharmaList = Dharma::pluck('name','id');
$jatiList = Jati::pluck('name','id');
$userDetail = UserDetail::where('user_id',$user->id)->first();
} catch (Exception $ex) {
Log::error($ex->getMessage());
}
return view('backend.user.edit', compact('dharmaList','jatiList','user','userDetail'));
}
/**
* Update the specified resource in storage.
*
* @param \App\Http\Requests\UpdateUserRequest $request
* @param \App\Models\User $user
* @return \Illuminate\Http\Response
*/
public function update(UpdateUserRequest $request, User $user)
{
try {
$response = $this->userService->update($user, $request);
if ($response) {
return redirect(route('admin.user.index'))
->with('flash_success', __('message.update_user_success'));
}
} catch (Exception $ex) {
Log::error($ex->getMessage());
}
return redirect()->back()->with('flash_error', __('message.update_user_error'));
}
/**
* Remove the specified resource from storage.
*
* @param \App\Models\User $user
* @return \Illuminate\Http\Response
*/
public function destroy(User $user)
{
try {
$response = $user->delete();
if ($response) {
return response()->json(['success' => Constant::STATUS_TRUE, 'message' => __('message.delete_user_success')]);
}
} catch (Exception $ex) {
Log::error($ex->getMessage());
}
return response()->json(['error' => Constant::STATUS_TRUE, 'message' => __('message.delete_user_error')]);
}
/**
* This function is for the grid checkbox multiple records actions
*
* @param Request $request
* @return JsonResponse
*/
public function gridRecordsAction(Request $request): JsonResponse
{
try {
$actionType = $request->action_type ?? Constant::NULL;
$checkedRecords = $request->checked_records ?? [];
$updateStatus = $this->userService->gridActions($actionType, $checkedRecords);
if ($updateStatus) {
return response()->json(['success' => Constant::STATUS_TRUE, 'message' => __('message.update_user_success')]);
}
} catch (Exception $ex) {
Log::error($ex->getMessage());
}
return response()->json(['error' => Constant::STATUS_TRUE, 'message' => __('message.something_went_wrong')]);
}
}