farhantock
11 months ago
3 changed files with 319 additions and 188 deletions
@ -1,121 +1,237 @@
|
||||
<?php |
||||
|
||||
namespace App\Http\Controllers; |
||||
|
||||
use Illuminate\Http\Request; |
||||
use App\Models\Image; |
||||
|
||||
class ImageController extends Controller |
||||
{ |
||||
public function uploadImage(Request $request){ |
||||
|
||||
if($request->hasFile('files')){ |
||||
|
||||
$this->validate($request, [ |
||||
'ref_id' => 'required', |
||||
'category' => 'required' |
||||
]); |
||||
|
||||
$ref_id = $request->ref_id; |
||||
$dokumen = $request->file('files'); |
||||
$extension = $dokumen->extension(); |
||||
$name = $ref_id.date("YmdHis").".".$extension; |
||||
|
||||
$resultMove = $dokumen->move($this->pathImage, $name); |
||||
|
||||
if($resultMove){ |
||||
$data = [ |
||||
'ref_id' => (int)$ref_id, |
||||
'image' => $name, |
||||
'category' => $request->category |
||||
]; |
||||
|
||||
$result = Image::create($data); |
||||
|
||||
if($result){ |
||||
return response()->json(['status'=>'success', "name_image"=>$name,'message'=>'image upload is successfully!','code'=>200], 200); |
||||
}else{ |
||||
unlink($this->pathImage.$name); |
||||
return response()->json(['status'=>'failed','message'=>'image upload is failed!','code'=>400], 400); |
||||
} |
||||
|
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'image upload is failed!','code'=>400], 400); |
||||
} |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'image is required!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
public function delete($id) |
||||
{ |
||||
$data = Image::find($id); |
||||
|
||||
if($data){ |
||||
unlink($this->pathImage.$data->image); |
||||
$delete = $data->delete(); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'data image not found!','code'=>400], 400); |
||||
die(); |
||||
} |
||||
|
||||
|
||||
if($delete){ |
||||
return response()->json(['status'=>'success','message'=>'data image successfully deleted!','code'=>200], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'data image failed deleted!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
public function search(Request $request) |
||||
{ |
||||
$payload = $request->all(); |
||||
$dataBuilder = $this->setUpPayload($payload, 'm_image'); |
||||
$builder = $dataBuilder['builder']; |
||||
$countBuilder = $dataBuilder['count']; |
||||
$dataGet = $builder->get(); |
||||
$totalRecord = $countBuilder->count(); |
||||
return response()->json(['status'=>'success','code'=>200,'data'=>$dataGet, 'totalRecord'=>$totalRecord], 200); |
||||
} |
||||
|
||||
public function deleteByRef($id, $category) |
||||
{ |
||||
$data = Image::where("ref_id", $id)->where("category", $category)->first(); |
||||
|
||||
if($data){ |
||||
unlink($this->pathImage.$data->image); |
||||
$delete = $data->delete(); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'data image not found!','code'=>400], 400); |
||||
die(); |
||||
} |
||||
|
||||
|
||||
if($delete){ |
||||
return response()->json(['status'=>'success','message'=>'data image successfully deleted!','code'=>200], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'data image failed deleted!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
public function getByRefId($id, $category) |
||||
{ |
||||
if(!$id || (int) $id < 0 || $id==""){ |
||||
return response()->json(['status'=>'failed','message'=>'id is required!','code'=>400], 400); |
||||
die(); |
||||
} |
||||
|
||||
if(!$category || $category==""){ |
||||
return response()->json(['status'=>'failed','message'=>'category is required!','code'=>400], 400); |
||||
die(); |
||||
} |
||||
|
||||
$result = Image::where("ref_id", $id)->where("category", $category)->first(); |
||||
|
||||
if($result){ |
||||
return response()->json(['status'=>'success','code'=>200,'data'=>$result], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'failed get data image, please try again later!','code'=>400], 400); |
||||
} |
||||
} |
||||
} |
||||
<?php |
||||
|
||||
namespace App\Http\Controllers; |
||||
|
||||
use App\Models\Company; |
||||
use Illuminate\Http\Request; |
||||
use App\Models\Image; |
||||
|
||||
class ImageController extends Controller |
||||
{ |
||||
public function uploadImage(Request $request){ |
||||
|
||||
if($request->hasFile('files')){ |
||||
|
||||
$this->validate($request, [ |
||||
'ref_id' => 'required', |
||||
'category' => 'required' |
||||
]); |
||||
|
||||
$ref_id = $request->ref_id; |
||||
$dokumen = $request->file('files'); |
||||
$extension = $dokumen->extension(); |
||||
$category = $request->category; |
||||
$name = $ref_id.date("YmdHis").".".$extension; |
||||
|
||||
$resultMove = $dokumen->move($this->pathImage, $name); |
||||
|
||||
if($resultMove){ |
||||
$data = [ |
||||
'ref_id' => (int)$ref_id, |
||||
'image' => $name, |
||||
'category' => $category |
||||
]; |
||||
|
||||
$result = Image::create($data); |
||||
|
||||
$company = Company::find((int)$ref_id); |
||||
if($company && $category === 'company_logo_login') { |
||||
$dataArray = json_decode($company['logo_login'], true); |
||||
if(isset($dataArray['slider'])) { |
||||
$jsonImageSlider['login'] = $name; |
||||
$jsonImageSlider['slider'] = $dataArray['slider']; |
||||
} else { |
||||
$jsonImageSlider['login'] = $name; |
||||
} |
||||
$company->update([ |
||||
'logo_login' => $jsonImageSlider |
||||
]); |
||||
} |
||||
|
||||
if($company && $category === 'company_logo_header') { |
||||
$company->update([ |
||||
'logo_header' => array('content'=>$name) |
||||
]); |
||||
} |
||||
|
||||
if($company && $category === 'company_favicon') { |
||||
$company->update([ |
||||
'favicon_image' => array('content'=>$name) |
||||
]); |
||||
} |
||||
|
||||
if($result){ |
||||
return response()->json(['status'=>'success', "name_image"=>$name,'message'=>'image upload is successfully!','code'=>200], 200); |
||||
}else{ |
||||
unlink($this->pathImage.$name); |
||||
return response()->json(['status'=>'failed','message'=>'image upload is failed!','code'=>400], 400); |
||||
} |
||||
|
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'image upload is failed!','code'=>400], 400); |
||||
} |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'image is required!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
public function uploadMultipleImage(Request $request) { |
||||
$this->validate($request, [ |
||||
'ref_id' => 'required', |
||||
'category' => 'required', |
||||
'files.*' => 'required|file|mimes:jpeg,png,jpg,gif|max:2048', |
||||
]); |
||||
|
||||
if ($request->hasFile('files')) { |
||||
$ref_id = $request->ref_id; |
||||
$category = $request->category; |
||||
$dokumen = $request->file('files'); |
||||
$successCount = 0; |
||||
$imageSlider = []; |
||||
foreach ($dokumen as $file) { |
||||
$extension = $file->extension(); |
||||
$name = $ref_id.date("YmdHis").$successCount.".".$extension; |
||||
|
||||
$resultMove = $file->move($this->pathImage, $name); |
||||
|
||||
if ($resultMove) { |
||||
$data = [ |
||||
'ref_id' => (int) $ref_id, |
||||
'image' => $name, |
||||
'category' => $category |
||||
]; |
||||
$imageSlider[] = [ |
||||
'content' => $name |
||||
]; |
||||
$result = Image::create($data); |
||||
if ($result) { |
||||
$successCount++; |
||||
} else { |
||||
unlink($this->pathImage . $name); |
||||
} |
||||
} |
||||
} |
||||
$company = Company::find((int)$ref_id); |
||||
if($company && $category === 'company_slider_login') { |
||||
$dataArray = json_decode($company['logo_login'], true); |
||||
if(isset($dataArray['login'])) { |
||||
$jsonImageSlider['login'] = $dataArray['login']; |
||||
$jsonImageSlider['slider'] = $imageSlider; |
||||
} else { |
||||
$jsonImageSlider['slider'] = $imageSlider; |
||||
} |
||||
$company->update([ |
||||
'logo_login' => $jsonImageSlider |
||||
]); |
||||
} |
||||
if ($successCount > 0 && $company) { |
||||
return response()->json(['status' => 'success', 'message' => "$successCount images uploaded successfully!", 'code' => 200], 200); |
||||
} else { |
||||
return response()->json(['status' => 'failed', 'message' => 'No images uploaded successfully!', 'code' => 400], 400); |
||||
} |
||||
} else { |
||||
return response()->json(['status' => 'failed', 'message' => 'Image is required!', 'code' => 400], 400); |
||||
} |
||||
} |
||||
|
||||
|
||||
|
||||
public function delete($id) |
||||
{ |
||||
$data = Image::find($id); |
||||
|
||||
if($data){ |
||||
unlink($this->pathImage.$data->image); |
||||
$delete = $data->delete(); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'data image not found!','code'=>400], 400); |
||||
die(); |
||||
} |
||||
|
||||
|
||||
if($delete){ |
||||
return response()->json(['status'=>'success','message'=>'data image successfully deleted!','code'=>200], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'data image failed deleted!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
public function search(Request $request) |
||||
{ |
||||
$payload = $request->all(); |
||||
$dataBuilder = $this->setUpPayload($payload, 'm_image'); |
||||
$builder = $dataBuilder['builder']; |
||||
$countBuilder = $dataBuilder['count']; |
||||
$dataGet = $builder->get(); |
||||
$totalRecord = $countBuilder->count(); |
||||
return response()->json(['status'=>'success','code'=>200,'data'=>$dataGet, 'totalRecord'=>$totalRecord], 200); |
||||
} |
||||
|
||||
public function deleteByRef($id, $category) |
||||
{ |
||||
$data = Image::where("ref_id", intval($id))->where("category", $category)->first(); |
||||
|
||||
if($data){ |
||||
unlink($this->pathImage.$data->image); |
||||
$delete = $data->delete(); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'data image not found!','code'=>400], 400); |
||||
die(); |
||||
} |
||||
|
||||
|
||||
if($delete){ |
||||
return response()->json(['status'=>'success','message'=>'data image successfully deleted!','code'=>200], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'data image failed deleted!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
public function deleteByRefMultiple($id, $category) |
||||
{ |
||||
$successCount = 0; |
||||
$data = Image::where([ |
||||
["ref_id", intval($id)], |
||||
["category", $category] |
||||
])->get(); |
||||
if($data->isNotEmpty()) { |
||||
foreach($data as $img) { |
||||
unlink($this->pathImage.$img->image); |
||||
$delete = $img->delete(); |
||||
if($delete){ |
||||
$successCount++; |
||||
} |
||||
} |
||||
} else { |
||||
return response()->json(['status'=>'failed','message'=>'data image not found!','code'=>400], 400); |
||||
die(); |
||||
} |
||||
|
||||
if($successCount > 0) { |
||||
return response()->json(['status'=>'success','message'=>'data image successfully deleted!','code'=>200], 200); |
||||
} else { |
||||
return response()->json(['status'=>'failed','message'=>'data image failed deleted!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
public function getByRefId($id, $category) |
||||
{ |
||||
if(!$id || (int) $id < 0 || $id==""){ |
||||
return response()->json(['status'=>'failed','message'=>'id is required!','code'=>400], 400); |
||||
die(); |
||||
} |
||||
|
||||
if(!$category || $category==""){ |
||||
return response()->json(['status'=>'failed','message'=>'category is required!','code'=>400], 400); |
||||
die(); |
||||
} |
||||
|
||||
$result = Image::where("ref_id", $id)->where("category", $category)->first(); |
||||
|
||||
if($result){ |
||||
return response()->json(['status'=>'success','code'=>200,'data'=>$result], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'failed get data image, please try again later!','code'=>400], 400); |
||||
} |
||||
} |
||||
} |
||||
|
Loading…
Reference in new issue