Return currency with income in analysis top offers

This commit is contained in:
BryannYeap
2022-10-21 13:46:36 +08:00
parent 910cc15148
commit fc93596c39
4 changed files with 17 additions and 6 deletions

View File

@ -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;

View File

@ -8,7 +8,7 @@ function GenerateAnalysis() {
return (
<div>
{JSON.stringify(
analysisMutation.mutate({ profileId: 'cl9gvjn8b004di96vd1hhh9c4' }),
analysisMutation.mutate({ profileId: 'cl9h23fb1002ftxysli5iziu2' }),
)}
</div>
);

View File

@ -5,7 +5,7 @@ import { trpc } from '~/utils/trpc';
function GetAnalysis() {
const analysis = trpc.useQuery([
'offers.analysis.get',
{ profileId: 'cl98ywtbv0000tx1s4p18eol1' },
{ profileId: 'cl9h23fb1002ftxysli5iziu2' },
]);
return <div>{JSON.stringify(analysis.data)}</div>;

View File

@ -167,7 +167,7 @@ export type AnalysisHighestOffer = {
export type AnalysisOffer = {
company: OffersCompany;
id: string;
income: number;
income: Valuation;
jobType: JobType;
level: string;
location: string;