From 75d3892e07e91005c89efeeb9383d196ee765d1f Mon Sep 17 00:00:00 2001 From: Julien Nahum Date: Thu, 1 Dec 2022 13:13:32 +0100 Subject: [PATCH] Cleaner templates --- app/Http/Controllers/TemplateController.php | 4 +- .../Templates/CreateTemplateRequest.php | 47 +++++++++++++++++-- app/Http/Resources/TemplateResource.php | 24 ++++++++++ 3 files changed, 68 insertions(+), 7 deletions(-) create mode 100644 app/Http/Resources/TemplateResource.php diff --git a/app/Http/Controllers/TemplateController.php b/app/Http/Controllers/TemplateController.php index 92a28c3..9ac45d0 100644 --- a/app/Http/Controllers/TemplateController.php +++ b/app/Http/Controllers/TemplateController.php @@ -4,6 +4,7 @@ namespace App\Http\Controllers; use App\Http\Controllers\Controller; use App\Http\Requests\Templates\CreateTemplateRequest; +use App\Http\Resources\TemplateResource; use Illuminate\Http\Request; use App\Models\Template; @@ -11,8 +12,7 @@ class TemplateController extends Controller { public function index() { - // TODO: create resource - return Template::all(); + return TemplateResource::collection(Template::all()); } public function create(CreateTemplateRequest $request) diff --git a/app/Http/Requests/Templates/CreateTemplateRequest.php b/app/Http/Requests/Templates/CreateTemplateRequest.php index 43e2acc..6b712d2 100644 --- a/app/Http/Requests/Templates/CreateTemplateRequest.php +++ b/app/Http/Requests/Templates/CreateTemplateRequest.php @@ -7,6 +7,44 @@ use Illuminate\Foundation\Http\FormRequest; class CreateTemplateRequest extends FormRequest { + const IGNORED_KEYS = [ + 'id', + 'creator', + 'cleanings', + 'closes_at', + 'created_at', + 'deleted_at', + 'updated_at', + 'form_pending_submission_key', + 'is_closed', + 'is_pro', + 'is_password_protected', + 'last_edited_human', + 'max_number_of_submissions_reached', + 'notifies', + 'notification_body', + 'notification_emails', + 'notification_sender', + 'notification_subject', + 'notifications_include_submission', + 'notifies_slack', + 'slack_webhook_url', + 'removed_properties', + 'creator', + 'creator_id', + 'created_at', + 'updated_at', + 'extra', + 'workspace', + 'workspace_id', + 'submissions', + 'submissions_count', + 'views', + 'views_count', + 'visibility', + 'webhook_url', + ]; + /** * Get the validation rules that apply to the request. * @@ -24,13 +62,12 @@ class CreateTemplateRequest extends FormRequest ]; } - public function getTemplate() : Template + public function getTemplate(): Template { $structure = $this->form; - $ignoreKeys = ['id','creator','creator_id','created_at','updated_at','extra','workspace','submissions','submissions_count','views','views_count']; - foreach($structure as $key=>$val){ - if(in_array($key, $ignoreKeys)){ - $structure[$key] = null; + foreach ($structure as $key => $val) { + if (in_array($key, self::IGNORED_KEYS)) { + unset($structure[$key]); } } return new Template([ diff --git a/app/Http/Resources/TemplateResource.php b/app/Http/Resources/TemplateResource.php new file mode 100644 index 0000000..dd11577 --- /dev/null +++ b/app/Http/Resources/TemplateResource.php @@ -0,0 +1,24 @@ +