Файловый менеджер - Редактировать - /home/clickysoft/public_html/benchexc.clickysoft.net/app/Repositories/ResourcesRepository.php
Назад
<?php namespace App\Repositories; use App\Http\Resources\MyResources; use App\Interfaces\ResourcesRepositoryInterface; use App\Models\MultiOrgTechStack; use App\Models\resource; use App\Models\User; use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Validator; class ResourcesRepository implements ResourcesRepositoryInterface { const ERROR_HAS_OCCURRED = 'Error has occurred.'; public function getMyResources() { $user = auth()->user(); $resources = resource::where('user_id', $user->id)->get(); return MyResources::collection($resources); } public function createResources($request) { $user = auth()->user(); if (!$user) { return makeJsonResponse('error', self::ERROR_HAS_OCCURRED, 404, [], [['User not found.']]); } $validator = Validator::make($request->all(), [ 'resource_title' => 'required|string|max:255', 'years_of_experience' => 'required|integer|min:0', 'mobilization_time' => 'required|string|max:100', 'onsite_availability' => 'required|string|max:255', 'rate' => 'nullable|string|max:255', 'rate_type' => 'required|in:Per Month,Per Hour', 'email' => 'required|email|max:255|unique:resources,email', 'phone_number' => 'required|integer|max:15', 'description' => 'required|string', 'city_id' => 'nullable|integer|exists:cities,id', 'tech_stacks_id'=>'required|exists:tech_stacks,id', 'availability' => 'required|string|max:50', 'additional_notes' => 'nullable|string|max:500', 'resume_pdf' => 'required|file|mimes:pdf|max:2048', ]); if ($validator->fails()) { return makeJsonResponse('error', self::ERROR_HAS_OCCURRED, 422, [], collect($validator->errors())->values()->map(fn($error) => $error)); } $myResource = resource::create([ 'resource_title' => $request->resource_title, 'years_of_experience' => $request->years_of_experience, 'mobilization_time' => $request->mobilization_time, 'onsite_availability' => $request->onsite_availability, 'rate' => $request->rate, 'rate_type' => $request->rate_type, 'email' => $request->email, 'phone_number' => $request->phone_number, 'description' => $request->description, 'city_id' => $request->city_id, 'user_id'=>$user->id, 'availability' => $request->availability, 'additional_notes' => $request->additional_notes, ]); if ($request->hasFile('resume_pdf')) { $file = $request->file('resume_pdf'); $fileName = time() . '_' . $file->getClientOriginalName(); $file->storeAs('resume_pdfs', $fileName, 'public'); $myResource->update([ 'resume_pdf' => $fileName, ]); } foreach ($request->tech_stacks_id as $tech_stacks_id){ $resource_techStack = MultiOrgTechStack::create([ 'resources_id'=>$myResource->id, 'tech_stacks_id'=>$tech_stacks_id ]); } return response([new MyResources($myResource), 'success'=>'resources is created successfully']); } public function updateResource($request,$id) { $resource = resource::where('id',$id)->first(); if (!$resource) { return makeJsonResponse('error', self::ERROR_HAS_OCCURRED, 404, [], [['Resource not found.']]); } $validator = Validator::make($request->all(), [ 'resource_title' => 'required|string|max:255', 'years_of_experience' => 'required|integer|min:0', 'mobilization_time' => 'required|string|max:100', 'onsite_availability' => 'required|string|max:255', 'rate' => 'nullable|string|max:255', 'rate_type' => 'required|in:Per Month,Per Hour', 'email' => 'required|email|unique:resources,email,'.$id, 'phone_number' => 'required|integer|max:15', 'description' => 'required|string', 'city_id' => 'nullable|integer|exists:cities,id', 'availability' => 'nullable|string|max:50', 'additional_notes' => 'nullable|string|max:500', 'resume_pdf' => 'nullable|file|mimes:pdf|max:2048', ]); if ($validator->fails()) { return makeJsonResponse('error', self::ERROR_HAS_OCCURRED, 422, [], collect($validator->errors())->values()->map(fn($error) => $error)); } $resource->update([ 'resource_title' => $request->resource_title, 'years_of_experience' => $request->years_of_experience, 'mobilization_time' => $request->mobilization_time, 'onsite_availability' => $request->onsite_availability, 'rate' => $request->rate, 'rate_type' => $request->rate_type, 'email' => $request->email, 'phone_number' => $request->phone_number, 'description' => $request->description, 'city_id' => $request->city_id, 'availability' => $request->availability, 'additional_notes' => $request->additional_notes, ]); if ($request->hasFile('resume_pdf')) { $oldFile = $resource->resume_pdf; if ($oldFile) { Storage::disk('public')->delete('resume_pdfs/' . $oldFile); } $file = $request->file('resume_pdf'); $fileName = time() . '_' . $file->getClientOriginalName(); $file->storeAs('resume_pdfs', $fileName, 'public'); $resource->update([ 'resume_pdf' => $fileName, ]); } $resource_techStack = MultiOrgTechStack::where('resources_id',$resource->id)->first(); foreach ($request->tech_stacks_id as $tech_stacks_id){ $resource_techStack->update([ 'resources_id'=>$resource->id, 'tech_stacks_id'=>$tech_stacks_id ]); } return response([new MyResources($resource), 'success'=>'resources updated successfully']); } public function getAllResources(){ $user = auth()->user(); $resources = Resource::where('user_id', '!=', $user->id)->get(); return MyResources::collection($resources); } public function destroyResource($id) { $user = auth()->user(); if (!$user) { return makeJsonResponse('error', self::ERROR_HAS_OCCURRED, 404, [], [['User not found.']]); } $resource = Resource::where('id', $id)->first(); if (!$resource) { return makeJsonResponse('error', self::ERROR_HAS_OCCURRED, 404, [], [['Resource not found.']]); } if ($resource->user_id !== $user->id) { return makeJsonResponse('error', self::ERROR_HAS_OCCURRED, 403, [], [['You are not authorized to delete this resource.']]); } $resource->delete(); return response()->json(['message' => 'Resource deleted successfully']); } public function statusUpdate($request,$id) { $user = auth()->user(); if (!$user) { return makeJsonResponse('error', self::ERROR_HAS_OCCURRED, 404, [], [['User not found.']]); } $validator = Validator::make($request->all(), [ 'status' => 'required|integer|in:0,1,2,3', ]); if ($validator->fails()) { return makeJsonResponse('error', self::ERROR_HAS_OCCURRED, 422, [], collect($validator->errors())->values()->map(fn($error) => $error)); } $resource = Resource::where('id', $id)->first(); if (!$resource) { return makeJsonResponse('error', self::ERROR_HAS_OCCURRED, 404, [], [['Resource not found.']]); } if ($resource->user_id !== $user->id) { return makeJsonResponse('error', self::ERROR_HAS_OCCURRED, 403, [], [['You are not authorized to delete this resource.']]); } $resource->update([ 'status'=>$request->status ]); return response([new MyResources($resource), 'success'=>'status updated successfully']); } public function viewResources($request,$id) { $resource = resource::where('id',$id)->first(); if (!$resource) { return makeJsonResponse('error', self::ERROR_HAS_OCCURRED, 404, [], [['Resource not found.']]); } return response(new MyResources($resource)); } }
| ver. 1.4 |
Github
|
.
| PHP 8.1.29 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка