Garrit Franke
3 years ago
5 changed files with 124 additions and 95 deletions
@ -0,0 +1,47 @@
|
||||
const router = require("express").Router(); |
||||
const Str = require('@supercharge/strings') |
||||
|
||||
router.get("/", async (req, res) => { |
||||
const redirects = [ |
||||
{ |
||||
id: 53, |
||||
alias: "edge_ribbon_strongman@proxymail.com", |
||||
forwardTo: "foo@bar.com", |
||||
}, |
||||
{ |
||||
id: 54, |
||||
alias: "mustard_roping_t_shirt@proxymail.com", |
||||
forwardTo: "foo@bar.com", |
||||
}, |
||||
]; |
||||
return res.json(redirects); |
||||
}); |
||||
|
||||
router.post("/", async (req, res) => { |
||||
console.log("Creating redirect for user req.user"); |
||||
const { forwardTo } = req.body; |
||||
|
||||
if (!forwardTo) { |
||||
return res.status(400).send("field 'forwardTo' was not provided"); |
||||
} |
||||
const alias = `${Str.random(20)}@proxymail.com`; |
||||
|
||||
const response = { |
||||
id: Math.floor((Math.random() * 100) + 1), |
||||
alias, |
||||
forwardTo, |
||||
}; |
||||
|
||||
res.json(response); |
||||
}); |
||||
|
||||
router.delete("/:id", async (req, res) => { |
||||
const id = req.params.id; |
||||
|
||||
res.send({ |
||||
status: "Success", |
||||
id, |
||||
}); |
||||
}); |
||||
|
||||
module.exports = router; |
@ -1,52 +0,0 @@
|
||||
const router = require("express").Router(); |
||||
|
||||
const User = require("../model/User"); |
||||
|
||||
router.get("/", async (req, res) => { |
||||
const user = await User.find(); |
||||
res.json(user); |
||||
}); |
||||
|
||||
router.post("/", async (req, res) => { |
||||
console.log("POSTing user"); |
||||
const { email, username } = req.body; |
||||
|
||||
// Don't accept duplicate emails
|
||||
if (await User.query().findWhere("email", email).count() > 0) { |
||||
res.status(400).send("Email already taken"); |
||||
return; |
||||
} |
||||
|
||||
const user = await User.insert({ |
||||
username, |
||||
email, |
||||
}); |
||||
res.json(user); |
||||
}); |
||||
|
||||
router.get("/:idOrName", async (req, res) => { |
||||
const idOrName = req.params.idOrName; |
||||
|
||||
const userById = await User.query().findById(idOrName); |
||||
if (userById) { |
||||
res.send(userById); |
||||
} else { |
||||
const userById = await User.query().findOne("username", idOrName); |
||||
if (!userById) return res.status(404).send("User not found"); |
||||
|
||||
const { id, username } = userById; |
||||
res.send({ |
||||
id, |
||||
username |
||||
}); |
||||
} |
||||
}); |
||||
|
||||
router.delete("/:id", async (req, res) => { |
||||
const id = req.params.id; |
||||
|
||||
const result = await User.deleteOne({ _id: id }); |
||||
res.send(result); |
||||
}); |
||||
|
||||
module.exports = router; |
Loading…
Reference in new issue