const express = require('express'); const app = express(); const bodyParser = require('body-parser'); const morgan = require('morgan'); // Pour cette démo, les statuts sont uniquement conservés en // mémoire const statuses = {}; app.use(morgan('combined')); // On utilise le module "body-parser" // pour faciliter la désérialisation des données // des appels à l'API app.use(bodyParser.json()); // POST /statuses // Ajoute un nouveau statut pour l'utilisateur donné app.post('/statuses', (req, res) => { const newStatus = req.body; if(!newStatus.username || !newStatus.text) { return res.status(200).send({ ok: false, error: "Invalid status.", }); } if(newStatus.text.length > 200) { return res.status(200).send({ ok: false, error: "Status text too long.", }); } const userStatuses = statuses[newStatus.username] || []; userStatuses.unshift({ text: newStatus.text, createdAt: new Date(), }); statuses[newStatus.username] = userStatuses; return res.status(200).send({ ok: true, }); }); // GET /statuses/:username // Retourne les status de l'utilisateur donné app.get('/statuses/:username', (req, res) => { const username = req.params.username; if(!username) { return res.status(200).send({ ok: false, error: "Invalid username.", }); } const userStatuses = statuses[username] || []; return res.status(200).send({ ok: true, statuses: userStatuses, }); }); app.listen(8080, () => console.log('listening on port 8080'));