From bd2a1ae60c7abfe571f388ce2a7d7fb5c8013a81 Mon Sep 17 00:00:00 2001 From: quirinecker Date: Fri, 4 Jul 2025 16:44:43 +0200 Subject: [PATCH] backend returns done with boolean type instead of number --- backend/src/main.ts | 131 +++++++++++++++++++++++--------------------- 1 file changed, 69 insertions(+), 62 deletions(-) diff --git a/backend/src/main.ts b/backend/src/main.ts index 3356dbe..7404d65 100644 --- a/backend/src/main.ts +++ b/backend/src/main.ts @@ -8,122 +8,129 @@ const db = drizzle("file:local.db"); const app = express(); const userId = "Detlef"; +type Prettify = { + [K in keyof T]: T[K]; +} & {}; + +type TaskResponse = Prettify & { done: boolean }> + app.use(cors()) app.use(express.json()); app.get('/', (req, res) => { - res.send('Hello World'); + res.send('Hello World'); }); -app.get('/tasks', async(req, res) => { - const tasks = await db.select().from(task) - console.log(tasks) - res.send(tasks); +app.get('/tasks', async (req, res) => { + const tasks: typeof task.$inferSelect[] = await db.select().from(task) + res.send(tasks.map(task => { + return { ...task, done: task.done === 1 } + })); }); -app.get('/events', async(req, res) => { - res.send(await db.select().from(event)) +app.get('/events', async (req, res) => { + res.send(await db.select().from(event)) }); app.get('/user/:id', (req, res) => { - const id = req.params['id']; + const id = req.params['id']; - if (id == null) { - res.status(400).send({error: 'Needs an user id'}); - return; - } + if (id == null) { + res.status(400).send({ error: 'Needs an user id' }); + return; + } - const user = {id: id, name: 'Cracker'} //TODO - res.json(user); + const user = { id: id, name: 'Cracker' } //TODO + res.json(user); }); -app.get('/task/:id', async(req, res) => { +app.get('/task/:id', async (req, res) => { - const id = parseInt(req.params['id']); + const id = parseInt(req.params['id']); - if (id == null) { - res.status(400).send({error: 'Needs an id'}); - return; - } + if (id == null) { + res.status(400).send({ error: 'Needs an id' }); + return; + } - const returnedTask = await db.select().from(task).where(eq(task.id, id)) - // - console.log(returnedTask) - res.json(returnedTask); + const returnedTask = await db.select().from(task).where(eq(task.id, id)) + // + console.log(returnedTask) + res.json(returnedTask); }); app.get('/event/:id', (req, res) => { - const id = req.params['id']; + const id = req.params['id']; - if (id == null) { - res.status(400).send({error: 'Needs an id'}); - return; - } + if (id == null) { + res.status(400).send({ error: 'Needs an id' }); + return; + } - const event = {id: id, name: 'Pary'} //TODO - res.json(event); + const event = { id: id, name: 'Pary' } //TODO + res.json(event); }); -app.post('/task', async(req, res) => { +app.post('/task', async (req, res) => { - const newTask = req.body - newTask.userid = userId + const newTask = req.body + newTask.userid = userId - const returnedTask = await db.insert(task).values(newTask).returning() - console.log(returnedTask) + const returnedTask = await db.insert(task).values(newTask).returning() + console.log(returnedTask) - res.status(201).json(returnedTask); + res.status(201).json(returnedTask); }); -app.post('/event', async(req, res) => { +app.post('/event', async (req, res) => { - const newEvent: typeof event.$inferInsert = req.body - newEvent.description = "" - newEvent.userid = userId + const newEvent: typeof event.$inferInsert = req.body + newEvent.description = "" + newEvent.userid = userId - const returnedEvent = await db.insert(event).values(newEvent).returning() - console.log(returnedEvent) + const returnedEvent = await db.insert(event).values(newEvent).returning() + console.log(returnedEvent) - res.status(201).json(returnedEvent); + res.status(201).json(returnedEvent); }); app.put('/task', (req, res) => { - const updatedTask = req.body; + const updatedTask = req.body; - //Validate (having id) + //Validate (having id) - //const updatedTaskWithId = db.updateTask(updatedTask) + //const updatedTaskWithId = db.updateTask(updatedTask) - res.status(200).json(updatedTask); + res.status(200).json(updatedTask); }); app.put('/event', (req, res) => { - const updatedEvent = req.body; + const updatedEvent = req.body; - //Validate (having id) + //Validate (having id) - //const updatedEventWithId = db.updateEvent(updatedEvent) + //const updatedEventWithId = db.updateEvent(updatedEvent) - res.status(200).json(updatedEvent); + res.status(200).json(updatedEvent); }); -app.delete('/task/:id', async(req, res) => { - const id = parseInt(req.params['id']); +app.delete('/task/:id', async (req, res) => { + const id = parseInt(req.params['id']); - const success = await db.delete(task).where(eq(task.id, id)) - res.send("Deleted"); + const success = await db.delete(task).where(eq(task.id, id)) + res.send("Deleted"); }); -app.delete('/event/:id', async(req, res) => { - const id = parseInt(req.params['id']); +app.delete('/event/:id', async (req, res) => { + const id = parseInt(req.params['id']); - const success = await db.delete(event).where(eq(event.id, id)) - res.send("Deleted"); + const success = await db.delete(event).where(eq(event.id, id)) + res.send("Deleted"); }); app.listen(8080, () => { - console.log('Listening on port 8080'); -}); \ No newline at end of file + console.log('Listening on port 8080'); +});