Merge branch 'phone' into 'main'

add phone

See merge request mobicoop/lab/v3/services/user!4
This commit is contained in:
Gsk54 2022-12-21 15:16:51 +00:00
commit a08468bddc
12 changed files with 50 additions and 17 deletions

View File

@ -0,0 +1,5 @@
-- AlterTable
ALTER TABLE "user" ADD COLUMN "phone" TEXT,
ALTER COLUMN "firstName" DROP NOT NULL,
ALTER COLUMN "lastName" DROP NOT NULL,
ALTER COLUMN "email" DROP NOT NULL;

View File

@ -0,0 +1,8 @@
/*
Warnings:
- A unique constraint covering the columns `[phone]` on the table `user` will be added. If there are existing duplicate values, this will fail.
*/
-- CreateIndex
CREATE UNIQUE INDEX "user_phone_key" ON "user"("phone");

View File

@ -12,9 +12,10 @@ datasource db {
model User {
uuid String @id @default(uuid()) @db.Uuid
firstName String
lastName String
email String @unique
firstName String?
lastName String?
email String? @unique
phone String? @unique
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt

View File

@ -12,4 +12,7 @@ export class UserPresenter {
@AutoMap()
email: string;
@AutoMap()
phone: string;
}

View File

@ -19,6 +19,7 @@ message User {
string firstName = 2;
string lastName = 3;
string email = 4;
string phone = 5;
}
message UserFilter {

View File

@ -1,23 +1,24 @@
import { AutoMap } from '@automapper/classes';
import { IsNotEmpty, IsString } from 'class-validator';
import { IsString } from 'class-validator';
export class CreateUserRequest {
@IsString()
@AutoMap()
uuid: string;
uuid?: string;
@IsString()
@IsNotEmpty()
@AutoMap()
firstName: string;
firstName?: string;
@IsString()
@IsNotEmpty()
@AutoMap()
lastName: string;
lastName?: string;
@IsString()
@IsNotEmpty()
@AutoMap()
email: string;
email?: string;
@IsString()
@AutoMap()
phone?: string;
}

View File

@ -17,4 +17,8 @@ export class UpdateUserRequest {
@IsString()
@AutoMap()
email?: string;
@IsString()
@AutoMap()
phone?: string;
}

View File

@ -5,11 +5,14 @@ export class User {
uuid: string;
@AutoMap()
firstName: string;
firstName?: string;
@AutoMap()
lastName: string;
lastName?: string;
@AutoMap()
email: string;
email?: string;
@AutoMap()
phone?: string;
}

View File

@ -9,10 +9,10 @@ import { CreateUserUseCase } from '../../domain/usecases/create-user.usecase';
import { UserProfile } from '../../mappers/user.profile';
const newUserRequest: CreateUserRequest = {
uuid: 'bb281075-1b98-4456-89d6-c643d3044a91',
firstName: 'John',
lastName: 'Doe',
email: 'john.doe@email.com',
phone: '0601020304',
};
const newUserCommand: CreateUserCommand = new CreateUserCommand(newUserRequest);
@ -47,7 +47,7 @@ describe('CreateUserUseCase', () => {
});
describe('execute', () => {
it('should create an User and returns new entity object', async () => {
it('should create and return a new user', async () => {
const newUser: User = await createUserUseCase.execute(newUserCommand);
expect(newUser.lastName).toBe(newUserRequest.lastName);

View File

@ -9,18 +9,21 @@ const mockUsers = [
firstName: 'John',
lastName: 'Doe',
email: 'john.doe@email.com',
phone: '0601020304',
},
{
uuid: 'bb281075-1b98-4456-89d6-c643d3044a92',
firstName: 'Jane',
lastName: 'Doe',
email: 'jane.doe@email.com',
phone: '0602030405',
},
{
uuid: 'bb281075-1b98-4456-89d6-c643d3044a93',
firstName: 'Jimmy',
lastName: 'Doe',
email: 'jimmy.doe@email.com',
phone: '0603040506',
},
];
@ -57,7 +60,7 @@ describe('DeleteUserUseCase', () => {
});
describe('execute', () => {
it('should delete an User', async () => {
it('should delete a user', async () => {
const savedUuid = mockUsers[0].uuid;
const deleteUserCommand = new DeleteUserCommand(savedUuid);
await deleteUserUseCase.execute(deleteUserCommand);

View File

@ -9,18 +9,21 @@ const mockUsers = [
firstName: 'John',
lastName: 'Doe',
email: 'john.doe@email.com',
phone: '0601020304',
},
{
uuid: 'bb281075-1b98-4456-89d6-c643d3044a92',
firstName: 'Jane',
lastName: 'Doe',
email: 'jane.doe@email.com',
phone: '0602030405',
},
{
uuid: 'bb281075-1b98-4456-89d6-c643d3044a93',
firstName: 'Jimmy',
lastName: 'Doe',
email: 'jimmy.doe@email.com',
phone: '0603040506',
},
];

View File

@ -8,6 +8,7 @@ const mockUser = {
firstName: 'John',
lastName: 'Doe',
email: 'john.doe@email.com',
phone: '0601020304',
};
const mockUserRepository = {