diff --git a/src/db/migrations/1761032305682-AddUniqueConstraintToUserEmail.ts b/src/db/migrations/1761032305682-AddUniqueConstraintToUserEmail.ts new file mode 100644 index 0000000..09a2ee5 --- /dev/null +++ b/src/db/migrations/1761032305682-AddUniqueConstraintToUserEmail.ts @@ -0,0 +1,15 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class AddUniqueConstraintToUserEmail1761032305682 implements MigrationInterface { + name = 'AddUniqueConstraintToUserEmail1761032305682' + + public async up(queryRunner: QueryRunner): Promise { + + await queryRunner.query(`ALTER TABLE "users" ADD CONSTRAINT "UQ_97672ac88f789774dd47f7c8be3" UNIQUE ("email")`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "users" DROP CONSTRAINT "UQ_97672ac88f789774dd47f7c8be3"`); + } + +} diff --git a/src/db/migrations/index.ts b/src/db/migrations/index.ts index d5bdf52..1d5acc9 100644 --- a/src/db/migrations/index.ts +++ b/src/db/migrations/index.ts @@ -4,4 +4,5 @@ export * from './1754915164810-seed-default-avatar'; export * from './1757349525708-create-money-requests-table'; export * from './1757433339849-add-reservation-amount-to-account-entity'; export * from './1757915357218-add-deleted-at-column-to-junior'; -export * from './1760869651296-AddMerchantInfoToTransactions'; \ No newline at end of file +export * from './1760869651296-AddMerchantInfoToTransactions'; +export * from './1761032305682-AddUniqueConstraintToUserEmail'; \ No newline at end of file diff --git a/src/user/entities/user.entity.ts b/src/user/entities/user.entity.ts index 93a356c..97ef32b 100644 --- a/src/user/entities/user.entity.ts +++ b/src/user/entities/user.entity.ts @@ -28,7 +28,7 @@ export class User extends BaseEntity { @Column('varchar', { length: 255, name: 'last_name', nullable: false }) lastName!: string; - @Column('varchar', { length: 255, name: 'email', nullable: true }) + @Column('varchar', { length: 255, name: 'email', nullable: true, unique: true }) email!: string; @Column('varchar', { length: 255, name: 'phone_number', nullable: true }) diff --git a/src/user/services/user.service.ts b/src/user/services/user.service.ts index 41f25eb..188accb 100644 --- a/src/user/services/user.service.ts +++ b/src/user/services/user.service.ts @@ -222,7 +222,7 @@ export class UserService { } async updateUserEmail(userId: string, email: string) { - const userWithEmail = await this.findUser({ email, isEmailVerified: true }); + const userWithEmail = await this.findUser({ email }); if (userWithEmail) { if (userWithEmail.id === userId) {