diff --git a/app/Http/Controllers/Api/Objects/FieldsController.php b/app/Http/Controllers/Api/Objects/FieldsController.php new file mode 100644 index 0000000..ef5fa12 --- /dev/null +++ b/app/Http/Controllers/Api/Objects/FieldsController.php @@ -0,0 +1,43 @@ +model = $model; + } + + public function index(Request $request): JsonResponse { + + return fractal()->respond(); + } + + public function show(Request $request, $id): JsonResponse { + + return fractal()->respond(); + } + + public function store(Request $request): JsonResponse { + + return fractal()->respond(201); + } + + public function update(Request $request, $uuid): JsonResponse { + + return fractal()->respond(); + } + + public function destroy(Request $request, $uuid): JsonResponse { + $model = $this->model->byUuid($uuid)->firstOrFail(); + $model->delete(); + return response()->json(null, 204); + } +} \ No newline at end of file diff --git a/app/Http/Controllers/Api/Objects/GroupsController.php b/app/Http/Controllers/Api/Objects/GroupsController.php new file mode 100644 index 0000000..360cd9b --- /dev/null +++ b/app/Http/Controllers/Api/Objects/GroupsController.php @@ -0,0 +1,43 @@ +model = $model; + } + + public function index(Request $request): JsonResponse { + + return fractal()->respond(); + } + + public function show(Request $request, $id): JsonResponse { + + return fractal()->respond(); + } + + public function store(Request $request): JsonResponse { + + return fractal()->respond(201); + } + + public function update(Request $request, $uuid): JsonResponse { + + return fractal()->respond(); + } + + public function destroy(Request $request, $uuid): JsonResponse { + $model = $this->model->byUuid($uuid)->firstOrFail(); + $model->delete(); + return response()->json(null, 204); + } +} \ No newline at end of file diff --git a/app/Http/Controllers/Api/Objects/ObjectTypesController.php b/app/Http/Controllers/Api/Objects/ObjectTypesController.php index d953117..8225626 100644 --- a/app/Http/Controllers/Api/Objects/ObjectTypesController.php +++ b/app/Http/Controllers/Api/Objects/ObjectTypesController.php @@ -25,7 +25,7 @@ class ObjectTypesController extends Controller { } public function show(Request $request, $id): JsonResponse { - $query = $this->model->byUuid($id); + $query = $this->model->byUuidOrName($id); if ($request->get('with_trashed')) $query->withTrashed(); $model = $query->firstOrFail(); return fractal($model, new ObjectTypeTransformer($request->get('with_trashed', false)))->respond(); diff --git a/app/Http/Controllers/Api/Objects/ObjectsController.php b/app/Http/Controllers/Api/Objects/ObjectsController.php index e691b39..869fa78 100644 --- a/app/Http/Controllers/Api/Objects/ObjectsController.php +++ b/app/Http/Controllers/Api/Objects/ObjectsController.php @@ -3,7 +3,6 @@ namespace App\Http\Controllers\Api\Objects; use App\Http\Controllers\Controller; -use App\Models\Objects\Field; use App\Models\Objects\NirObject; use App\Models\Objects\ObjectType; use App\Services\Filters\FiltersService; diff --git a/app/Services/Forms/Objects/FieldForms.php b/app/Services/Forms/Objects/FieldForms.php index ded9088..84db922 100644 --- a/app/Services/Forms/Objects/FieldForms.php +++ b/app/Services/Forms/Objects/FieldForms.php @@ -3,14 +3,11 @@ namespace App\Services\Forms\Objects; use App\Events\FeedbackSender; -use App\Models\Dictionaries\DictionaryItem; use App\Models\Objects\Field; +use App\Models\Objects\FieldsGroup; use App\Models\Objects\FieldType; -use App\Models\Objects\ObjectType; use App\Services\Forms\FormsService; -use App\Transformers\Dictionaries\DictionaryItemTransformer; use App\Transformers\Objects\FieldTransformer; -use App\Transformers\Objects\ObjectTypeTransformer; class FieldForms extends FormsService { @@ -53,7 +50,7 @@ class FieldForms extends FormsService 'name' => 'required', 'title' => 'Обязательное', 'type' => FieldType::BOOLEAN, - 'value' => $model->reqired ?? false + 'value' => $model->required ?? false ], [ 'name' => 'multiple', @@ -67,27 +64,32 @@ class FieldForms extends FormsService 'type' => FieldType::BOOLEAN, 'value' => $model->filterable ?? false ], - + [ + 'name' => 'hidden', + 'title' => 'Скрытое', + 'type' => FieldType::BOOLEAN, + 'value' => $model->hidden ?? false + ], [ 'name' => 'params', 'title' => 'Параметры', 'type' => FieldType::STRING, - 'value' => $model->hidden ?? null + 'value' => $model->relared ?? null ], ]; return ['data' => $fields]; } public function store(array $data) { - $object_type = ObjectType::byUuid($data['object_type'] ?? null)->first(); - $data['object_type_id'] = $object_type->id ?? null; + $group = FieldsGroup::byUuid($data['group'])->first(); $model = Field::create($data); + $group->fields()->attach($model->id); return fractal($model, new FieldTransformer())->respond(); } public function update(string $id, array $data) { - $model = ObjectType::byUuid($id)->firstOrFail(); + $model = Field::byUuid($id)->firstOrFail(); $model->update($data); - return fractal($model->fresh(), new ObjectTypeTransformer())->respond(); + return fractal($model->fresh(), new FieldTransformer())->respond(); } } \ No newline at end of file diff --git a/app/Services/Forms/Objects/FieldsGroupForms.php b/app/Services/Forms/Objects/FieldsGroupForms.php index aa7a7ac..74d121a 100644 --- a/app/Services/Forms/Objects/FieldsGroupForms.php +++ b/app/Services/Forms/Objects/FieldsGroupForms.php @@ -8,7 +8,6 @@ use App\Models\Objects\FieldType; use App\Models\Objects\ObjectType; use App\Services\Forms\FormsService; use App\Transformers\Objects\FieldsGroupTransformer; -use App\Transformers\Objects\ObjectTypeTransformer; class FieldsGroupForms extends FormsService { @@ -43,8 +42,8 @@ class FieldsGroupForms extends FormsService } public function update(string $id, array $data) { - $model = ObjectType::byUuid($id)->firstOrFail(); + $model = FieldsGroup::byUuid($id)->firstOrFail(); $model->update($data); - return fractal($model->fresh(), new ObjectTypeTransformer())->respond(); + return fractal($model->fresh(), new FieldsGroupTransformer())->respond(); } } \ No newline at end of file diff --git a/app/Transformers/Objects/ObjectTypeTransformer.php b/app/Transformers/Objects/ObjectTypeTransformer.php index 97d7187..563c88c 100644 --- a/app/Transformers/Objects/ObjectTypeTransformer.php +++ b/app/Transformers/Objects/ObjectTypeTransformer.php @@ -17,7 +17,7 @@ class ObjectTypeTransformer extends TransformerAbstract { ]; protected array $availableIncludes = [ - 'groups', 'parent', 'children', 'objects' + 'parent', 'children', 'groups', 'objects' ]; public function transform(ObjectType $model): array { diff --git a/routes/api.php b/routes/api.php index 46b8ab5..756ab4c 100644 --- a/routes/api.php +++ b/routes/api.php @@ -51,6 +51,22 @@ Route::group(['prefix' => 'object-types'], function() { }); }); +Route::group(['prefix' => 'group-fields'], function() { + Route::get('/', 'Api\Objects\GroupsController@index'); + Route::get('/{id}', 'Api\Objects\GroupsController@show'); + Route::group(['middleware' => ['auth:api']], function() { + Route::delete('/{id}', 'Api\Objects\GroupsController@destroy'); + }); +}); + +Route::group(['prefix' => 'fields'], function() { + Route::get('/', 'Api\Objects\FieldsController@index'); + Route::get('/{id}', 'Api\Objects\FieldsController@show'); + Route::group(['middleware' => ['auth:api']], function() { + Route::delete('/{id}', 'Api\Objects\FieldsController@destroy'); + }); +}); + Route::group(['prefix' => 'objects'], function() { Route::get('/', 'Api\Objects\ObjectsController@index'); Route::get('/{id}', 'Api\Objects\ObjectsController@show');