Add account search controller, which does basically the same thing as account lookup for now

This commit is contained in:
Alex Gleason 2023-04-29 16:28:53 -05:00
parent 9e73a8e43c
commit 70f69b80f3
No known key found for this signature in database
GPG Key ID: 7211D1F99744FBB7
2 changed files with 21 additions and 2 deletions

View File

@ -54,4 +54,22 @@ const accountLookupController: AppController = async (c) => {
return c.json({ error: 'Could not find user.' }, 404); return c.json({ error: 'Could not find user.' }, 404);
}; };
export { accountController, accountLookupController, credentialsController }; const accountSearchController: AppController = async (c) => {
const q = c.req.query('q');
if (!q) {
return c.json({ error: 'Missing `q` query parameter.' }, 422);
}
const pubkey = bech32ToPubkey(q);
if (pubkey) {
const event = await getAuthor(pubkey);
if (event) {
return c.json([toAccount(event)]);
}
}
return c.json([]);
};
export { accountController, accountSearchController, accountLookupController, credentialsController };

View File

@ -1,6 +1,6 @@
import { type Context, cors, type Handler, Hono, type HonoEnv, type MiddlewareHandler } from '@/deps.ts'; import { type Context, cors, type Handler, Hono, type HonoEnv, type MiddlewareHandler } from '@/deps.ts';
import { accountController, accountLookupController, credentialsController } from './api/accounts.ts'; import { accountController, accountLookupController, accountSearchController, credentialsController } from './api/accounts.ts';
import { appCredentialsController, createAppController } from './api/apps.ts'; import { appCredentialsController, createAppController } from './api/apps.ts';
import { emptyArrayController, emptyObjectController } from './api/fallback.ts'; import { emptyArrayController, emptyObjectController } from './api/fallback.ts';
import homeController from './api/home.ts'; import homeController from './api/home.ts';
@ -33,6 +33,7 @@ app.post('/oauth/token', createTokenController);
app.post('/oauth/revoke', emptyObjectController); app.post('/oauth/revoke', emptyObjectController);
app.get('/api/v1/accounts/verify_credentials', requireAuth, credentialsController); app.get('/api/v1/accounts/verify_credentials', requireAuth, credentialsController);
app.get('/api/v1/accounts/search', accountSearchController);
app.get('/api/v1/accounts/lookup', accountLookupController); app.get('/api/v1/accounts/lookup', accountLookupController);
app.get('/api/v1/accounts/:id', accountController); app.get('/api/v1/accounts/:id', accountController);