Cartoons = $Cartoons; $this->helpers = $helpers; } public function index() { $data = $this->Cartoons->all()->toArray(); $baseUrl = url('/storage/app/media'); foreach ($data as &$project) { $project['list_image'] = $baseUrl . $project['list_image']; } $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); } public function show($id) { $data = $this->Cartoons::find($id); $baseUrl = url('/storage/app/media'); if (!is_null($data)) { $dataArray = $data->toArray(); // Update the image URLs $dataArray['list_image'] = $baseUrl . $dataArray['list_image']; $dataArray['banner_image'] = $baseUrl . $dataArray['banner_image']; $dataArray['logo'] = $baseUrl . $dataArray['logo']; $dataArray['main_characters_image'] = $baseUrl . $dataArray['main_characters_image']; $dataArray['shots_image'] = $baseUrl . $dataArray['shots_image']; $dataArray['posters_image'] = $baseUrl . $dataArray['posters_image']; if (!is_null($dataArray['list_characters']) && is_array($dataArray['list_characters'])) { foreach ($dataArray['list_characters'] as &$character) { if (!is_null($character['character_images']) && is_array($character['character_images'])) { foreach ($character['character_images'] as &$character_image) { $character_image['image'] = $baseUrl . $character_image['image']; } } } } if (!is_null($dataArray['list_shots'])) { foreach ($dataArray['list_shots'] as &$shot) { $shot['shot_image'] = $baseUrl . $shot['shot_image']; } } if (!is_null($dataArray['list_posters'])) { foreach ($dataArray['list_posters'] as &$poster) { $poster['image'] = $baseUrl . $poster['image']; } } return $this->helpers->apiArrayResponseBuilder(200, 'success', [$dataArray]); } else { return $this->helpers->apiArrayResponseBuilder(404, 'error', null); } } public function store(Request $request){ $arr = $request->all(); while ( $data = current($arr)) { $this->Cartoons->{key($arr)} = $data; next($arr); } $validation = Validator::make($request->all(), $this->Cartoons->rules); if( $validation->passes() ){ $this->Cartoons->save(); return $this->helpers->apiArrayResponseBuilder(201, 'created', ['id' => $this->Cartoons->id]); }else{ return $this->helpers->apiArrayResponseBuilder(400, 'fail', $validation->errors() ); } } public function update($id, Request $request){ $status = $this->Cartoons->where('id',$id)->update($data); 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){ $this->Cartoons->where('id',$id)->delete(); return $this->helpers->apiArrayResponseBuilder(200, 'success', 'Data has been deleted successfully.'); } public function destroy($id){ $this->Cartoons->where('id',$id)->delete(); 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) { if(isset($parameters['cartoon'])) $parameters = [$parameters['cartoon']]; return call_user_func_array(array($this, $method), $parameters); } }