Merge branch 'app-redirect' into 'main'

createAppController: parse formdata body

See merge request soapbox-pub/ditto!449
This commit is contained in:
Alex Gleason 2024-08-07 00:57:51 +00:00
commit b3eb65f5ce

View file

@ -1,4 +1,7 @@
import { z } from 'zod';
import type { AppController } from '@/app.ts'; import type { AppController } from '@/app.ts';
import { parseBody } from '@/utils/api.ts';
/** /**
* Apps are unnecessary cruft in Mastodon API, but necessary to make clients work. * Apps are unnecessary cruft in Mastodon API, but necessary to make clients work.
@ -14,10 +17,14 @@ const FAKE_APP = {
vapid_key: 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=', vapid_key: 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=',
}; };
const createAppSchema = z.object({
redirect_uris: z.string().url().optional(),
});
const createAppController: AppController = async (c) => { const createAppController: AppController = async (c) => {
// TODO: Handle both formData and json. 422 on parsing error. // TODO: Handle both formData and json. 422 on parsing error.
try { try {
const { redirect_uris } = await c.req.json(); const { redirect_uris } = createAppSchema.parse(await parseBody(c.req.raw));
return c.json({ return c.json({
...FAKE_APP, ...FAKE_APP,