Files
ditto/src/api/oauth.ts
2023-03-04 22:54:57 -06:00

25 lines
685 B
TypeScript

import converter from 'npm:bech32-converting';
import { validator, z } from '@/deps.ts';
const createTokenSchema = z.object({
password: z.string().transform((v) => v.startsWith('nsec1') ? converter('nsec').toHex(v).slice(2) : v),
});
const createTokenController = validator('json', (value, c) => {
const result = createTokenSchema.safeParse(value);
if (result.success) {
return c.json({
access_token: result.data.password,
token_type: 'Bearer',
scope: 'read write follow push',
created_at: Math.floor(new Date().getTime() / 1000),
});
} else {
return c.json({ error: 'Invalid request' }, 400);
}
});
export { createTokenController };