shell bypass 403
const express = require('express');
const router = express.Router();
const Business = require('../../schema/Business')
const Job = require('../../schema/Job')
router.post('/add', async (req, res) => {
try {
const { company, title, summary, responsiblities, education, skills, experience, certification, position, industry, location, jobType, benefits, salary, workScheduled, applicationPosted, applicationDeadline, applicationInstruction, requiredDocuments, contactPerson, contactNumber, additionalInfo } = req.body
console.log(req.body)
let errors = []
const business = await Business.findById(company)
if (!business) {
return res.status(422).redirect('/jobposting?error=You Should LoggedIn as a Company to post A Job Application')
}
if (errors.length == 0) {
const job = await Job.create({ company, title, summary, responsiblities: responsiblities.split('\n'), education, skills: skills.split('\n'), experience, certification, position, industry, location, jobType, benefits: benefits.split('\n'), salary, workScheduled, applicationPosted, applicationDeadline, applicationInstruction, requiredDocuments: requiredDocuments.split('\n'), contactPerson, contactNumber, additionalInfo })
if (job) {
const bJobs = business.jobs ? business.jobs : []
bJobs.push(job._id)
business.jobs = bJobs
await business.save()
return res.status(200).redirect(`/jobdetails/${job._id}?message=Job Posted Successfully`)
} else {
return res.status(409).redirect('/?error=Something Went Wrong')
}
}
else {
console.log(req.body)
return res.status(422).redirect('/jobposting?error=' + JSON.stringify(errors))
}
}
catch (err) {
console.log(err.message);
return res.status(422).redirect('/jobposting?error=' + err.message)
}
})
router.post('/update', async (req, res) => {
try {
const { id, company, title, summary, responsiblities, education, skills, experience, certification, position, industry, location, jobType, benefits, salary, workScheduled, applicationPosted, applicationDeadline, applicationInstruction, requiredDocuments, contactPerson, contactNumber, additionalInfo } = req.body
console.log(req.body)
let errors = []
const business = await Business.findById(company)
if (!business) {
return res.status(422).redirect('/jobposting?error=You Should LoggedIn as a Company to post A Job Application')
}
if (errors.length == 0) {
const job = await Job.findByIdAndUpdate(id, { company, title, summary, responsiblities: responsiblities.split('\n'), education, skills: skills.split('\n'), experience, certification, position, industry, location, jobType, benefits: benefits.split('\n'), salary, workScheduled, applicationPosted, applicationDeadline, applicationInstruction, requiredDocuments: requiredDocuments.split('\n'), contactPerson, contactNumber, additionalInfo }, {
new: true, // returns the updated document
runValidators: true, // ensures validations are run
});
if (job) {
const bJobs = business.jobs ? business.jobs : []
bJobs.push(job._id)
business.jobs = bJobs
await business.save()
return res.status(200).redirect(`/jobdetails/${job._id}?message=Job Updated Successfully`)
} else {
return res.status(409).redirect('/?error=Something Went Wrong')
}
}
else {
console.log(req.body)
return res.status(422).redirect('/jobposting?error=' + JSON.stringify(errors))
}
}
catch (err) {
console.log(err.message);
return res.status(422).redirect('/jobposting?error=' + err.message)
}
})
router.post('/delete', async (req, res) => {
try {
const { id, jobId } = req.body
const business = req.business
console.log(business?._id)
if (business?._id.toString() == id) {
await Job.findByIdAndDelete(jobId)
return res.status(422).redirect(`/profile?message=Job Deleted`)
}
return res.status(422).redirect(`/jobdetails/${jobId}?error=Something Went Wrong`)
}
catch (err) {
console.log(err.message);
return res.status(422).redirect(`/profile?error=` + err.message)
}
})
module.exports = router