<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Support\Facades\Validator;
use Illuminate\Http\Request;
use App\Models\QualificationMaster;
use App\Models\Employee;
use Illuminate\Support\Facades\DB;
class QualificationController extends Controller
{
public function index()
{
$qualifications = QualificationMaster::all();
if (!empty($qualifications)) {
return response()->json(["status" => 'successed', "success" => true, "count" => count($qualifications), "data" => $qualifications]);
} else {
return response()->json(["status" => "failed", "success" => false, "message" => "Whoops! no record found", "data" => ""]);
}
}
public function create(Request $request)
{
$inputs = $request->all();
$rules = [
'title' => "required|unique:qualification_master,qualificationName|max:20",
];
$messages = [
'required' => 'The :attribute field is required.',
];
$fields = [
'title' => 'Title',
];
$validator = Validator::make($inputs, $rules, $messages, $fields);
// if validation fails
if ($validator->fails()) {
return response()->json(["status" => "failed", "message" => "Please fill all fields!!", "errors" => $validator->errors()]);
} else {
$insertArray = array(
"qualificationName" => $request->title,
);
$qualification = QualificationMaster::create($insertArray);
if (!is_null($qualification)) {
return response()->json(["status" => 'successed', "success" => true, "message" => "Qualification record created successfully", "data" => $qualification]);
} else {
return response()->json(["status" => "failed", "success" => false, "message" => "Whoops! failed to create."]);
}
}
}
public function edit($id)
{
$qualificationInfo = QualificationMaster::where('qualificationId', $id)->get();
$recordExist = $qualificationInfo[0]->qualificationId ?? 0;
if (!$recordExist) {
return response()->json(["status" => "failed", "message" => "Whoops! failed to edit, Qualification does not exist!!", "errors" => '']);
} else {
return response()->json(["status" => 'successed', "success" => true, "message" => "Qualification record found successfully", "data" => $qualificationInfo]);
}
}
public function update(Request $request, $id)
{
$inputs = $request->all();
$qualificationInfo = QualificationMaster::where('qualificationId', $id)->get();
$qualificationTitle = $qualificationInfo[0]->qualificationName ?? '';
$qualificationId = 0;
if ($qualificationTitle != $request->title) {
$conditionArr = array(
"qualificationName" => $request->title
);
$qualificationInfo = QualificationMaster::where($conditionArr)->get();
$qualificationId = $qualificationInfo[0]->qualificationId ?? 0;
}
// validate inputs
$validator = Validator::make(
$inputs,
[
"title" => "required"
]
);
// if validation fails
if ($validator->fails()) {
return response()->json(["status" => "failed", "message" => "Please fill all fields!!", "errors" => $validator->errors()]);
} else if ($qualificationId > 0) {
return response()->json(["status" => "failed", "message" => "Qualification already exist!!", "errors" => '']);
} else {
$updateArray = array(
"qualificationName" => $request->title
);
QualificationMaster::where('qualificationId', $id)->update($updateArray);
return response()->json(["status" => 'successed', "success" => true, "message" => "Qualification record edited successfully", "data" => '']);
}
}
public function delete($id)
{
$checkExist=Employee::select(DB::raw('count(*) as row_count'))->where('qualify_id',$id)->get();
if($checkExist[0]->row_count>0)
{
return response()->json(["status" => "failed","success" => false,"message" => "Whoops! failed to delete, qualification having employees!!","errors" =>'',"data" => []]);
}
else
{
$delete = QualificationMaster::where('qualificationId', '=', $id)->delete();
if ($delete) {
return response()->json(["status" =>'successed', "success" => true, "message" => "qualification deleted successfully","data" => []]);
} else {
return response()->json(["status" => "failed","success" => false,"message" => "could not deleted!!","errors" =>'',"data" => []]);
}
}
}
}
|