All files / src/interfaces/public-api mdm-public.controller.ts

0% Statements 0/23
0% Branches 0/12
0% Functions 0/7
0% Lines 0/18

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58                                                                                                                   
import {
  Controller,
  Get,
  Param,
  Query,
  BadRequestException,
} from '@nestjs/common';
import { GlobalReferenceService } from '../../domains/mdm/application/services/global-reference.service';
import { CurrencyService } from '../../domains/mdm/application/services/currency.service';
import { UnitOfMeasureService } from '../../domains/mdm/application/services/unit-of-measure.service';
import { ApiTags, ApiOperation, ApiResponse } from '@nestjs/swagger';
 
@Controller('public-api/mdm')
@ApiTags('MdmPublic')
export class MdmPublicController {
  constructor(
    private readonly globalRef: GlobalReferenceService,
    private readonly currencyService: CurrencyService,
    private readonly uomService: UnitOfMeasureService,
  ) {}
 
  @Get('countries')
  @ApiOperation({ summary: 'Get countries operation' })
  @ApiResponse({ status: 200, description: 'Operation successful' })
  async getCountries(@Query('search') search?: string) {
    const list = await this.globalRef.listCountries({ search, active: true });
    return list.map((c) => ({
      code: c.isoAlpha2,
      name: c.countryName,
      callingCode: c.callingCode,
    }));
  }
 
  @Get('currencies')
  @ApiOperation({ summary: 'Get currencies operation' })
  @ApiResponse({ status: 200, description: 'Operation successful' })
  async getCurrencies() {
    const list = await this.currencyService.listCurrencies({ active: true });
    return list.map((c) => ({
      code: c.currencyCode,
      name: c.currencyName,
      symbol: c.symbol,
    }));
  }
 
  @Get('units')
  @ApiOperation({ summary: 'Get units operation' })
  @ApiResponse({ status: 200, description: 'Operation successful' })
  async getUnits(@Query('category') category?: string) {
    const list = await this.uomService.listUnits(category);
    return list.map((u) => ({
      code: u.unitCode,
      name: u.unitName,
      symbol: u.unitSymbol,
    }));
  }
}