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
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; |
|
} |
|
} |
|
}
|
|
|