From fc93596c3996ac2de2958601688789adf8a471ad Mon Sep 17 00:00:00 2001 From: BryannYeap Date: Fri, 21 Oct 2022 13:46:36 +0800 Subject: [PATCH] Return currency with income in analysis top offers --- apps/portal/src/mappers/offers-mappers.ts | 17 ++++++++++++++--- .../src/pages/offers/test/generateAnalysis.tsx | 2 +- .../src/pages/offers/test/getAnalysis.tsx | 2 +- apps/portal/src/types/offers.d.ts | 2 +- 4 files changed, 17 insertions(+), 6 deletions(-) diff --git a/apps/portal/src/mappers/offers-mappers.ts b/apps/portal/src/mappers/offers-mappers.ts index 3933ab61..1c1c9c33 100644 --- a/apps/portal/src/mappers/offers-mappers.ts +++ b/apps/portal/src/mappers/offers-mappers.ts @@ -14,6 +14,7 @@ import type { User, } from '@prisma/client'; import { JobType } from '@prisma/client'; +import { TRPCError } from '@trpc/server'; import type { AddToProfileResponse, @@ -49,7 +50,7 @@ const analysisOfferDtoMapper = ( const analysisOfferDto: AnalysisOffer = { company: offersCompanyDtoMapper(offer.company), id: offer.id, - income: -1, + income: { currency: '', value: -1 }, jobType: offer.jobType, level: offer.offersFullTime?.level ?? '', location: offer.location, @@ -69,9 +70,19 @@ const analysisOfferDtoMapper = ( }; if (offer.offersFullTime?.totalCompensation) { - analysisOfferDto.income = offer.offersFullTime.totalCompensation.value; + analysisOfferDto.income.value = + offer.offersFullTime.totalCompensation.value; + analysisOfferDto.income.currency = + offer.offersFullTime.totalCompensation.currency; } else if (offer.offersIntern?.monthlySalary) { - analysisOfferDto.income = offer.offersIntern.monthlySalary.value; + analysisOfferDto.income.value = offer.offersIntern.monthlySalary.value; + analysisOfferDto.income.currency = + offer.offersIntern.monthlySalary.currency; + } else { + throw new TRPCError({ + code: 'NOT_FOUND', + message: 'Total Compensation or Salary not found', + }); } return analysisOfferDto; diff --git a/apps/portal/src/pages/offers/test/generateAnalysis.tsx b/apps/portal/src/pages/offers/test/generateAnalysis.tsx index 8fe0d84f..dc1fc18c 100644 --- a/apps/portal/src/pages/offers/test/generateAnalysis.tsx +++ b/apps/portal/src/pages/offers/test/generateAnalysis.tsx @@ -8,7 +8,7 @@ function GenerateAnalysis() { return (
{JSON.stringify( - analysisMutation.mutate({ profileId: 'cl9gvjn8b004di96vd1hhh9c4' }), + analysisMutation.mutate({ profileId: 'cl9h23fb1002ftxysli5iziu2' }), )}
); diff --git a/apps/portal/src/pages/offers/test/getAnalysis.tsx b/apps/portal/src/pages/offers/test/getAnalysis.tsx index ed96f74d..4f29ddf7 100644 --- a/apps/portal/src/pages/offers/test/getAnalysis.tsx +++ b/apps/portal/src/pages/offers/test/getAnalysis.tsx @@ -5,7 +5,7 @@ import { trpc } from '~/utils/trpc'; function GetAnalysis() { const analysis = trpc.useQuery([ 'offers.analysis.get', - { profileId: 'cl98ywtbv0000tx1s4p18eol1' }, + { profileId: 'cl9h23fb1002ftxysli5iziu2' }, ]); return
{JSON.stringify(analysis.data)}
; diff --git a/apps/portal/src/types/offers.d.ts b/apps/portal/src/types/offers.d.ts index 67f6392f..2605a30f 100644 --- a/apps/portal/src/types/offers.d.ts +++ b/apps/portal/src/types/offers.d.ts @@ -167,7 +167,7 @@ export type AnalysisHighestOffer = { export type AnalysisOffer = { company: OffersCompany; id: string; - income: number; + income: Valuation; jobType: JobType; level: string; location: string;