Файловый менеджер - Редактировать - /home/clickysoft/public_html/benchexc.clickysoft.net/app/Repositories/NeededTalentRepository.php
Назад
<?php namespace App\Repositories; use App\Http\Resources\NeededTalentResource; use App\Interfaces\NeededTalentRepositoryInterface; use App\Models\NeededTalent; use App\Models\NeededTalentTeckStack; use App\Models\RequestTalent; use Illuminate\Support\Facades\Validator; use Log; use Psr\Http\Client\NetworkExceptionInterface; class NeededTalentRepository implements NeededTalentRepositoryInterface { const ERROR_HAS_OCCURRED = 'An error has occurred.'; public function createNeedTalent($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|unique:needed_talent,email', 'phone_number' => 'required|integer|max:15', 'description' => 'required|string', 'city_id' => 'nullable|integer|exists:cities,id', 'availability' => 'required|string|max:50', 'additional_notes' => 'nullable|string|max:500', ]); if ($validator->fails()) { return makeJsonResponse('error', self::ERROR_HAS_OCCURRED, 422, [], collect($validator->errors())->values()->map(fn($error) => $error)); } $needResource = NeededTalent::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 (!empty($request->tech_stack_id) && is_array($request->tech_stack_id)) { foreach ($request->tech_stack_id as $tech_stacks_id) { Log::info('Inserting tech stack ID: ' . $tech_stacks_id); try { $neededTalent_teckStack = NeededTalentTeckStack::create([ 'needed_talent_id' => $needResource->id, 'tech_stack_id' => $tech_stacks_id ]); } catch (\Exception $e) { \Log::error('Insertion failed: ' . $e->getMessage()); return makeJsonResponse('error', self::ERROR_HAS_OCCURRED, 500, [], [['Failed to insert tech stack.']]); } } } else { return makeJsonResponse('error', self::ERROR_HAS_OCCURRED, 403, [], [['No tech stacks provided.']]); } return response([new NeededTalentResource($needResource), 'success'=>'needed Talent is created successfully']); } public function viewMyRequest() { $user = auth()->user(); if (!$user) { return makeJsonResponse('error', self::ERROR_HAS_OCCURRED, 404, [], [['User not found.']]); } $myTalent = NeededTalent::where('user_id',$user->id)->get(); return NeededTalentResource::collection($myTalent); } public function updateMyRequest($request,$id) { $MyTalent = NeededTalent::where('id',$id)->first(); if (!$MyTalent) { 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:needed_talent,email'.$id, 'description' => 'required|string', 'city_id' => 'nullable|integer|exists:cities,id', 'availability' => 'required|string|max:50', 'additional_notes' => 'nullable|string|max:500', ]); if ($validator->fails()) { return makeJsonResponse('error', self::ERROR_HAS_OCCURRED, 422, [], collect($validator->errors())->values()->map(fn($error) => $error)); } $MyTalent->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, ]); $neededTalent_teckStack = NeededTalentTeckStack::where('needed_talent_id',$MyTalent->id)->first(); foreach ($request->tech_stack_id as $tech_stacks_id){ $neededTalent_teckStack->update([ 'needed_talent_id'=>$MyTalent->id, 'tech_stacks_id'=>$tech_stacks_id ]); } return response([new NeededTalentResource($MyTalent), 'success'=>'Request Talent updated successfully']); } public function destroyTalent($id,$request) { $user = auth()->user(); if (!$user) { return makeJsonResponse('error', self::ERROR_HAS_OCCURRED, 404, [], [['Resource not found.']]); } $resource = NeededTalent::where('id', $id)->first(); if (!$resource) { return makeJsonResponse('error', self::ERROR_HAS_OCCURRED, 404, [], [['Needed talent not found.']]); } if ($resource->user_id !== $user->id) { return makeJsonResponse('error', self::ERROR_HAS_OCCURRED, 403, [], [['You are not authorized to delete this request.']]); } $resource->delete(); return response()->json(['message' => 'Request Talent deleted successfully']); } public function getAllRequestTalent() { $user = auth()->user(); $resources = NeededTalent::where('user_id', '!=', $user->id)->get(); return NeededTalentResource::collection($resources); } public function changeStatus($id,$request) { $neededTalent = NeededTalent::where('id',$id)->first(); if (!$neededTalent) { return makeJsonResponse('error', self::ERROR_HAS_OCCURRED, 404, [], [['Needed talent not found.']]); } $neededTalent->update([ 'status'=>$request->status ]); return response([new NeededTalentResource($neededTalent), 'success'=>'Status updated successfully']); } public function viewResource($id,$request) { $neededTalent = NeededTalent::where('id',$id)->first(); if (!$neededTalent) { return makeJsonResponse('error', self::ERROR_HAS_OCCURRED, 404, [], [['Needed talent not found.']]); } return response(new NeededTalentResource($neededTalent)); } }
| ver. 1.4 |
Github
|
.
| PHP 8.1.29 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка