Custom Backend OSPRO Surveyor Indonesia
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

116 lines
3.7 KiB

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Link;
class LinkController extends Controller
{
public function add(Request $request)
{
$this->validate($request, [
'source' => 'required',
'target' => 'required',
'type' => 'required',
'version_gantt_id' => 'required'
]);
$code = $this->getCodeByType($request->type);
$data = array(
's_activity_id'=> $request->source,
't_activity_id'=> $request->target,
'type_link'=> $request->type,
'code_link'=> $code,
'version_gantt_id'=>$request->version_gantt_id
);
$data['created_by'] = $this->currentName;
$result = Link::create($data);
if($result){
return response()->json(['status'=>'success', 'tid'=>$result->id, 'action'=>'inserted','message'=>'add data project successfully!','code'=>200], 200);
}else{
return response()->json(['status'=>'failed', 'action'=>'error','message'=>'add data project failed!','code'=>400], 400);
}
}
public function update(Request $request, $id)
{
if(!$id || (int) $id < 0 || $id==""){
return response()->json(['status'=>'failed', 'action'=>'error','message'=>'id is required!','code'=>400], 400);
}
$data = Link::find($id);
$code = $this->getCodeByType($request->type);
$dataUpdate = array(
's_activity_id'=> $request->source,
't_activity_id'=> $request->target,
'type_link'=> $request->type,
'code_link'=> $code,
'lag'=> $request->lag,
'updated_by'=> $this->currentName
);
if($data){
$result = $data->update($dataUpdate);
}else{
return response()->json(['status'=>'failed', 'action'=>'error','message'=>'activity link not found!','code'=>400], 400);
die();
}
if($result){
return response()->json(['status'=>'success', 'action'=>'updated','message'=>'activity link successfully updated!','code'=>200], 200);
}else{
return response()->json(['status'=>'failed', 'action'=>'error','message'=>'activity link failed updated!','code'=>400], 400);
}
}
public function delete($id)
{
if(!$id || (int) $id < 0 || $id==""){
return response()->json(['status'=>'failed', 'action'=>'error','message'=>'id is required!','code'=>400], 400);
die();
}
$data = Link::find($id);
if($data){
$delete = $data->delete();
}else{
return response()->json(['status'=>'failed', 'action'=>'error','message'=>'activity link not found!','code'=>400], 400);
die();
}
if($delete){
$deletAll = Link::where("parent_id", $id);
$deletAll->delete();
return response()->json(['status'=>'success', 'action'=>'deleted','message'=>'activity link successfully deleted!','code'=>200], 200);
}else{
return response()->json(['status'=>'failed', 'action'=>'error','message'=>'activity link failed deleted!','code'=>400], 400);
}
}
private function getCodeByType($code){
switch ($code) {
case 1:
return "SS";
break;
case 2:
return "FF";
break;
case 3:
return "SF";
break;
default:
return "FS";
break;
}
}
}