import { Controller, Get, Inject, NotFoundException, Param, } from '@nestjs/common'; import { Dependencies, packagesServiceDependency } from './dependencies'; import { CarrierType } from './types'; @Controller('packages') export class PackagesController { constructor( @Inject(packagesServiceDependency) private readonly packagesService: Dependencies[typeof packagesServiceDependency], ) {} @Get(':carrier/:trackingNumber') async getPackageInfoWithWeather( @Param('carrier') carrier: string, @Param('trackingNumber') trackingNumber: string, ) { const result = await this.packagesService.getPackageInfoWithWeather( carrier as CarrierType, trackingNumber, ); if (!result) { throw new NotFoundException(); } return result; } }