add edit and delete object-type, group and fields. fix bugs
parent
52ed94e452
commit
b7d9719976
|
|
@ -0,0 +1,43 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Api\Objects;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\Objects\Field;
|
||||
use Illuminate\Database\Eloquent\Relations\Relation;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class FieldsController extends Controller {
|
||||
protected Field $model;
|
||||
|
||||
public function __construct(Field $model) {
|
||||
$this->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);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Api\Objects;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\Objects\FieldsGroup;
|
||||
use Illuminate\Database\Eloquent\Relations\Relation;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class GroupsController extends Controller {
|
||||
protected FieldsGroup $model;
|
||||
|
||||
public function __construct(FieldsGroup $model) {
|
||||
$this->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);
|
||||
}
|
||||
}
|
||||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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');
|
||||
|
|
|
|||
Loading…
Reference in New Issue