File: /mnt/data/ghayatcom/ghayatcom-api/app/Http/Controllers/Api/SiteLanguageController.php
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\SiteLanguage;
use Auth;
use DB;
use Exception;
use Throwable;
use Illuminate\Database\QueryException;
use Illuminate\Support\Carbon;
class SiteLanguageController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index(Request $request)
{
try {
$paginate = $request->count_per_page ? $request->count_per_page : 10;
$pageNumber = $request->page ? $request->page : 1;
$search_key = $request->search ? $request->search : '';
$list_type = $request->list_type ? $request->list_type : 'list';
$status = $request->status ? $request->status : '';
$sort_by_col = (isset($request->sort_by)) ? $request->sort_by : 'id';
$data_order_by = $request->order_by;
/** @var string $data_order_by */
$orderBy = $data_order_by ? strtoupper($data_order_by) : strtoupper('asc');
$list = SiteLanguage::whereNotNull('id');
if(!empty($search_key)) {
$list = $list->where(function($q) use($search_key) {
$q->where('name', 'LIKE', "%{$search_key}%");
});
}
if(!empty($status)) {
$list = $list->where('is_enable', $status);
}
if($sort_by_col) {
/**0
* @var string $sort_by_col
* @var string $orderBy
*/
$list = $list->orderBy($sort_by_col, $orderBy);
}
if($list_type == 'paginate') {
return self::sentResponse(200, $list->paginate($paginate), __('digimed_validation.success_response.data_fetch_success'));
} else {
return self::sentResponse(200, $list->get(), __('digimed_validation.success_response.data_fetch_success'));
}
} catch(Exception | Throwable | QueryException $e) {
return self::sentResponse(500, [], $e->getMessage());
}
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
try {
/** @var \App\User $user */
$user = Auth::user();
$auth_id = auth()->user()->id;
$siteLanguage = new SiteLanguage();
$siteLanguage->name = $request->name;
$siteLanguage->code = $request->code;
$siteLanguage->is_default = 0;
$siteLanguage->is_enable = 1;
$siteLanguage->created_by = $auth_id;
$siteLanguage->save();
return self::sentResponse(200, [], __('digimed_validation.success_response.data_store_success'));
} catch(Exception | Throwable | QueryException $e) {
return self::sentResponse(500, [], $e->getMessage());
}
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request)
{
try {
/** @var \App\User $user */
$user = Auth::user();
$auth_id = auth()->user()->id;
$siteLanguage = SiteLanguage::find($request->id);
$siteLanguage->name = $request->name;
$siteLanguage->code = $request->code;
$siteLanguage->is_default = 0;
$siteLanguage->is_enable = 1;
$siteLanguage->updated_by = $auth_id;
$siteLanguage->save();
return self::sentResponse(200, [], __('digimed_validation.success_response.data_update_success'));
} catch(Exception | Throwable | QueryException $e) {
return self::sentResponse(500, [], $e->getMessage());
}
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy(Request $request)
{
try {
/** @var object $authRole */
$authRole = Auth::user();
$auth_id = $authRole->id;
$siteLanguage = SiteLanguage::find($request->id);
$siteLanguage->deleted_by = $auth_id;
$siteLanguage->save();
$siteLanguage->delete();
return self::sentResponse(200, [], __('digimed_validation.success_response.data_delete_success'));
} catch(Exception | Throwable | QueryException $e) {
return self::sentResponse(500, [], $e->getMessage());
}
}
}