Created API endpoints

This commit is contained in:
2017-12-20 16:45:20 +07:00
parent ad11643854
commit 554c74481b
53 changed files with 4637 additions and 9 deletions

View File

@@ -0,0 +1,30 @@
<?php
namespace App\Transformers;
use App\Models\Answer as Model;
use League\Fractal\TransformerAbstract;
use App\Http\Resources\QuestionResource;
use App\Http\Resources\RespondentResource;
use App\Http\Resources\QuestionchoiceResource;
// use App\Http\Resources\UserResource;
class AnswerTransformer extends TransformerAbstract
{
/**
* @param Model $model
* @return array
*/
public function transform(Model $model)
{
return [
'id' => $model->id,
'text' => $model->text,
'question' => new QuestionResource($model->question),
'respondent' => new RespondentResource($model->respondent),
'choice' => new QuestionchoiceResource($model->questionchoice),
'createdAt' => $model->created_at->toIso8601String(),
'updatedAt' => $model->updated_at->toIso8601String()
];
}
}

View File

@@ -0,0 +1,29 @@
<?php
namespace App\Transformers;
use App\Models\Category as Model;
use League\Fractal\TransformerAbstract;
use App\Http\Resources\UserResource;
class CategoryTransformer extends TransformerAbstract
{
/**
* @param Model $model
* @return array
*/
public function transform(Model $model)
{
return [
'id' => $model->id,
'name' => $model->name,
'code' => $model->code,
'createdAt' => $model->created_at->toIso8601String(),
'updatedAt' => $model->updated_at->toIso8601String(),
'creator' => new UserResource($model->creator),
'links' => [
'relatedTo' => route('categories.index')
]
];
}
}

View File

@@ -0,0 +1,35 @@
<?php
namespace App\Transformers;
use App\Models\Question as Model;
use League\Fractal\TransformerAbstract;
use App\Http\Resources\SectionResource;
use App\Http\Resources\UserResource;
class QuestionTransformer extends TransformerAbstract
{
/**
* @param Model $model
* @return array
*/
public function transform(Model $model)
{
return [
'createdAt' => $model->created_at->toIso8601String(),
'updatedAt' => $model->updated_at->toIso8601String(),
'id' => $model->id,
'text' => $model->text,
'description' => $model->description,
'section' => new SectionResource($model->section),
'number' => $model->number,
'expectedLength' => $model->expected_length,
'questionType' => $model->question_type,
'choices' => $model->choices,
'creator' => new UserResource($model->creator),
'links' => [
'relatedTo' => route('questions.index')
]
];
}
}

View File

@@ -0,0 +1,24 @@
<?php
namespace App\Transformers;
use App\Models\Questionchoice as Model;
use League\Fractal\TransformerAbstract;
class QuestionchoiceTransformer extends TransformerAbstract
{
/**
* @param Model $model
* @return array
*/
public function transform(Model $model)
{
return [
'id' => $model->id,
'number' => $model->number,
'text' => $model->text,
'fillable' => $model->fillable,
'description' => $model->description
];
}
}

View File

@@ -0,0 +1,38 @@
<?php
namespace App\Transformers;
use App\Models\Questionnaire as Model;
use App\Models\User;
use App\Models\Category;
use League\Fractal\TransformerAbstract;
use App\Http\Resources\CategoryResource;
use App\Http\Resources\SectionResource;
use App\Http\Resources\UserResource;
class QuestionnaireTransformer extends TransformerAbstract
{
/**
* @param Model $model
* @return array
*/
public function transform(Model $model)
{
return [
'createdAt' => $model->created_at->toIso8601String(),
'updatedAt' => $model->updated_at->toIso8601String(),
'id' => $model->id,
'category' => new CategoryResource($model->category),
'title' => $model->title,
'description' => $model->description,
'releasedAt' => $model->released_at,
'closedAt' => $model->closed_at,
'reviewedAt' => $model->reviewed_at,
'sections' => SectionResource::collection($model->sections, ['key' => 'sections']),
'creator' => $model->creator,
'links' => [
'relatedTo' => route('questionnaires.index')
]
];
}
}

View File

@@ -0,0 +1,30 @@
<?php
namespace App\Transformers;
use App\Models\Respondent as Model;
use League\Fractal\TransformerAbstract;
use App\Http\Resources\CategoryResource;
class RespondentTransformer extends TransformerAbstract
{
/**
* @param Model $model
* @return array
*/
public function transform(Model $model)
{
return [
'id' => $model->id,
'name' => $model->name,
'occupation' => $model->occupation,
'gender' => $model->gender,
'birthdate' => $model->birthdate,
'email' => $model->email,
'handphone' => $model->handphone,
'category' => new CategoryResource($model->category),
'createdAt' => $model->created_at->toIso8601String(),
'updatedAt' => $model->updated_at->toIso8601String()
];
}
}

View File

@@ -0,0 +1,33 @@
<?php
namespace App\Transformers;
use App\Models\Section as Model;
use League\Fractal\TransformerAbstract;
use App\Http\Resources\QuestionnaireResource;
use App\Http\Resources\QuestionResource;
use App\Http\Resources\UserResource;
class SectionTransformer extends TransformerAbstract
{
/**
* @param Model $model
* @return array
*/
public function transform(Model $model)
{
return [
'id' => $model->id,
'title' => $model->title,
'description' => $model->description,
'questionnaire' => new QuestionnaireResource($model->questionnaire),
'questions' => QuestionResource::collection($model->questions()->orderBy('number')->get()),
'createdAt' => $model->created_at->toIso8601String(),
'updatedAt' => $model->updated_at->toIso8601String(),
'creator' => new UserResource($model->creator),
'links' => [
'relatedTo' => route('sections.index')
]
];
}
}

View File

@@ -0,0 +1,25 @@
<?php
namespace App\Transformers;
use App\Models\User as Model;
use League\Fractal\TransformerAbstract;
class UserTransformer extends TransformerAbstract
{
/**
* @param Model $model
* @return array
*/
public function transform(Model $model)
{
return [
'createdAt' => $model->created_at->toIso8601String(),
'updatedAt' => $model->updated_at->toIso8601String(),
'id' => $model->id,
'username' => $model->username,
'name' => $model->name,
'email' => $model->email
];
}
}