|
@@ -0,0 +1,91 @@
|
|
|
+<?php
|
|
|
+
|
|
|
+namespace App\Http\Controllers\API;
|
|
|
+
|
|
|
+use App\Http\Controllers\Controller;
|
|
|
+use App\Http\Requests\API\Container\CreateOrUpdateRequest;
|
|
|
+use App\Models\Container;
|
|
|
+use App\Models\Enums\FileObjectType;
|
|
|
+use App\Models\Enums\ObjectAction;
|
|
|
+use App\Repositories\ActionRepository;
|
|
|
+use App\Repositories\CustomFieldRepository;
|
|
|
+use App\Services\File\FileAssociationService;
|
|
|
+use App\Services\File\ImageUrlService;
|
|
|
+use Illuminate\Http\Request;
|
|
|
+use Illuminate\Support\Facades\Auth;
|
|
|
+
|
|
|
+class ContainerController extends Controller
|
|
|
+{
|
|
|
+ /**
|
|
|
+ * Display a listing of the resource.
|
|
|
+ */
|
|
|
+ public function index()
|
|
|
+ {
|
|
|
+ //
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Store a newly created resource in storage.
|
|
|
+ */
|
|
|
+ public function store(
|
|
|
+ CreateOrUpdateRequest $request,
|
|
|
+ ImageUrlService $imageUrlService,
|
|
|
+ FileAssociationService $service,
|
|
|
+ CustomFieldRepository $customFieldRepo
|
|
|
+ )
|
|
|
+ {
|
|
|
+ $formData = [
|
|
|
+ ...$request->all(),
|
|
|
+ 'company_id' => Auth::user()->company_id,
|
|
|
+ 'created_by' => Auth::id(),
|
|
|
+ 'whitelist' => $request->whitelist ? sprintf(",%s,", implode(',', $request->whitelist)) : null,
|
|
|
+ 'description' => $imageUrlService->interceptImageUrl($request->description) ,
|
|
|
+ ];
|
|
|
+
|
|
|
+ if ($request->has("naming_rule_id") && $request->get("naming_rule_id") > 0) {
|
|
|
+ $keys = $customFieldRepo->keysByGroup($request->get("naming_rule_id"));
|
|
|
+ $formData['naming_rules'] = $request->only($keys);
|
|
|
+ }
|
|
|
+
|
|
|
+ $container = new Container();
|
|
|
+ $container->mergeFillable(['company_id']);
|
|
|
+ $container->fill($formData);
|
|
|
+ $container->save();
|
|
|
+
|
|
|
+ $container = Container::query()->create($formData);
|
|
|
+
|
|
|
+ ActionRepository::createByContainer($container, ObjectAction::CREATED);
|
|
|
+
|
|
|
+ $service->association(
|
|
|
+ $request->get("file_ids", []),
|
|
|
+ $container->id,
|
|
|
+ FileObjectType::CONTAINER
|
|
|
+ );
|
|
|
+
|
|
|
+ return $this->created();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Display the specified resource.
|
|
|
+ */
|
|
|
+ public function show(string $id)
|
|
|
+ {
|
|
|
+ //
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Update the specified resource in storage.
|
|
|
+ */
|
|
|
+ public function update(Request $request, string $id)
|
|
|
+ {
|
|
|
+ //
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Remove the specified resource from storage.
|
|
|
+ */
|
|
|
+ public function destroy(string $id)
|
|
|
+ {
|
|
|
+ //
|
|
|
+ }
|
|
|
+}
|