From 01fe2faaebe92f7c66e42aad5353c3806d271998 Mon Sep 17 00:00:00 2001 From: "P. Reis" Date: Tue, 13 Aug 2024 20:47:21 -0300 Subject: [PATCH] feat: create getDittoDomainController --- src/app.ts | 3 +++ src/controllers/api/ditto.ts | 17 +++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/src/app.ts b/src/app.ts index 27900b54..901603c4 100644 --- a/src/app.ts +++ b/src/app.ts @@ -40,6 +40,7 @@ import { adminRelaysController, adminSetRelaysController, deleteZapSplitsController, + getDittoDomainController, getZapSplitsController, nameRequestController, nameRequestsController, @@ -280,6 +281,8 @@ app.delete('/api/v1/admin/ditto/zap_splits', requireRole('admin'), deleteZapSpli app.post('/api/v1/ditto/zap', requireSigner, zapController); app.get('/api/v1/ditto/statuses/:id{[0-9a-f]{64}}/zapped_by', zappedByController); +app.get('/api/v1/ditto/domains/:domain', getDittoDomainController); + app.post('/api/v1/reports', requireSigner, reportController); app.get('/api/v1/admin/reports', requireSigner, requireRole('admin'), adminReportsController); app.get('/api/v1/admin/reports/:id{[0-9a-f]{64}}', requireSigner, requireRole('admin'), adminReportController); diff --git a/src/controllers/api/ditto.ts b/src/controllers/api/ditto.ts index 899456a4..dd4015ab 100644 --- a/src/controllers/api/ditto.ts +++ b/src/controllers/api/ditto.ts @@ -9,6 +9,7 @@ import { booleanParamSchema, percentageSchema } from '@/schema.ts'; import { Conf } from '@/config.ts'; import { createEvent, paginated, parseBody } from '@/utils/api.ts'; import { deleteTag } from '@/utils/tags.ts'; +import { DittoDB } from '@/db/DittoDB.ts'; import { DittoEvent } from '@/interfaces/DittoEvent.ts'; import { DittoZapSplits, getZapSplits } from '@/utils/zap-split.ts'; import { getAuthor } from '@/queries.ts'; @@ -285,3 +286,19 @@ export const statusZapSplitsController: AppController = async (c) => { return c.json(zapSplits, 200); }; + +export const getDittoDomainController: AppController = async (c) => { + const domain = c.req.param('domain'); + const { kysely } = await DittoDB.getInstance(); + + const [result] = await kysely.selectFrom('ditto_domains') + .selectAll() + .where('domain', '=', domain) + .execute(); + + if (!result) { + return c.json(404); + } + + return c.json(result); +};