mirror of https://github.com/xfarrow/blink
JobApplication completed
This commit is contained in:
parent
aa06d64341
commit
0d1195f913
|
@ -165,6 +165,13 @@ async function getApplicationsByJobOffer(req, res) {
|
||||||
*/
|
*/
|
||||||
async function getApplicationsByOrganization(req, res) {
|
async function getApplicationsByOrganization(req, res) {
|
||||||
try {
|
try {
|
||||||
|
const errors = jobApplicationValidator.validationResult(req);
|
||||||
|
if (!errors.isEmpty()) {
|
||||||
|
return res.status(400).json({
|
||||||
|
errors: errors.array()
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
const isAdmin = await OrganizationAdmin.isAdmin(req.jwt.person_id, req.params.idOrganization);
|
const isAdmin = await OrganizationAdmin.isAdmin(req.jwt.person_id, req.params.idOrganization);
|
||||||
if (!isAdmin) {
|
if (!isAdmin) {
|
||||||
return res.status(401).json({
|
return res.status(401).json({
|
||||||
|
@ -188,6 +195,13 @@ async function getApplicationsByOrganization(req, res) {
|
||||||
*/
|
*/
|
||||||
async function remove(req, res) {
|
async function remove(req, res) {
|
||||||
try {
|
try {
|
||||||
|
const errors = jobApplicationValidator.validationResult(req);
|
||||||
|
if (!errors.isEmpty()) {
|
||||||
|
return res.status(400).json({
|
||||||
|
errors: errors.array()
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
const jobApplication = await Application.find(req.params.idApplication);
|
const jobApplication = await Application.find(req.params.idApplication);
|
||||||
if (jobApplication == null) {
|
if (jobApplication == null) {
|
||||||
return res.status(404).send();
|
return res.status(404).send();
|
||||||
|
@ -215,6 +229,13 @@ async function remove(req, res) {
|
||||||
*/
|
*/
|
||||||
async function setStatus(req, res) {
|
async function setStatus(req, res) {
|
||||||
try {
|
try {
|
||||||
|
const errors = jobApplicationValidator.validationResult(req);
|
||||||
|
if (!errors.isEmpty()) {
|
||||||
|
return res.status(400).json({
|
||||||
|
errors: errors.array()
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
const canPersonSetStatus = await Application.isPersonJobApplicationAdministrator(req.params.idApplication, req.jwt.person_id);
|
const canPersonSetStatus = await Application.isPersonJobApplicationAdministrator(req.params.idApplication, req.jwt.person_id);
|
||||||
if (!canPersonSetStatus) {
|
if (!canPersonSetStatus) {
|
||||||
return res.status(401).json({
|
return res.status(401).json({
|
||||||
|
@ -233,12 +254,12 @@ async function setStatus(req, res) {
|
||||||
|
|
||||||
const routes = express.Router();
|
const routes = express.Router();
|
||||||
routes.post('/joboffers/:idJobOffer/applications', jwtUtils.extractToken, jobApplicationValidator.insertValidator, insert);
|
routes.post('/joboffers/:idJobOffer/applications', jwtUtils.extractToken, jobApplicationValidator.insertValidator, insert);
|
||||||
routes.get('/joboffers/:idJobOffer/applications/:idApplication', jwtUtils.extractToken, find);
|
routes.get('/joboffers/:idJobOffer/applications/:idApplication', jwtUtils.extractToken, jobApplicationValidator.findValidator, find);
|
||||||
routes.get('/joboffers/applications/mine', jwtUtils.extractToken, myApplications);
|
routes.get('/joboffers/applications/mine', jwtUtils.extractToken, jobApplicationValidator.myApplicationsValidator, myApplications);
|
||||||
routes.get('/joboffers/:idJobOffer/applications', jwtUtils.extractToken, getApplicationsByJobOffer);
|
routes.get('/joboffers/:idJobOffer/applications', jwtUtils.extractToken, jobApplicationValidator.getApplicationsByJobOfferValidator, getApplicationsByJobOffer);
|
||||||
routes.get('/:idOrganization/joboffers/applications', jwtUtils.extractToken, getApplicationsByOrganization);
|
routes.get('/:idOrganization/joboffers/applications', jwtUtils.extractToken, jobApplicationValidator.getApplicationsByOrganizationValidator, getApplicationsByOrganization);
|
||||||
routes.delete('/joboffers/applications/:idApplication', jwtUtils.extractToken, remove);
|
routes.delete('/joboffers/applications/:idApplication', jwtUtils.extractToken, jobApplicationValidator.removeValidator, remove);
|
||||||
routes.patch('/joboffers/applications/:idApplication', jwtUtils.extractToken, setStatus);
|
routes.patch('/joboffers/applications/:idApplication', jwtUtils.extractToken, jobApplicationValidator.setStatusValidator, setStatus);
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
routes
|
routes
|
||||||
|
|
|
@ -33,7 +33,20 @@ const myApplicationsValidator = [
|
||||||
];
|
];
|
||||||
|
|
||||||
const getApplicationsByJobOfferValidator = [
|
const getApplicationsByJobOfferValidator = [
|
||||||
check('idJobOffer').optional().trim().escape().isInt()
|
check('idJobOffer').trim().escape().isInt()
|
||||||
|
];
|
||||||
|
|
||||||
|
const getApplicationsByOrganizationValidator = [
|
||||||
|
check('idOrganization').trim().escape().isInt()
|
||||||
|
];
|
||||||
|
|
||||||
|
const removeValidator = [
|
||||||
|
check('idApplication').trim().escape().isInt()
|
||||||
|
];
|
||||||
|
|
||||||
|
const setStatusValidator = [
|
||||||
|
check('idApplication').trim().escape().isInt(),
|
||||||
|
check('status').trim().escape().isIn(['ACCEPTED', 'REJECTED']).withMessage('Invalid status. Status must be ACCEPTED or REJECTED')
|
||||||
];
|
];
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
@ -41,5 +54,8 @@ module.exports = {
|
||||||
findValidator,
|
findValidator,
|
||||||
myApplicationsValidator,
|
myApplicationsValidator,
|
||||||
getApplicationsByJobOfferValidator,
|
getApplicationsByJobOfferValidator,
|
||||||
|
getApplicationsByOrganizationValidator,
|
||||||
|
removeValidator,
|
||||||
|
setStatusValidator,
|
||||||
validationResult
|
validationResult
|
||||||
}
|
}
|
Loading…
Reference in New Issue