1c67c26bd8
* wip * wip * wip * Update following.ts * wip * wip * wip * Update resolve-user.ts * maxQueryExecutionTime * wip * wip
36 lines
835 B
TypeScript
36 lines
835 B
TypeScript
import Koa from 'koa';
|
|
import { Users, UserPendings, UserProfiles } from '@/models/index.js';
|
|
import { signup } from '../common/signup.js';
|
|
import signin from '../common/signin.js';
|
|
|
|
export default async (ctx: Koa.Context) => {
|
|
const body = ctx.request.body;
|
|
|
|
const code = body['code'];
|
|
|
|
try {
|
|
const pendingUser = await UserPendings.findOneByOrFail({ code });
|
|
|
|
const { account, secret } = await signup({
|
|
username: pendingUser.username,
|
|
passwordHash: pendingUser.password,
|
|
});
|
|
|
|
UserPendings.delete({
|
|
id: pendingUser.id,
|
|
});
|
|
|
|
const profile = await UserProfiles.findOneByOrFail({ userId: account.id });
|
|
|
|
await UserProfiles.update({ userId: profile.userId }, {
|
|
email: pendingUser.email,
|
|
emailVerified: true,
|
|
emailVerifyCode: null,
|
|
});
|
|
|
|
signin(ctx, account);
|
|
} catch (e) {
|
|
ctx.throw(400, e);
|
|
}
|
|
};
|