242 lines
7.2 KiB
PHP
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"]);
|
|
}
|
|
}
|
|
}
|