Support admin accounts endpoint (first pass)

This commit is contained in:
Alex Gleason
2024-01-05 15:35:55 -06:00
parent 714391b807
commit 5bd03bdcaa
5 changed files with 59 additions and 2 deletions

View File

@@ -0,0 +1,23 @@
import { type AppController } from '@/app.ts';
import { Conf } from '@/config.ts';
import { eventsDB } from '@/storages.ts';
import { renderAdminAccount } from '@/views/mastodon/admin-accounts.ts';
const adminAccountsController: AppController = async (c) => {
const events = await eventsDB.getEvents([{ kinds: [30361], authors: [Conf.pubkey], limit: 20 }]);
const pubkeys = events.map((event) => event.tags.find(([name]) => name === 'd')?.[1]!);
const authors = await eventsDB.getEvents([{ kinds: [0], ids: pubkeys, limit: pubkeys.length }]);
for (const event of events) {
const d = event.tags.find(([name]) => name === 'd')?.[1];
event.d_author = authors.find((author) => author.pubkey === d);
}
return c.json(
await Promise.all(
events.map((event) => renderAdminAccount(event)),
),
);
};
export { adminAccountsController };