basic requirements

This commit is contained in:
sbriat
2023-02-06 13:50:07 +01:00
parent bb5cd96bd9
commit a743fefe94
68 changed files with 18879 additions and 73 deletions

View File

@@ -0,0 +1,11 @@
import { IsNotEmpty, IsNumber } from 'class-validator';
export class FindForPointRequest {
@IsNumber()
@IsNotEmpty()
lon: number;
@IsNumber()
@IsNotEmpty()
lat: number;
}

View File

@@ -0,0 +1,9 @@
import { AutoMap } from '@automapper/classes';
export class Territory {
@AutoMap()
uuid: string;
@AutoMap()
name: string;
}

View File

@@ -0,0 +1,12 @@
import { Injectable } from '@nestjs/common';
@Injectable()
export abstract class IMessageBroker {
exchange: string;
constructor(exchange: string) {
this.exchange = exchange;
}
abstract publish(routingKey: string, message: string): void;
}

View File

@@ -0,0 +1,19 @@
import { QueryHandler } from '@nestjs/cqrs';
import { ICollection } from 'src/modules/database/src/interfaces/collection.interface';
import { TerritoriesRepository } from '../../adapters/secondaries/territories.repository';
import { FindForPointQuery } from '../../queries/find-for-point.query';
import { Territory } from '../entities/territory';
@QueryHandler(FindForPointQuery)
export class FindForPointUseCase {
constructor(private readonly _repository: TerritoriesRepository) {}
async execute(
findForPointQuery: FindForPointQuery,
): Promise<ICollection<Territory>> {
return this._repository.findAll(1, 999999, {
lon: findForPointQuery.lon,
lat: findForPointQuery.lat,
});
}
}