1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- const Job = require('../models/Job');
- const { successResponse, errorResponse } = require('../utils/apiResponse');
- class JobController {
- static async getAllJobs(req, res) {
- try {
- const jobs = await Job.findAll();
- successResponse(res, jobs);
- } catch (err) {
- errorResponse(res, err);
- }
- }
- static async getActiveJobs(req, res) {
- try {
- const [rows] = await db.query("SELECT * FROM jobs WHERE status = 'active'");
- const jobs = rows.map(row => ({
- ...row,
- pendingResumes: row.pending_resumes,
- passedResumes: row.passed_resumes,
- aiCriteria: JSON.parse(row.ai_criteria),
- createdAt: row.created_at,
- updatedAt: row.updated_at
- }));
- successResponse(res, jobs);
- } catch (err) {
- errorResponse(res, err);
- }
- }
- static async getJob(req, res) {
- try {
- const job = await Job.findById(req.params.id);
- if (!job) {
- return errorResponse(res, 'Job not found', 404);
- }
- successResponse(res, job);
- } catch (err) {
- errorResponse(res, err);
- }
- }
- static async createJob(req, res) {
- try {
- const newJob = await Job.create(req.body);
- successResponse(res, newJob, 201);
- } catch (err) {
- errorResponse(res, err);
- }
- }
- static async updateJob(req, res) {
- try {
- const updatedJob = await Job.update(req.params.id, req.body);
- successResponse(res, updatedJob);
- } catch (err) {
- errorResponse(res, err);
- }
- }
- static async triggerScreening(req, res) {
- try {
- const job = await Job.triggerScreening(req.params.id);
- successResponse(res, job);
- } catch (err) {
- errorResponse(res, err);
- }
- }
- }
- module.exports = JobController;
|