import { MigrationInterface, QueryRunner, TableColumn } from "typeorm"; import { getDefaultByORM, getTypeByORM } from "./ormHelper"; import { LoginRoutineEnum } from "../enums/loginRoutineEnum"; import { CodingHelper } from "../helpers/codingHelper"; import { APPLICATION_SECRET } from "../env.defaults"; export class UserLoginRoutine1746252454922 implements MigrationInterface { public async up(queryRunner: QueryRunner): Promise { let users = await queryRunner.manager.getRepository("user").find({ select: ["id", "secret"] }); await queryRunner.dropColumns("user", ["secret", "static"]); await queryRunner.addColumns("user", [ new TableColumn({ name: "secret", ...getTypeByORM("text"), default: getDefaultByORM("string") }), new TableColumn({ name: "routine", ...getTypeByORM("varchar"), default: getDefaultByORM("string", LoginRoutineEnum.totp), }), ]); await queryRunner.manager.getRepository("user").save(users.map((u) => ({ id: u.id, secret: u.secret }))); } public async down(queryRunner: QueryRunner): Promise { let users = await queryRunner.manager.getRepository("user").find({ select: ["id", "secret"] }); await queryRunner.dropColumn("user", "secret"); await queryRunner.addColumns("user", [ new TableColumn({ name: "secret", ...getTypeByORM("varchar"), default: getDefaultByORM("string") }), new TableColumn({ name: "static", ...getTypeByORM("boolean"), default: getDefaultByORM("boolean", false) }), ]); await queryRunner.manager.getRepository("user").save(users.map((u) => ({ id: u.id, secret: u.secret }))); await queryRunner.dropColumn("user", "routine"); } }