Cleaner templates
This commit is contained in:
parent
567b7a44dc
commit
75d3892e07
|
@ -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)
|
||||
|
|
|
@ -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.
|
||||
*
|
||||
|
@ -27,10 +65,9 @@ class CreateTemplateRequest extends FormRequest
|
|||
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;
|
||||
if (in_array($key, self::IGNORED_KEYS)) {
|
||||
unset($structure[$key]);
|
||||
}
|
||||
}
|
||||
return new Template([
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Resources;
|
||||
|
||||
use App\Http\Requests\Templates\CreateTemplateRequest;
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
|
||||
class TemplateResource extends JsonResource
|
||||
{
|
||||
/**
|
||||
* Transform the resource into an array.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return array|\Illuminate\Contracts\Support\Arrayable|\JsonSerializable
|
||||
*/
|
||||
public function toArray($request)
|
||||
{
|
||||
$data = parent::toArray($request);
|
||||
foreach (CreateTemplateRequest::IGNORED_KEYS as $key) {
|
||||
unset($data[$key]);
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue