Files
opnform-host-nginx/api/app/Http/Requests/FormSubmissionExportRequest.php
Chirag Chhatrala cc62f614e4 Enhance Form Submission Export Functionality (#657)
* Enhance Form Submission Export Functionality

* Validate new param 'columns'

* Form submission export request as seprate class with validation

* Test case for export

---------

Co-authored-by: Julien Nahum <julien@nahum.net>
2025-01-07 15:04:02 +01:00

39 lines
1.1 KiB
PHP

<?php
namespace App\Http\Requests;
use App\Models\Forms\Form;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Http\Request;
class FormSubmissionExportRequest extends FormRequest
{
public Form $form;
public function __construct(Request $request)
{
$this->form = Form::findOrFail($request->route('id'));
}
public function rules()
{
$validColumns = collect(array_merge(
$this->form->properties,
$this->form->removed_properties ?? []
))->pluck('id')->toArray();
$validColumns[] = 'created_at';
return [
'columns' => 'required|array',
'columns.*' => ['boolean', 'required'],
'columns' => [function ($attribute, $value, $fail) use ($validColumns) {
$submittedColumns = array_keys($value);
$invalidColumns = array_diff($submittedColumns, $validColumns);
if (!empty($invalidColumns)) {
$fail('The columns contain invalid values: ' . implode(', ', $invalidColumns));
}
}],
];
}
}