Files
bigcapital/packages/server/src/api/controllers/Jobs.ts
2023-02-03 11:57:50 +02:00

61 lines
1.3 KiB
TypeScript

import { Inject, Service } from 'typedi';
import { Router, Request, Response, NextFunction } from 'express';
import BaseController from '@/api/controllers/BaseController';
import { ServiceError } from '@/exceptions';
import JobsService from '@/services/Jobs/JobsService';
@Service()
export default class ItemsController extends BaseController {
@Inject()
jobsService: JobsService;
/**
* Router constructor.
*/
public router() {
const router = Router();
router.get('/:id', this.getJob, this.handlerServiceErrors);
return router;
}
/**
* Retrieve job details.
* @param {Request} req
* @param {Response} res
* @param {NextFunction} next
*/
private getJob = async (req: Request, res: Response, next: NextFunction) => {
const { id } = req.params;
try {
const job = await this.jobsService.getJob(id);
return res.status(200).send({
job: this.transfromToResponse(job),
});
} catch (error) {
next(error);
}
};
/**
* Handles service errors.
* @param {Error} error
* @param {Request} req
* @param {Response} res
* @param {NextFunction} next
*/
private handlerServiceErrors = (
error: Error,
req: Request,
res: Response,
next: NextFunction
) => {
if (error instanceof ServiceError) {
}
next(error);
};
}