📦 EqualifyEverything / equalify-api

📄 addReports.ts · 29 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
29import { jwtClaims } from '#src/app';
import { formatId, db } from '#src/utils';

export const addReports = async ({ request, reply }) => {
    if (!request.body.reportName) {
        return {
            status: 'error',
            message: 'Report Name is required.',
        }
    }
    else if (!request.body.filters) {
        return {
            status: 'error',
            message: 'Report filters are required.',
        }
    }

    await db.connect();
    const id = (await db.query(`
        INSERT INTO "reports" ("user_id", "name", "filters") VALUES ($1, $2, $3) RETURNING "id"
    `, [jwtClaims.sub, request.body.reportName, JSON.stringify(request.body.filters ?? [])])).rows?.[0]?.id;
    await db.clean();

    return {
        status: 'success',
        message: 'Report added successfully',
        result: formatId(id),
    };
}