Ngiler SH3LL 360
Home
Information
Create File
Create Folder
:
/
home
/
tbf
/
tbfguestbe.tbf.ro
/
app
/
Http
/
Controllers
/
Api
/
Information Server
MySQL :
OFF
Perl :
OFF
CURL :
ON
WGET :
OFF
PKEXEC :
OFF
Directive
Local Value
IP Address
89.40.16.97
System
Linux server.atelieruldeit.ro 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64
User
tbf
PHP Version
7.3.33
Software
Apache
Doc root
Writable
close
Edit File :
InstanceController.php
| Size :
5.16
KB
Copy
<?php namespace App\Http\Controllers\Api; use App\Http\Controllers\Controller; use App\Http\Requests\InstanceFormInstructionRequest; use App\Http\Requests\InstanceFormRequest; use App\Http\Resources\InstanceEditResource; use App\Http\Resources\InstanceInstructionResource; use App\Http\Resources\InstanceResource; use App\Http\Resources\InstanceShowResource; use App\Http\Resources\InstanceSimpleResource; use App\Managers\InstanceManager; use App\Models\Instance; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; use Illuminate\Http\Resources\Json\AnonymousResourceCollection; class InstanceController extends Controller { /** * Display a listing of the resource. * * @return AnonymousResourceCollection */ public function index(): AnonymousResourceCollection { $instance = Instance::all(); return InstanceResource::collection($instance); } /** * Store a newly created resource in storage. * * @param InstanceF $request * * @return \Illuminate\Http\JsonResponse */ public function store(InstanceFormRequest $request): JsonResponse { $data = $request->validated(); $instance = Instance::create($data); if ($request->logo) { $dataLogo['logo'] = uploadFile($request->logo, 'logo', 'instance_logo', $instance, '_logo'); $instance->update($dataLogo); } InstanceManager::syncDataInSaleProcessPage($instance, $request->logo, $request->color); InstanceManager::syncDataInRecruitment($instance, $request->phone, $request->email); return response()->json([ 'status' => 'success', 'data' => new InstanceResource($instance) ]); } /** * Display the specified resource. * * @param Instance $instance * * @return InstanceShowResource */ public function show(Instance $instance): InstanceShowResource { return new InstanceShowResource($instance); } /** * Display the specified resource. * * @param Instance $instance * * @return InstanceEditResource */ public function edit(Instance $instance): InstanceEditResource { return new InstanceEditResource($instance); } /** * Update the specified resource in storage. * * @param InstanceFormRequest $request * @param Instance $instance * * @return JsonResponse */ public function update(InstanceFormRequest $request, Instance $instance): JsonResponse { $data = $request->validated(); // activarea temporara a modulelor se pot face doar de catre superadmin if (!auth()->user()->isSuperAdmin()) { unset($data['enable_sales']); unset($data['enable_management']); unset($data['enable_instruction']); unset($data['enable_responsibility']); unset($data['enable_procedure']); unset($data['enable_recruitment']); unset($data['disable_account']); } if ($request->logo) { $data['logo'] = uploadFile($request->logo, 'logo', 'instance_logo', $instance, '_logo'); } $instance->update($data); InstanceManager::syncDataInSaleProcessPage($instance, $request->logo, $request->color); InstanceManager::syncDataInRecruitment($instance, $request->phone, $request->email); if (isset($data['options'])) { $instance->options()->wherePivot('type', 'company')->detach(); $instance->options()->attach($data['options'], ['type' => 'company']); } return response()->json([ 'status' => 'success', 'data' => new InstanceEditResource($instance), ], 200); } /** * Update instructions options for resource in database. * * @param InstanceFormInstructionRequest $request * @param Instance $instance * * @return JsonResponse */ public function updateInstruction(InstanceFormInstructionRequest $request, Instance $instance): JsonResponse { $data = $request->validated(); if (isset($data['options'])) { $instance->options()->wherePivot('category', '=', $data['category'])->detach(); $instance->options()->attach($data['options'], ['type' => $data['type'], 'category' => $data['category']]); } return response()->json([ 'status' => 'success', 'data' => new InstanceInstructionResource($instance), ], 200); } /** * Display only the instructions options for the resource. * * @param Instance $instance * * @return InstanceInstructionResource */ public function getInstruction(Instance $instance): InstanceInstructionResource { return new InstanceInstructionResource($instance); } /** * Remove the specified resource from storage. * * @param Instance $instance * * @return JsonResponse */ public function destroy(Instance $instance): JsonResponse { $instance->delete(); return response()->json([ 'status' => 'success' ], 200); } }
Back