Add an endpoint to request a NIP-05 name

This commit is contained in:
Alex Gleason
2024-06-06 14:14:59 -05:00
parent 4361c340b0
commit 616c405f0f
2 changed files with 25 additions and 1 deletions

View File

@@ -5,6 +5,7 @@ import { AppController } from '@/app.ts';
import { Conf } from '@/config.ts';
import { Storages } from '@/storages.ts';
import { AdminSigner } from '@/signers/AdminSigner.ts';
import { createEvent } from '@/utils/api.ts';
const markerSchema = z.enum(['read', 'write']);
@@ -58,3 +59,25 @@ function renderRelays(event: NostrEvent): RelayEntity[] {
return acc;
}, [] as RelayEntity[]);
}
const inviteRequestSchema = z.object({
nip05: z.string().email(),
reason: z.string().max(500).optional(),
});
export const inviteRequestController: AppController = async (c) => {
const { nip05, reason } = inviteRequestSchema.parse(await c.req.json());
await createEvent({
kind: 3036,
content: reason,
tags: [
['r', nip05],
['L', 'nip05.domain'],
['l', nip05.split('@')[1], 'nip05.domain'],
['p', Conf.pubkey],
],
}, c);
return new Response('', { status: 204 });
};