www/api/order-del.js

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!')
}
}