ldc-crm/app/Http/Resources/Api/V2/QuestionsResource.php
Jérémy Munsch 787ee5a4c5 - tag 2.0.1
- Add Questions segementation
- Fix Customer delete Tests
2021-08-11 17:37:59 +02:00

49 lines
1.4 KiB
PHP

<?php
namespace App\Http\Resources\Api\V2;
use App\Models\Question;
use Illuminate\Http\Resources\Json\ResourceCollection as JsonResourceCollection;
use Illuminate\Support\Collection;
class QuestionsResource extends JsonResourceCollection
{
/** @var \Illuminate\Support\Collection */
protected $userAnwsers = null;
/**
* Create a new resource instance.
*
* @param mixed $resource
* @return void
*/
public function __construct($resource, Collection $userAnwsers = null)
{
$this->userAnwsers = $userAnwsers;
parent::__construct($resource);
}
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClass
public function toArray($request)
{
return $this->collection->map(function (Question $question) {
$question = [
'id' => $question->id,
'type' => $question->type->value,
'question' => $question->question,
'answers' => new AnswersResource($question->answers)
];
if ($this->userAnwsers) {
$question['customerAnswers'] = new AnswersResource($this->userAnwsers);
}
return $question;
});
}
}