Browse Source

merge rest-client.http

pull/3/head
ardhi 2 years ago
parent
commit
dff62a08b3
  1. 2
      app/Http/Controllers/AuthController.php
  2. 5
      app/Http/Controllers/Controller.php
  3. 4
      app/Http/Controllers/DivisiController.php
  4. 95
      app/Http/Controllers/PresenceController.php
  5. 3
      app/Models/Presence.php
  6. 48
      rest-client.http

2
app/Http/Controllers/AuthController.php

@ -31,7 +31,7 @@ class AuthController extends Controller
$usernameCheck = false; $usernameCheck = false;
$passwordCheck = false; $passwordCheck = false;
if (User::where('username', $username)->exist()) if (User::where('username', $username)->exists())
$usernameCheck = true; $usernameCheck = true;
if (User::where('password', md5($password))->exists()) if (User::where('password', md5($password))->exists())

5
app/Http/Controllers/Controller.php

@ -250,4 +250,9 @@ class Controller extends BaseController
$totalCost = AssignMaterial::selectRaw("ISNULL(qty_planning,0)*ISNULL(budget,0) as totalCost")->where("proyek_id", $proyek_id)->where("activity_id", $activity_id)->sum("totalCost"); $totalCost = AssignMaterial::selectRaw("ISNULL(qty_planning,0)*ISNULL(budget,0) as totalCost")->where("proyek_id", $proyek_id)->where("activity_id", $activity_id)->sum("totalCost");
return $totalCost; return $totalCost;
} }
private function getLoc($lat, $lng){
$response = Http::get(config('api.nominatim') . "/reverse?lat=".$lat."&lon=".$lng."&format=json");
return $response;
}
} }

4
app/Http/Controllers/DivisiController.php

@ -20,8 +20,8 @@ class DivisiController extends Controller
public function add(Request $request){ public function add(Request $request){
$this->validate($request, [ $this->validate($request, [
'name' => 'required', 'name' => 'required',
'description' => 'string', 'description' => 'string'
'parent' => 'integer' // 'parent' => 'integer'
]); ]);
$data = $request->all(); $data = $request->all();

95
app/Http/Controllers/PresenceController.php

@ -15,29 +15,51 @@ class PresenceController extends Controller
{ {
public function add(Request $request) public function add(Request $request)
{ {
//
// $test = $this->checkLocation($request);
// return response()->json(['status'=>$test,'code'=>200], 200);
$this->validate($request, [ $this->validate($request, [
'user_id' => 'required' 'user_id' => 'required'
]); ]);
$checkLocation = $this->checkLocation($request);
$statusBoundary = false;
$date = date_create($request->clock_time);
// $ActivityId = null;
if(count($checkLocation) > 0){
$statusBoundary = true;
}
if($request->type=="out"){ if($request->type=="out"){
// $clock_out_loc get data from api.nominatim url serach address payload (lat lot);
$clock_out_loc = "-"; $clock_out_loc = "-";
$dataUpdate = array( $dataUpdate = array(
"clock_out"=>$request->clock_time, "clock_out"=>$request->clock_time,
"clock_out_lat" => $request->clock_out_lat, "clock_out_lat" => $request->clock_out_lat,
"clock_out_lng" => $request->clock_out_lng, "clock_out_lng" => $request->clock_out_lng,
"updated_by"=>$this->currentName, "updated_by"=>$this->currentName,
"clock_out_loc" => $clock_out_loc "clock_out_loc" => $clock_out_loc,
"clock_out_boundary" => $statusBoundary
); );
$resultUpdate = $this->updateFormAdd($dataUpdate, $request->user_id); $resultUpdate = $this->updateFormAdd($dataUpdate, $request->user_id);
if($resultUpdate && $resultUpdate > 0){ if($resultUpdate && $resultUpdate > 0){
return response()->json(['status'=>'success', 'id'=>$resultUpdate,'message'=>'clock out success!','code'=>200], 200); if($statusBoundary){
for ($i=0; $i < count($checkLocation); $i++) {
# code...
DB::table('clock_in_out_boundary')->insert([
"clock_in_out_id" => $resultUpdate,
"user_id" => $request->user_id,
"activity_id" => $checkLocation[$i]['activity_id'],
"type" => $request->type,
"created_at" => $date,
"created_by" => $this->currentName
]);
};
};
$data=array(
'id' => $resultUpdate,
'boundary' => $statusBoundary
);
return response()->json(['status'=>'success', 'data'=>$data,'message'=>'clock out success!','code'=>200], 200);
} }
else{ else{
return response()->json(['status'=>'failed','message'=>'clock out failed please try again!','code'=>400], 400); return response()->json(['status'=>'failed','message'=>'clock out failed please try again!','code'=>400], 400);
@ -45,35 +67,47 @@ class PresenceController extends Controller
die(); die();
} }
$date = date_create($request->clock_time);
$onlyDate = date_format($date,"Y-m-d"); $onlyDate = date_format($date,"Y-m-d");
// $clock_in_loc get data from api.nominatim url serach address payload (lat lot);
$clock_in_loc = "-"; $clock_in_loc = "-";
$dataAdd = array( $dataAdd = array(
'user_id'=> $request->user_id, 'user_id'=> $request->user_id,
'clock_in'=> $request->clock_time, 'clock_in'=> $request->clock_time,
'date_presence'=> $onlyDate, 'date_presence'=> $onlyDate,
'created_by' =>$this->currentName, 'created_by' => $this->currentName,
'clock_in_lat' => $request->clock_in_lat, 'clock_in_lat' => $request->clock_in_lat,
'clock_in_lng' => $request->clock_in_lng, 'clock_in_lng' => $request->clock_in_lng,
'clock_in_loc' => $clock_in_loc 'clock_in_loc' => $clock_in_loc,
'clock_in_boundary' => $statusBoundary
); );
$result = Presence::create($dataAdd); $result = Presence::create($dataAdd);
$data=array( $data=array(
'id' => $result->id, 'id' => $result->id,
'boundary' => true 'boundary' => $statusBoundary
); );
if($result){ if($result){
if($statusBoundary){
for ($i=0; $i < count($checkLocation); $i++) {
# code...
DB::table('clock_in_out_boundary')->insert([
"clock_in_out_id" => $result->id,
"user_id" => $request->user_id,
"activity_id" => $checkLocation[$i]['activity_id'],
"type" => $request->type,
"created_at" => $date,
"created_by" => $this->currentName
]);
};
};
return response()->json(['status'=>'success', 'data' => $data,'message'=>'clock in successfully!','code'=>200], 200); return response()->json(['status'=>'success', 'data' => $data,'message'=>'clock in successfully!','code'=>200], 200);
}else{ }else{
return response()->json(['status'=>'failed','message'=>'clock in failed!','code'=>400], 400); return response()->json(['status'=>'failed','message'=>'clock in failed!','code'=>400], 400);
} }
} }
private function checkLocation($params){ private function checkLocation($params){
// cek user tersebut apakah punya assign task yang ada bondary nya // cek user tersebut apakah punya assign task yang ada bondary nya
// geom ada di table activity // geom ada di table activity
@ -82,12 +116,27 @@ class PresenceController extends Controller
->where("ahta.user_id", $params->user_id) ->where("ahta.user_id", $params->user_id)
->whereDate("ma.start_date", "<=", $params->clock_time) ->whereDate("ma.start_date", "<=", $params->clock_time)
->whereDate("ma.end_date", ">=", $params->clock_time) ->whereDate("ma.end_date", ">=", $params->clock_time)
->where(DB::raw("ST_Intersects(ST_GeomFromGeoJSON('ma.geom'), ST_GeomFromText('POINT(".$params->clock_out_lng." ".$params->clock_out_lat.")', 4326))"))
->get(); ->get();
// Activity::select('geom')->where(''); $temp = [];
// gejson to geom foreach($geom as $dataGeom){
// intersect dengan point req $valGeom = json_decode($dataGeom->geom);
return $geom; if($params->type=="out"){
$check = DB::select(DB::raw("SELECT ST_Intersects(ST_GeomFromGeoJSON('".json_encode($valGeom->geometry)."'), ST_GeomFromText('POINT(".$params->clock_out_lng." ".$params->clock_out_lat.")', 4326)) as boundary"));
}else{
$check = DB::select(DB::raw("SELECT ST_Intersects(ST_GeomFromGeoJSON('".json_encode($valGeom->geometry)."'), ST_GeomFromText('POINT(".$params->clock_in_lng." ".$params->clock_in_lat.")', 4326)) as boundary"));
}
foreach ($check as $key) {
if($key->boundary){
$temp[]=array(
"activity_id" => $dataGeom->id,
"boundary" => $key->boundary
);
}
}
}
return $temp;
} }
public function edit($id){ public function edit($id){
@ -151,7 +200,6 @@ class PresenceController extends Controller
} }
private function updateFormAdd($data, $id){ private function updateFormAdd($data, $id){
$date = date_create($data['clock_out']); $date = date_create($data['clock_out']);
$onlyDate = date_format($date,"Y-m-d"); $onlyDate = date_format($date,"Y-m-d");
@ -227,7 +275,12 @@ class PresenceController extends Controller
$dataGet = $builder->get(); $dataGet = $builder->get();
$finalData = []; $finalData = [];
foreach($dataGet as $data){
$responseIn = $this.getLoc($clock_in_lat, $clock_in_lng);
$responseOut = $this.getLoc($clock_in_lat, $clock_in_lng);
$data->clock_in_loc = $responseIn->json()["display_name"];
$data->clock_out_loc = $responseOut->json()["display_name"];
}
$totalRecord = $countBuilder->count(); $totalRecord = $countBuilder->count();
return response()->json(['status'=>'success','code'=>200,'data'=>$dataGet, 'totalRecord'=>$totalRecord], 200); return response()->json(['status'=>'success','code'=>200,'data'=>$dataGet, 'totalRecord'=>$totalRecord], 200);
} }

3
app/Models/Presence.php

@ -3,6 +3,7 @@
namespace App\Models; namespace App\Models;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;
class Presence extends Model class Presence extends Model
{ {
@ -14,7 +15,7 @@ class Presence extends Model
protected $fillable = [ protected $fillable = [
'user_id', 'clock_in', 'clock_out', 'date_presence', 'user_id', 'clock_in', 'clock_out', 'date_presence',
'clock_in_lat', 'clock_in_lng', 'clock_out_lat', 'clock_out_lng', 'clock_in_lat', 'clock_in_lng', 'clock_out_lat', 'clock_out_lng',
'clock_in_loc', 'clock_out_loc', 'clock_in_loc', 'clock_out_loc','clock_in_boundary', 'clock_out_boundary',
'created_at', 'created_by', 'updated_at', 'updated_by' 'created_at', 'created_by', 'updated_at', 'updated_by'
]; ];
} }

48
rest-client.http

@ -1,20 +1,17 @@
@token = eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9sb2NhbGhvc3Q6ODA3NFwvYWR3LWJhY2tlbmRcL2FwaVwvbG9naW4iLCJpYXQiOjE2NzU3NjY2NzcsImV4cCI6MTY3NjM3MTQ3NywibmJmIjoxNjc1NzY2Njc3LCJqdGkiOiJwODNpWG1kU3pTV2ZVMGs3Iiwic3ViIjoxMjQ3LCJwcnYiOiIyM2JkNWM4OTQ5ZjYwMGFkYjM5ZTcwMWM0MDA4NzJkYjdhNTk3NmY3In0.I9Q6uI-IOHR8JKaMJfjfAizOM8KNPQsm8EyWM8f6Qbk @token = eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9sb2NhbGhvc3Q6ODQ0NFwvYXBpXC9sb2dpbiIsImlhdCI6MTY3NTgzNTM3NSwiZXhwIjoxNjc2NDQwMTc1LCJuYmYiOjE2NzU4MzUzNzUsImp0aSI6IlhyVjlkTW55TXpOazlrTUIiLCJzdWIiOjEsInBydiI6IjIzYmQ1Yzg5NDlmNjAwYWRiMzllNzAxYzQwMDg3MmRiN2E1OTc2ZjcifQ.41uAX7bnRwftkC_daRiVwwKcFIN7EDV0Ly_zDuq4_MY
# @hostname = https://kit-api.ospro.id/api
# @hostname = https://adw-api.ospro.id/api # @hostname = https://adw-api.ospro.id/api
# @hostname = https://ospro-api.ospro.id/api # @hostname = https://ospro-api.ospro.id/api
# @hostname = https://api-iu.ospro.id/api # @hostname = https://api-iu.ospro.id/api
# @hostname = https://api-staging-adw.ospro.id/api # @hostname = https://api-staging-adw.ospro.id/api
# @hostname = http://localhost:8099/api @hostname = http://localhost:8444/api
# @hostname = http://103.73.125.81:8444/api # @hostname = http://103.73.125.81:8444/api
# @hostname = http://localhost:8074/adw-backend/api # @hostname = http://172.20.10.2:8074/adw-backend/api
@hostname = http://172.20.10.2:8074/adw-backend/api
###### login ###### login
POST {{hostname}}/login POST {{hostname}}/login
# Authorization: Bearer xxx # Authorization: Bearer xxx
# X-REQUEST-TYPE: GraphQL # X-REQUEST-TYPE: GraphQL 1123150023
content-type: application/json content-type: application/json
{ {
@ -799,9 +796,10 @@ GET {{hostname}}/presence/clockinout/262
Authorization: Bearer {{token}} Authorization: Bearer {{token}}
content-type: application/json content-type: application/json
#######
"clock_out_lat": -1.4264273154149407,
"clock_out_lng": 113.98530036945851,
###### ######
POST {{hostname}}/presence/add POST {{hostname}}/presence/add
Authorization: Bearer {{token}} Authorization: Bearer {{token}}
content-type: application/json content-type: application/json
@ -809,11 +807,38 @@ content-type: application/json
{ {
"clock_out_lat": -6.2622811, "clock_out_lat": -6.2622811,
"clock_out_lng": 106.7881746, "clock_out_lng": 106.7881746,
"clock_time": "2022-04-25T16:40:17+07:00", "clock_time": "2023-02-06T16:40:17+07:00",
"type": "out", "type": "out",
"user_id": 262 "user_id": 1
} }
######
# POST {{hostname}}/
GET {{hostname}}/assign-material/datatablesForReportActivity?draw=2&columns[0][data]=material_name&columns[0][name]=material_name&columns[0][searchable]=true&columns[0][orderable]=true&columns[0][search][value]=&columns[0][search][regex]=false&columns[1][data]=type&columns[1][name]=type&columns[1][searchable]=true&columns[1][orderable]=true&columns[1][search][value]=&columns[1][search][regex]=false&columns[2][data]=qty_planning&columns[2][name]=&columns[2][searchable]=true&columns[2][orderable]=true&columns[2][search][value]=&columns[2][search][regex]=false&columns[3][data]=qty_sum&columns[3][name]=&columns[3][searchable]=true&columns[3][orderable]=true&columns[3][search][value]=&columns[3][search][regex]=false&columns[4][data]=uom&columns[4][name]=uom&columns[4][searchable]=true&columns[4][orderable]=true&columns[4][search][value]=&columns[4][search][regex]=false&columns[5][data]=action&columns[5][name]=action&columns[5][searchable]=true&columns[5][orderable]=true&columns[5][search][value]=&columns[5][search][regex]=false&order[0][column]=0&order[0][dir]=asc&start=0&length=10&search[value]=&search[regex]=false&idact=2511&_=1675418553660
Authorization: Bearer {{token}}
content-type: application/json
######
GET {{hostname}}/dashboard/get-total-project-per-schedule-health
Authorization: Bearer {{token}}
content-type: application/json
######
GET {{hostname}}/dashboard/get-detail-expenditure
Authorization: Bearer {{token}}
content-type: application/json
######
GET {{hostname}}/presence/bulk-update-location
Authorization: Bearer {{token}}
content-type: application/json
#####
GET https://nominatim.oslogdev.com/reverse?lat=-6.2622811&lon=106.7881746&format=json
###### ######
POST {{hostname}}/waypoint/add POST {{hostname}}/waypoint/add
@ -889,4 +914,3 @@ content-type: application/json
} }
] ]
} }

Loading…
Cancel
Save