File manager - Edit - /home/autoph/public_html/projects/app/Http/Controllers/API/v1/ApplicantController.php
Back
<?php namespace App\Http\Controllers; namespace App\Http\Controllers\API\v1; use App\Http\Controllers\Controller; use App\Models\Applicant; use App\Models\ApplicantProcessHistory; use App\Models\Employee; use App\Models\Mrf; use App\Notifications\JobApplication; use Illuminate\Http\Request; use Illuminate\Http\Response; use Illuminate\Support\Facades\Validator; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Notification; use Illuminate\Support\Facades\Storage; use Illuminate\Validation\Rule; use PHPUnit\Event\Code\Throwable; use Illuminate\Support\Str; class ApplicantController extends Controller { /** * Display a listing of the resource. */ public function index(Request $request) { $keyword = $request->input('keyword', ''); $perPage = $request->input('per_page',PHP_INT_MAX); $sortBy = $request->input('sortBy', ''); $sortType = $request->input('sortType', ''); // $data = Applicant::with( // ['job' => function () { // }, 'jobtitle']) // ->where(function ($query) use ($keyword) { $data = Applicant::with(['job', 'job.jobtitle', 'process_history'])->where(function ($query) use ($keyword) { $keyword = str_replace(" ", "%", $keyword); $query->where('firstname', 'like', '%' . $keyword . '%'); $query->orWhere('middlename', 'like', '%' . $keyword . '%'); $query->orWhere('lastname', 'like', '%' . $keyword . '%'); })->where('blocklist', 0); if (!empty($sortBy) && !empty($sortType)) { $data = $data->orderBy($sortBy, $sortType); } $data = $data->paginate($perPage); return response()->json($data); } public function store(Request $request) { // dd($request->all()); $validator = Validator::make($request->all(), [ 'firstname' => "required", 'lastname' => "required", 'address' => "required", 'contact_number' => "required", 'email' => "required", 'cover_letter' => "required", 'resume' => 'required|mimes:jpg,jpeg,png,csv,xlx,xls,pdf,xlsx,docx|max:5120' ]); /** If validation fails return with error message */ if ($validator->fails()) { $errors = $validator->errors(); $first = $errors->getMessages(); return response()->json([ 'status' => false, 'message' => (reset($first))[0], 'errors' => $errors ], Response::HTTP_UNPROCESSABLE_ENTITY); } if($request->hasFile('resume')) { // dd($request->file('resume')); $image = $request->file('resume'); $resume_name = time().'_'.$image->getClientOriginalName(); $path = "applicant/".$resume_name; if(Storage::disk('local')->put($path, file_get_contents($image))) { DB::connection()->beginTransaction(); try { $Status = Applicant::create([ 'job_id' => $request->job_id, 'firstname' => $request->firstname, 'lastname' => $request->lastname, 'address' => $request->address, 'contact_number' => $request->contact_number, 'email' => $request->email, 'last_position' => $request->last_position, 'last_salary' => $request->last_salary, 'cover_letter' => $request->cover_letter, 'resume' => $resume_name, 'status' => 0, ]); $mrf = Mrf::with('company:id,email', 'jobtitle:id,name')->select('company_id','job_title')->where('id', $request->job_id)->first(); $dataForEmail = $Status; // dd($mrf); $dataForEmail['position'] = $mrf->jobtitle->name; // Get the company email $companyEmail = $mrf->company->email; // Send the notification directly to the email address Notification::route('mail', $companyEmail)->notify(new JobApplication($dataForEmail)); DB::connection()->commit(); return response()->json([ 'status' => true, 'message' => 'Saved successfully!', 'data' => $Status ],201); } catch (Throwable $e) { DB::connection()->rollback(); return response()->json([ 'status' => false, 'message' => 'Unable to process request. Please try again.', 'data' => $e->getMessage() ]); } } else { return response()->json([ 'status' => false, 'message' => 'Unable to process request. Please try again.', 'data' => $e->getMessage() ]); } } } // public function store(Request $request) // { // // Validate the incoming request data // $validator = Validator::make($request->all(), [ // 'name' => [ // 'required', // ] // ]); // /** If validation fails return with error message */ // if ($validator->fails()) { // $errors = $validator->errors(); // $first = $errors->getMessages(); // return response()->json([ // 'status' => false, // 'message' => (reset($first))[0], // 'errors' => $errors // ], Response::HTTP_UNPROCESSABLE_ENTITY); // } // DB::connection()->beginTransaction(); // try { // $data = Applicant::create($request->all()); // DB::connection()->commit(); // return response()->json([ // 'message' => 'Record Successfully added!', // 'status' => 'success', // ],201); // } catch (Throwable $e) { // DB::connection()->rollback(); // return response()->json([ // 'status' => false, // 'message' => 'Unable to process request. Please try again.', // 'data' => $e->getMessage() // ]); // } // } public function update(Request $request, int $id) { $data = Applicant::withTrashed()->where('id', $id)->first(); if (!$data) { return response()->json(['messages' => 'No data found.'], 404); } $validator = Validator::make($request->all(), [ // 'name' => [ // 'required', // 'min:2', // Rule::unique('applicants')->ignore($id)->whereNull('deleted_at') // ] ] ); /** If validation fails return with error message */ if ($validator->fails()) { $errors = $validator->errors(); $first = $errors->getMessages(); return response()->json([ 'status' => false, 'message' => (reset($first))[0], 'errors' => $errors ], Response::HTTP_UNPROCESSABLE_ENTITY); } DB::connection()->beginTransaction(); try { $request['deleted_at'] = null; // Fill other attributes $data->fill($request->except('deleted_at')); // Explicitly set deleted_at to null $data->deleted_at = null; $data->save(); $data->touch(); DB::connection()->commit(); return response()->json([ 'message' => 'Record Successfully updated!', 'status' => 'success', 'data' => $data, ],201); } catch (Throwable $e) { DB::connection()->rollback(); return response()->json([ 'status' => false, 'message' => 'Unable to process request. Please try again.', 'data' => $e->getMessage() ]); } } public function updateStatus(Request $request, int $id) { // dd($request->all()); $data = Applicant::where('id', $id)->first(); $applicant_history = ApplicantProcessHistory::create([ 'applicant_id' => $id, 'action_id' => $request->status, 'action_made' => date('Y-m-d') ]); if (!$data) { return response()->json(['messages' => 'No data found.'], 404); } $validator = Validator::make($request->all(), [ // 'name' => [ // 'required', // 'min:2', // Rule::unique('applicants')->ignore($id)->whereNull('deleted_at') // ] ] ); /** If validation fails return with error message */ if ($validator->fails()) { $errors = $validator->errors(); $first = $errors->getMessages(); return response()->json([ 'status' => false, 'message' => (reset($first))[0], 'errors' => $errors ], Response::HTTP_UNPROCESSABLE_ENTITY); } DB::connection()->beginTransaction(); try { if($request->status == 4){ $request['offered_date'] = date("Y-m-d"); } if($request->status == 5){ $request['status'] = 0; $request['blocklist'] = 1; $request['blocklisted_date'] = date("Y-m-d"); } $data->fill($request->all()); $data->save(); $data->touch(); DB::connection()->commit(); return response()->json([ 'message' => 'Record Successfully updated!', 'status' => 'success', 'data' => $data, ],201); } catch (Throwable $e) { DB::connection()->rollback(); return response()->json([ 'status' => false, 'message' => 'Unable to process request. Please try again.', 'data' => $e->getMessage() ]); } } public function blocklist(Request $request, int $id) { $data = Applicant::where('id', $id)->first(); if (!$data) { return response()->json(['messages' => 'No data found.'], 404); } $validator = Validator::make($request->all(), [ // 'name' => [ // 'required', // 'min:2', // Rule::unique('applicants')->ignore($id)->whereNull('deleted_at') // ] ] ); /** If validation fails return with error message */ if ($validator->fails()) { $errors = $validator->errors(); $first = $errors->getMessages(); return response()->json([ 'status' => false, 'message' => (reset($first))[0], 'errors' => $errors ], Response::HTTP_UNPROCESSABLE_ENTITY); } DB::connection()->beginTransaction(); try { $request['blocklist'] = 1; $request['blocklisted_date'] = date("Y-m-d"); // dd($request->all()); $data->fill($request->all()); $data->save(); $data->touch(); DB::connection()->commit(); return response()->json([ 'message' => 'Record Successfully updated!', 'status' => 'success', 'data' => $data, ],201); } catch (Throwable $e) { DB::connection()->rollback(); return response()->json([ 'status' => false, 'message' => 'Unable to process request. Please try again.', 'data' => $e->getMessage() ]); } } public function destroy(int $id) { $data = Applicant::find($id); if(!$data) { return response()->json(['message' => "Record not found!"],204); } DB::connection()->beginTransaction(); $data->delete(); DB::connection()->commit(); return response()->json(['message' => "Record successfully deleted!"],201); } public function newEmployee(string $employee_id){ $user = Employee::where('employee_id', $employee_id); } }
| ver. 1.4 |
.
| PHP 8.1.32 | Generation time: 0.01 |
proxy
|
phpinfo
|
Settings