WIP ad creation address mapping troubleshooting
This commit is contained in:
parent
5ed2c562d5
commit
8544b2f54e
|
@ -42,7 +42,7 @@ export class AdController {
|
||||||
@GrpcMethod('AdsService', 'Create')
|
@GrpcMethod('AdsService', 'Create')
|
||||||
async createAd(data: CreateAdRequest): Promise<AdPresenter> {
|
async createAd(data: CreateAdRequest): Promise<AdPresenter> {
|
||||||
try {
|
try {
|
||||||
console.log('controler');
|
console.log('controler--------------------------------');
|
||||||
console.log(data);
|
console.log(data);
|
||||||
console.log('-----------------------------------------');
|
console.log('-----------------------------------------');
|
||||||
const ad = await this._commandBus.execute(new CreateAdCommand(data));
|
const ad = await this._commandBus.execute(new CreateAdCommand(data));
|
||||||
|
|
|
@ -10,6 +10,7 @@ import {
|
||||||
ValidateIf,
|
ValidateIf,
|
||||||
ArrayMinSize,
|
ArrayMinSize,
|
||||||
IsNotEmptyObject,
|
IsNotEmptyObject,
|
||||||
|
IsUUID,
|
||||||
} from 'class-validator';
|
} from 'class-validator';
|
||||||
import { Frequency } from '../types/frequency.enum';
|
import { Frequency } from '../types/frequency.enum';
|
||||||
import { Transform, Type } from 'class-transformer';
|
import { Transform, Type } from 'class-transformer';
|
||||||
|
@ -21,7 +22,12 @@ import { HasProperPassengerSeats } from './utils/has-passenger-seats.validator';
|
||||||
import { HasProperDriverSeats } from './utils/has-driver-seats.validator';
|
import { HasProperDriverSeats } from './utils/has-driver-seats.validator';
|
||||||
|
|
||||||
export class CreateAdRequest {
|
export class CreateAdRequest {
|
||||||
@IsString()
|
@IsOptional()
|
||||||
|
@IsUUID(4)
|
||||||
|
@AutoMap()
|
||||||
|
uuid?: string;
|
||||||
|
|
||||||
|
@IsUUID(4)
|
||||||
@AutoMap()
|
@AutoMap()
|
||||||
userUuid: string;
|
userUuid: string;
|
||||||
|
|
||||||
|
@ -90,7 +96,6 @@ export class CreateAdRequest {
|
||||||
@AutoMap()
|
@AutoMap()
|
||||||
strict?: boolean;
|
strict?: boolean;
|
||||||
|
|
||||||
@Type(() => AddressDTO)
|
|
||||||
@ArrayMinSize(2)
|
@ArrayMinSize(2)
|
||||||
@ValidateNested({ each: true })
|
@ValidateNested({ each: true })
|
||||||
@AutoMap(() => [AddressDTO])
|
@AutoMap(() => [AddressDTO])
|
||||||
|
|
|
@ -5,9 +5,20 @@ import {
|
||||||
IsLongitude,
|
IsLongitude,
|
||||||
IsOptional,
|
IsOptional,
|
||||||
IsString,
|
IsString,
|
||||||
|
IsUUID,
|
||||||
} from 'class-validator';
|
} from 'class-validator';
|
||||||
|
|
||||||
export class AddressDTO {
|
export class AddressDTO {
|
||||||
|
@IsOptional()
|
||||||
|
@IsUUID(4)
|
||||||
|
@AutoMap()
|
||||||
|
uuid?: string;
|
||||||
|
|
||||||
|
@IsOptional()
|
||||||
|
@IsUUID(4)
|
||||||
|
@AutoMap()
|
||||||
|
adUuid?: string;
|
||||||
|
|
||||||
@IsInt()
|
@IsInt()
|
||||||
@AutoMap()
|
@AutoMap()
|
||||||
position: number;
|
position: number;
|
||||||
|
|
|
@ -125,9 +125,8 @@ export class Ad {
|
||||||
@AutoMap()
|
@AutoMap()
|
||||||
updatedAt?: Date;
|
updatedAt?: Date;
|
||||||
|
|
||||||
@Type(() => Address)
|
|
||||||
@ArrayMinSize(2)
|
@ArrayMinSize(2)
|
||||||
@ValidateNested({ each: true })
|
@ValidateNested({ each: true })
|
||||||
@AutoMap()
|
@AutoMap(() => [Address])
|
||||||
addresses: Address[];
|
addresses: Address[];
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +1,16 @@
|
||||||
import { AutoMap } from '@automapper/classes';
|
import { AutoMap } from '@automapper/classes';
|
||||||
|
import { IsInt, IsUUID } from 'class-validator';
|
||||||
|
|
||||||
export class Address {
|
export class Address {
|
||||||
|
@IsUUID(4)
|
||||||
@AutoMap()
|
@AutoMap()
|
||||||
uuid?: string;
|
uuid: string;
|
||||||
|
|
||||||
|
@IsUUID(4)
|
||||||
|
@AutoMap()
|
||||||
|
adUuid: string;
|
||||||
|
|
||||||
|
@IsInt()
|
||||||
@AutoMap()
|
@AutoMap()
|
||||||
position: number;
|
position: number;
|
||||||
|
|
||||||
|
|
|
@ -30,9 +30,6 @@ export class CreateAdUseCase {
|
||||||
CreateAdRequest,
|
CreateAdRequest,
|
||||||
Ad,
|
Ad,
|
||||||
);
|
);
|
||||||
console.log('usecase');
|
|
||||||
console.log(entity.addresses[0]);
|
|
||||||
console.log('-----------------------------------------');
|
|
||||||
typeof entity.monMargin === 'number'
|
typeof entity.monMargin === 'number'
|
||||||
? entity.monMargin
|
? entity.monMargin
|
||||||
: (entity.monMargin = this.defaultParams.MON_MARGIN);
|
: (entity.monMargin = this.defaultParams.MON_MARGIN);
|
||||||
|
@ -58,6 +55,9 @@ export class CreateAdUseCase {
|
||||||
? entity.strict
|
? entity.strict
|
||||||
: (entity.strict = this.defaultParams.STRICT);
|
: (entity.strict = this.defaultParams.STRICT);
|
||||||
try {
|
try {
|
||||||
|
console.log('before ***********************************');
|
||||||
|
console.log(entity);
|
||||||
|
console.log('******************************************');
|
||||||
this.ad = await this._repository.create(entity);
|
this.ad = await this._repository.create(entity);
|
||||||
// this._messager.publish('ad.create', JSON.stringify(ad));
|
// this._messager.publish('ad.create', JSON.stringify(ad));
|
||||||
// this._messager.publish('logging.ad.create.info', JSON.stringify(ad));
|
// this._messager.publish('logging.ad.create.info', JSON.stringify(ad));
|
||||||
|
|
|
@ -4,6 +4,8 @@ import { Injectable } from '@nestjs/common';
|
||||||
import { Ad } from '../domain/entities/ad';
|
import { Ad } from '../domain/entities/ad';
|
||||||
import { AdPresenter } from '../adapters/primaries/ad.presenter';
|
import { AdPresenter } from '../adapters/primaries/ad.presenter';
|
||||||
import { CreateAdRequest } from '../domain/dtos/create-ad.request';
|
import { CreateAdRequest } from '../domain/dtos/create-ad.request';
|
||||||
|
import { Address } from '../domain/entities/address';
|
||||||
|
import { AddressDTO } from '../domain/dtos/create.address.dto';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class AdProfile extends AutomapperProfile {
|
export class AdProfile extends AutomapperProfile {
|
||||||
|
@ -74,10 +76,6 @@ export class AdProfile extends AutomapperProfile {
|
||||||
(destination) => destination.sunTime,
|
(destination) => destination.sunTime,
|
||||||
mapFrom((source) => source.schedule.sun),
|
mapFrom((source) => source.schedule.sun),
|
||||||
),
|
),
|
||||||
forMember(
|
|
||||||
(destination) => destination.addresses,
|
|
||||||
mapFrom((source) => source.addresses),
|
|
||||||
),
|
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
import { Test, TestingModule } from '@nestjs/testing';
|
import { Test, TestingModule } from '@nestjs/testing';
|
||||||
import { CreateAdUseCase } from '../../domain/usecases/create-ad.usecase';
|
import { CreateAdUseCase } from '../../domain/usecases/create-ad.usecase';
|
||||||
import { CreateAdRequest } from '../../domain/dtos/create-ad.request';
|
import { CreateAdRequest } from '../../domain/dtos/create-ad.request';
|
||||||
import { Address } from '../../domain/entities/address';
|
|
||||||
import { Messager } from '../../adapters/secondaries/messager';
|
import { Messager } from '../../adapters/secondaries/messager';
|
||||||
import { AdsRepository } from '../../adapters/secondaries/ads.repository';
|
import { AdsRepository } from '../../adapters/secondaries/ads.repository';
|
||||||
import { CreateAdCommand } from '../../commands/create-ad.command';
|
import { CreateAdCommand } from '../../commands/create-ad.command';
|
||||||
|
@ -10,9 +9,9 @@ import { classes } from '@automapper/classes';
|
||||||
import { Frequency } from '../../domain/types/frequency.enum';
|
import { Frequency } from '../../domain/types/frequency.enum';
|
||||||
import { Ad } from '../../domain/entities/ad';
|
import { Ad } from '../../domain/entities/ad';
|
||||||
import { AdProfile } from '../../mappers/ad.profile';
|
import { AdProfile } from '../../mappers/ad.profile';
|
||||||
import { DefaultParams } from '../../domain/types/default-params.type';
|
import { AddressDTO } from '../../domain/dtos/create.address.dto';
|
||||||
|
|
||||||
const mockAddress1: Address = {
|
const mockAddress1: AddressDTO = {
|
||||||
position: 0,
|
position: 0,
|
||||||
lon: 48.68944505415954,
|
lon: 48.68944505415954,
|
||||||
lat: 6.176510296462267,
|
lat: 6.176510296462267,
|
||||||
|
@ -22,7 +21,7 @@ const mockAddress1: Address = {
|
||||||
postalCode: '54000',
|
postalCode: '54000',
|
||||||
country: 'France',
|
country: 'France',
|
||||||
};
|
};
|
||||||
const mockAddress2: Address = {
|
const mockAddress2: AddressDTO = {
|
||||||
position: 1,
|
position: 1,
|
||||||
lon: 48.8566,
|
lon: 48.8566,
|
||||||
lat: 2.3522,
|
lat: 2.3522,
|
||||||
|
|
Loading…
Reference in New Issue