menzilmekan-backend/plugins/ahmadfatoni/apigenerator/controllers/api/CartoonsController.php

123 lines
3.4 KiB
PHP
Raw Normal View History

2024-07-13 12:48:51 +00:00
<?php namespace AhmadFatoni\ApiGenerator\Controllers\API;
use Cms\Classes\Controller;
use BackendMenu;
use Illuminate\Http\Request;
use AhmadFatoni\ApiGenerator\Helpers\Helpers;
use Illuminate\Support\Facades\Validator;
2024-07-16 04:57:23 +00:00
use Tps\Tps\Models\Cartoons;
class CartoonsController extends Controller
2024-07-13 12:48:51 +00:00
{
2024-07-16 04:57:23 +00:00
protected $Cartoons;
2024-07-13 12:48:51 +00:00
protected $helpers;
2024-07-16 04:57:23 +00:00
public function __construct(Cartoons $Cartoons, Helpers $helpers)
2024-07-13 12:48:51 +00:00
{
parent::__construct();
2024-07-16 04:57:23 +00:00
$this->Cartoons = $Cartoons;
2024-07-13 12:48:51 +00:00
$this->helpers = $helpers;
}
2024-07-16 04:57:23 +00:00
public function index()
{
$data = $this->Cartoons->all()->toArray();
2024-07-18 04:41:11 +00:00
2024-07-16 04:57:23 +00:00
$baseUrl = url('/storage/app/media');
2024-07-18 04:41:11 +00:00
2024-07-16 04:57:23 +00:00
foreach ($data as &$project) {
2024-07-18 04:41:11 +00:00
$project['list_image'] = $baseUrl . $project['list_image'];
2024-07-16 04:57:23 +00:00
}
2024-07-18 04:41:11 +00:00
2024-07-18 05:04:09 +00:00
$filteredData = array_map(function($data) {
return [
'id' => $data['id'],
'name' => $data['name'],
'list_image' => $data['list_image'],
'created_at' => $data['created_at'],
'updated_at' => $data['updated_at'],
];
}, $data);
return $this->helpers->apiArrayResponseBuilder(200, 'success', $filteredData);
2024-07-13 12:48:51 +00:00
}
2024-07-18 04:41:11 +00:00
2024-07-18 05:04:09 +00:00
2024-07-13 12:48:51 +00:00
public function show($id){
2024-07-16 04:57:23 +00:00
$data = $this->Cartoons::find($id);
2024-07-13 12:48:51 +00:00
2024-07-18 04:58:53 +00:00
if (!is_null($data)){
2024-07-13 12:48:51 +00:00
return $this->helpers->apiArrayResponseBuilder(200, 'success', [$data]);
} else {
2024-07-18 04:58:53 +00:00
return $this->helpers->apiArrayResponseBuilder(404, 'error', [$data]);
2024-07-13 12:48:51 +00:00
}
}
public function store(Request $request){
$arr = $request->all();
while ( $data = current($arr)) {
2024-07-16 04:57:23 +00:00
$this->Cartoons->{key($arr)} = $data;
2024-07-13 12:48:51 +00:00
next($arr);
}
2024-07-16 04:57:23 +00:00
$validation = Validator::make($request->all(), $this->Cartoons->rules);
2024-07-13 12:48:51 +00:00
if( $validation->passes() ){
2024-07-16 04:57:23 +00:00
$this->Cartoons->save();
return $this->helpers->apiArrayResponseBuilder(201, 'created', ['id' => $this->Cartoons->id]);
2024-07-13 12:48:51 +00:00
}else{
return $this->helpers->apiArrayResponseBuilder(400, 'fail', $validation->errors() );
}
}
public function update($id, Request $request){
2024-07-16 04:57:23 +00:00
$status = $this->Cartoons->where('id',$id)->update($data);
2024-07-13 12:48:51 +00:00
if( $status ){
return $this->helpers->apiArrayResponseBuilder(200, 'success', 'Data has been updated successfully.');
}else{
return $this->helpers->apiArrayResponseBuilder(400, 'bad request', 'Error, data failed to update.');
}
}
public function delete($id){
2024-07-16 04:57:23 +00:00
$this->Cartoons->where('id',$id)->delete();
2024-07-13 12:48:51 +00:00
return $this->helpers->apiArrayResponseBuilder(200, 'success', 'Data has been deleted successfully.');
}
public function destroy($id){
2024-07-16 04:57:23 +00:00
$this->Cartoons->where('id',$id)->delete();
2024-07-13 12:48:51 +00:00
return $this->helpers->apiArrayResponseBuilder(200, 'success', 'Data has been deleted successfully.');
}
public static function getAfterFilters() {return [];}
public static function getBeforeFilters() {return [];}
public static function getMiddleware() {return [];}
public function callAction($method, $parameters=false) {
2024-07-18 04:58:53 +00:00
if(isset($parameters['cartoon'])) $parameters = [$parameters['cartoon']];
2024-07-13 12:48:51 +00:00
return call_user_func_array(array($this, $method), $parameters);
}
2024-07-18 04:58:53 +00:00
2024-07-13 12:48:51 +00:00
2024-07-16 04:57:23 +00:00
}