Files
gps-frontend/app/Http/Controllers/TripsLabelingController.php
wayanrivan cbca01a8e2 update
2026-07-20 11:28:06 +07:00

242 lines
7.2 KiB
PHP

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\UserLogs;
use Auth;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\DB;
use App\Responses;
use Validator;
class TripsLabelingController extends Controller
{
public function api_show_trips_label(Request $req, $id)
{
try {
$data = DB::table('t_sites_label')
->where('id', $id)
->first();
if (!$data) {
$apiResp = Responses::error("Sites labeling not found");
return new Response($apiResp, $apiResp["meta"]["code"]);
}
$apiResp = [
"meta" => [
"code" => 200,
"type" => "success",
"message" => "success",
],
"data" => $data,
];
return new Response($apiResp, $apiResp["meta"]["code"]);
} catch (\Exception $e) {
$apiResp = Responses::error($e->getMessage());
return new Response($apiResp, $apiResp["meta"]["code"]);
}
}
/**
* View
*/
public function view_trips_label(Request $req)
{
$data = [];
$log = [
"module" => "Trips Label",
"action" => "View",
"desc" => "Open Trips Label",
];
UserLogs::insert(Auth::user()->id, $log);
return view("menu_v1.configs.trips_label", $data);
}
/**
* API
*/
public function api_list_trips_label(Request $req)
{
try {
$datas = DB::table('t_sites_label')
->where('isdeleted', 0)
->get();
foreach ($datas as $key => $row) {
$datas[$key]->DT_RowIndex = $key + 1;
$datas[$key]->action = "-";
}
$apiResp = Responses::success("success list sites labeling");
$apiResp["count"] = count($datas);
$apiResp["data"] = $datas;
return new Response($apiResp, $apiResp["meta"]["code"]);
} catch (\Exception $e) {
$apiResp = Responses::error($e->getMessage());
return new Response($apiResp, $apiResp["meta"]["code"]);
}
}
/**
* Show the form for creating a new resource.
*
* @return Response
*/
public function api_add_trips_label(Request $req)
{
try {
$now = time();
$input = [
"address" => $req->address,
"lat" => $req->lat,
"lng" => $req->lng,
"radius" => $req->radius
];
$rulesInput = [
"address" => "required|string",
"lat" => "required|numeric|between:-90,90",
"lng" => "required|numeric|between:-180,180",
"radius" => "required|integer|min:0",
];
// validasi input
$isValidInput = Validator::make($input, $rulesInput);
if (!$isValidInput->passes()) {
$apiResp = Responses::bad_input($isValidInput->messages()->first());
return new Response($apiResp, $apiResp["meta"]["code"]);
}
DB::beginTransaction();
$insert = [
"address" => $req->address,
"lat" => $req->lat,
"lng" => $req->lng,
"radius" => $req->radius,
// "created_at" => date("Y-m-d H:i:s", $now),
// "udt" => date("Y-m-d H:i:s", $now),
// "created_by" => Auth::user()->id,
// "uby" => Auth::user()->id
];
DB::table('t_sites_label')->insert($insert);
$apiResp = Responses::created("success add new trips label");
DB::commit();
$log = [
"module" => "Trips Label",
"action" => "Create",
"desc" => "Add new trips label: " . $req->address,
];
UserLogs::insert(Auth::user()->id, $log);
return new Response($apiResp, $apiResp["meta"]["code"]);
} catch (\Exception $e) {
DB::rollBack();
$apiResp = Responses::error($e->getMessage());
return new Response($apiResp, $apiResp["meta"]["code"]);
}
}
/**
* Update the specified resource in storage.
*
* @param Request $req
* @param int $id
* @return Response
*/
public function api_edit_trips_label(Request $req, $id)
{
try {
$now = time();
$input = [
"address" => $req->address,
"lat" => $req->lat,
"lng" => $req->lng,
"radius" => $req->radius
];
$rulesInput = [
"address" => "required|string",
"lat" => "required|numeric|between:-90,90",
"lng" => "required|numeric|between:-180,180",
"radius" => "required|integer|min:0",
];
// validasi input
$isValidInput = Validator::make($input, $rulesInput);
if (!$isValidInput->passes()) {
$apiResp = Responses::bad_input($isValidInput->messages()->first());
return new Response($apiResp, $apiResp["meta"]["code"]);
}
DB::beginTransaction();
$update = [
"address" => $req->address,
"lat" => $req->lat,
"lng" => $req->lng,
"radius" => $req->radius,
];
DB::table('t_sites_label')->where('id', $id)->update($update);
$apiResp = Responses::created("success update trips label");
DB::commit();
$log = [
"module" => "Trips Label",
"action" => "Update",
"desc" => "Update trips label: " . $req->address,
];
UserLogs::insert(Auth::user()->id, $log);
return new Response($apiResp, $apiResp["meta"]["code"]);
} catch (\Exception $e) {
DB::rollBack();
$apiResp = Responses::error($e->getMessage());
return new Response($apiResp, $apiResp["meta"]["code"]);
}
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return Response
*/
public function api_del_trips_label($id)
{
try {
DB::beginTransaction();
DB::table('t_sites_label')->where('id', $id)->update([
'isdeleted' => 1,
// 'ddt' => date("Y-m-d H:i:s", time()),
// 'dby' => Auth::user()->id
]);
DB::commit();
$apiResp = Responses::success("success delete trips label");
$log = [
"module" => "Trips Label",
"action" => "Delete",
"desc" => "Delete trips label: " . $id,
];
UserLogs::insert(Auth::user()->id, $log);
return new Response($apiResp, $apiResp["meta"]["code"]);
} catch (\Exception $e) {
DB::rollBack();
$apiResp = Responses::error($e->getMessage());
return new Response($apiResp, $apiResp["meta"]["code"]);
}
}
}