From cd427690291ea40fed998298b3440833554ae53d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Duli=C3=A7i?= Date: Sat, 30 Jan 2021 01:08:58 +0300 Subject: [PATCH] added report data to api --- app/Transformers/Common/Report.php | 31 ++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/app/Transformers/Common/Report.php b/app/Transformers/Common/Report.php index f3d28ed16..7e3a0df2e 100644 --- a/app/Transformers/Common/Report.php +++ b/app/Transformers/Common/Report.php @@ -3,6 +3,7 @@ namespace App\Transformers\Common; use App\Models\Common\Report as Model; +use App\Utilities\Reports as Utility; use League\Fractal\TransformerAbstract; class Report extends TransformerAbstract @@ -16,16 +17,34 @@ class Report extends TransformerAbstract return [ 'id' => $model->id, 'company_id' => $model->company_id, + 'class' => $model->class, 'name' => $model->name, - 'alias' => $model->alias, 'description' => $model->description, - 'type' => $model->type, - 'group' => $model->group, - 'period' => $model->period, - 'basis' => $model->basis, - 'graph' => $model->graph, + 'settings' => $model->settings, + 'data' => $this->getReportData($model), 'created_at' => $model->created_at ? $model->created_at->toIso8601String() : '', 'updated_at' => $model->updated_at ? $model->updated_at->toIso8601String() : '', ]; } + + protected function getReportData($model) + { + if (!Utility::canShow($model->class)) { + return []; + } + + $report = Utility::getClassInstance($model); + + if (empty($report)) { + return []; + } + + $unset_attributes = ['model', 'views', 'loaded', 'column_name_width', 'column_value_width']; + + foreach ($unset_attributes as $attribute) { + unset($report->$attribute); + } + + return $report; + } }