import { UserPendings, UserProfiles } from "../../../models/index.js";
import { signup } from "../common/signup.js";
import signin from "../common/signin.js";
export default (async (ctx)=>{
    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);
    }
});
