do some routing stuffs
This commit is contained in:
parent
2f91709179
commit
bef37ca96f
2 changed files with 109 additions and 2 deletions
|
|
@ -2,7 +2,13 @@ const express = require('express');
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
|
|
||||||
router.get('/urls.json', (req, res) => {
|
router.use(express.json());
|
||||||
|
|
||||||
|
function saveUrls(urls, callback) {
|
||||||
|
fs.writeFile('src/Assets/urls.json', JSON.stringify(urls, null, 2), callback);
|
||||||
|
}
|
||||||
|
|
||||||
|
router.get('/urls', (req, res) => {
|
||||||
fs.readFile('src/Assets/urls.json', 'utf8', (err, data) => {
|
fs.readFile('src/Assets/urls.json', 'utf8', (err, data) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
console.error(err);
|
console.error(err);
|
||||||
|
|
@ -15,6 +21,107 @@ router.get('/urls.json', (req, res) => {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
router.post('/urls', (req, res) => {
|
||||||
|
fs.readFile('src/Assets/urls.json', 'utf8', (err, data) => {
|
||||||
|
if (err) {
|
||||||
|
console.error(err);
|
||||||
|
res.status(500).send('Internal Server Error');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const urls = JSON.parse(data);
|
||||||
|
const newUrl = {
|
||||||
|
link: req.body.link,
|
||||||
|
is_public: req.body.is_public
|
||||||
|
};
|
||||||
|
urls.push(newUrl);
|
||||||
|
|
||||||
|
saveUrls(urls, (err) => {
|
||||||
|
if (err) {
|
||||||
|
console.error(err);
|
||||||
|
res.status(500).send('Error saving URL');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
res.status(201).json(newUrl);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
router.delete('/urls', (req, res) => {
|
||||||
|
const linkToDelete = req.body.link;
|
||||||
|
if (!linkToDelete) {
|
||||||
|
res.status(400).send('Please provide a link to delete');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
fs.readFile('src/Assets/urls.json', 'utf8', (err, data) => {
|
||||||
|
if (err) {
|
||||||
|
console.error(err);
|
||||||
|
res.status(500).send('Internal Server Error');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const urls = JSON.parse(data);
|
||||||
|
const index = urls.findIndex(url => url.link === linkToDelete);
|
||||||
|
|
||||||
|
if (index !== -1) {
|
||||||
|
urls.splice(index, 1);
|
||||||
|
|
||||||
|
fs.writeFile('src/Assets/urls.json', JSON.stringify(urls, null, 2), (err) => {
|
||||||
|
if (err) {
|
||||||
|
console.error(err);
|
||||||
|
res.status(500).send('Error deleting URL');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
res.status(204).send();
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
res.status(404).send('URL not found');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
router.patch('/urls', (req, res) => {
|
||||||
|
const linkToModify = req.body.link;
|
||||||
|
if (!linkToModify) {
|
||||||
|
res.status(400).send('Please provide a link to modify');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
fs.readFile('src/Assets/urls.json', 'utf8', (err, data) => {
|
||||||
|
if (err) {
|
||||||
|
console.error(err);
|
||||||
|
res.status(500).send('Internal Server Error');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const urls = JSON.parse(data);
|
||||||
|
const urlToUpdate = urls.find(url => url.link === linkToModify);
|
||||||
|
|
||||||
|
if (urlToUpdate) {
|
||||||
|
if (req.body.is_public !== undefined) {
|
||||||
|
urlToUpdate.is_public = req.body.is_public;
|
||||||
|
}
|
||||||
|
|
||||||
|
saveUrls(urls, (err) => {
|
||||||
|
if (err) {
|
||||||
|
console.error(err);
|
||||||
|
res.status(500).send('Error updating URL');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
res.status(204).send();
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
res.status(404).send('URL not found');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
router.delete('/urls', (req, res) => {
|
||||||
|
res.status(400).send('Please provide an index to delete a specific URL');
|
||||||
|
});
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
basePath: '/',
|
basePath: '/',
|
||||||
router: router
|
router: router
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,7 @@ function listRoutes(router) {
|
||||||
path = path.slice(2);
|
path = path.slice(2);
|
||||||
}
|
}
|
||||||
routes.push({
|
routes.push({
|
||||||
file: path.split('/')[1], // Extract file name from the path
|
file: path.split('/')[1],
|
||||||
methods: Object.keys(middleware.route.methods),
|
methods: Object.keys(middleware.route.methods),
|
||||||
});
|
});
|
||||||
} else if (middleware.name === 'router') {
|
} else if (middleware.name === 'router') {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue