Skip to content

Commit

Permalink
Added route to get detailed data for a single scan, route to delete user
Browse files Browse the repository at this point in the history
  • Loading branch information
heythisischris committed Aug 24, 2024
1 parent 325ea49 commit 2f86d3a
Show file tree
Hide file tree
Showing 5 changed files with 57 additions and 4 deletions.
5 changes: 4 additions & 1 deletion src/app.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import Fastify from 'fastify';
import { addProperties, addReports, addResults, addScans, deleteProperties, deleteReports, getApikey, getCharts, getFilters, getProperties, getReports, getResultsAll, getResultsMessages, getResultsSchema, getResultsTags, getResultsUrls, getScans, getUpdates, help, updateProperties, updateReports } from '#src/routes';
import { addProperties, addReports, addResults, addScans, deleteProperties, deleteReports, deleteUser, getApikey, getCharts, getFilters, getProperties, getReports, getResultsAll, getResultsMessages, getResultsSchema, getResultsTags, getResultsUrls, getScans, getUpdates, help, updateProperties, updateReports } from '#src/routes';
import { CognitoJwtVerifier } from 'aws-jwt-verify';
import { db } from './utils';
import { getScan } from './routes/getScan';
export const fastify = Fastify();
const cognitoJwtVerifier = CognitoJwtVerifier.create({
userPoolId: process.env.USER_POOL_ID,
Expand Down Expand Up @@ -40,6 +41,7 @@ fastify.get('/get/results/urls', {}, async (request, reply) => getResultsUrls({
fastify.get('/get/properties', {}, async (request, reply) => getProperties({ request, reply }));
fastify.get('/get/updates', {}, async (request, reply) => getUpdates({ request, reply }));
fastify.get('/get/scans', {}, async (request, reply) => getScans({ request, reply }));
fastify.get('/get/scan', {}, async (request, reply) => getScan({ request, reply }));
fastify.get('/get/reports', {}, async (request, reply) => getReports({ request, reply }));
fastify.get('/get/filters', {}, async (request, reply) => getFilters({ request, reply }));
fastify.get('/get/charts', {}, async (request, reply) => getCharts({ request, reply }));
Expand All @@ -58,6 +60,7 @@ fastify.put('/update/reports', {}, async (request, reply) => updateReports({ req
// DELETE requests
fastify.delete('/delete/properties', {}, async (request, reply) => deleteProperties({ request, reply }));
fastify.delete('/delete/reports', {}, async (request, reply) => deleteReports({ request, reply }));
fastify.delete('/delete/user', {}, async (request, reply) => deleteUser({ request, reply }));

// MISC requests
fastify.post('/help', {}, async (request, reply) => help({ request, reply }));
Expand Down
23 changes: 23 additions & 0 deletions src/routes/deleteUser.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import { jwtClaims } from '#src/app';
import { db } from '#src/utils';

export const deleteUser = async ({ request, reply }) => {
await db.connect();
const deletedUser = (await db.query({
text: `DELETE FROM "users" WHERE "id"=$1 RETURNING "id"`,
values: [jwtClaims.sub],
})).rows?.[0]?.id;
await db.clean();
if (deletedUser) {
return {
status: 'error',
message: 'User not found',
}
}
else {
return {
status: 'success',
message: 'User deleted successfully',
};
}
}
26 changes: 26 additions & 0 deletions src/routes/getScan.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import { graphql } from '#src/utils';

export const getScan = async ({ request, reply }) => {
const response = await graphql({
request,
query: `query($id: uuid!){
scans_by_pk(id:$id) {
id
created_at
processing
job_id
results
property { id name }
url { id url }
}
}`,
variables: {
id: request.query.scanId,
},
});

return {
status: 'success',
result: response?.scans_by_pk,
};
}
4 changes: 2 additions & 2 deletions src/routes/getScans.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ export const getScans = async ({ request, reply }) => {
createdAt: created_at
processing
jobId: job_id
results
${request.query.scanIds ? `results` : ``}
property {
id
name
Expand All @@ -27,7 +27,7 @@ export const getScans = async ({ request, reply }) => {
}
}`,
variables: {
limit: parseInt(request.query.limit ?? 5000),
limit: parseInt(request.query.limit ?? 10000),
offset: parseInt(request.query.offset ?? 0),
},
});
Expand Down
3 changes: 2 additions & 1 deletion src/routes/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,5 @@ export * from './updateReports'
export * from './webhookMonitorUpdate'
export * from './getFilters'
export * from './getCharts'
export * from './getApikey'
export * from './getApikey'
export * from './deleteUser'

0 comments on commit 2f86d3a

Please sign in to comment.