📦 EqualifyEverything / equalify-api

📄 deleteReports.ts · 37 lines
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37import { jwtClaims } from '#src/app';
import { db, validateUuid } from '#src/utils';

export const deleteReports = async ({ request, reply }) => {
    if (!request.query.reportId) {
        return {
            status: 'error',
            message: 'Report ID is required.',
        }
    }
    else if (!validateUuid(request.query.reportId)) {
        return {
            status: 'error',
            message: 'Report ID is not a valid UUID.',
        }
    }

    await db.connect();
    const deletedIds = (await db.query(`
        DELETE FROM "reports" WHERE "id"=$1 AND "user_id"=$2 RETURNING "id"
    `, [request.query.reportId, jwtClaims.sub])).rows.map(obj => obj.id);
    await db.clean();

    if (deletedIds.length === 0) {
        return {
            status: 'error',
            message: 'reportId not found, no reports deleted.',
        }
    }
    else {
        return {
            status: 'success',
            message: 'Report deletion successful',
            result: deletedIds,
        };
    }
}