26 lines
858 B
JavaScript
26 lines
858 B
JavaScript
'use strict'
|
|
require('dotenv').config()
|
|
const fs = require('fs').promises
|
|
const ORDERS_DIR = `${__dirname}/../orders`
|
|
|
|
module.exports = async (req, res) => {
|
|
const ip = req.ip.slice(7)
|
|
const orderFile = `${ORDERS_DIR}/${req.params.orderid}.json`
|
|
let order; try {
|
|
order = await JSON.parse(await fs.readFile(orderFile))
|
|
} catch (err) {
|
|
console.error(`[${ip}] requested ${orderFile} deletion but it couldn't be read:\n${err}`)
|
|
return res.sendStatus(500)
|
|
}
|
|
if (req.query.key.replace(/ /g,'+')===order.key) {
|
|
await fs.unlink(orderFile)
|
|
console.log(`[${ip}] Deleted order ${order.id}`)
|
|
return res.sendStatus(200)
|
|
}
|
|
else {
|
|
console.log(`[${ip}] tried to delete order ${order.id} but sent wrong key:\n ${req.query.key.replace(/ /g,'+')}`)
|
|
console.log(`[${ip}] correct key:\n ${order.key}`)
|
|
return res.status(403).send('Incorrect key!')
|
|
}
|
|
}
|