diff --git a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/report-forms/signal-form/signal-form.component.ts b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/report-forms/signal-form/signal-form.component.ts index 8d06688..75e678e 100644 --- a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/report-forms/signal-form/signal-form.component.ts +++ b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/report-forms/signal-form/signal-form.component.ts @@ -2,7 +2,7 @@ import { FormSelectItem } from '@af/digi-ng/_form/form-select'; import { ChangeDetectionStrategy, Component } from '@angular/core'; import { FormControl, FormGroup } from '@angular/forms'; import { ActivatedRoute } from '@angular/router'; -import { SignalRequest } from '@msfa-models/api/signal.request.model'; +import { SignalRequest, SignalRequestOmfattning, SignalRequestType } from '@msfa-models/api/signal.request.model'; import { DeltagareAvrop } from '@msfa-models/avrop.model'; import { CustomError } from '@msfa-models/error/custom-error'; import { Signal } from '@msfa-models/signal.model'; @@ -103,14 +103,50 @@ export class SignalFormComponent { this.error$.next(null); } - submitAndCloseConfirmDialog(genomforandeReferens: number): void { + private typeToRequest(type: string): SignalRequestType { + switch (type) { + case 'arbete': + return SignalRequestType.Work; + case 'utbildning': + return SignalRequestType.Education; + default: + return; + } + } + private omfattningToRequest(omfattning: string): SignalRequestOmfattning { + switch (omfattning) { + case 'heltid': + return SignalRequestOmfattning.Heltid; + case 'deltid': + return SignalRequestOmfattning.Deltid; + default: + return; + } + } + + private _formDataToRequest(genomforandereferens: number, formData: SignalFormData): SignalRequest { + const { type, omfattning, startDate, percent } = formData; + + const requestType: SignalRequestType = this.typeToRequest(type); + const requestOmfattning: SignalRequestOmfattning = this.omfattningToRequest(omfattning); + + return { + genomforandereferens, + type: requestType, + omfattning: requestOmfattning, + omfattningPercent: requestOmfattning === SignalRequestOmfattning.Deltid ? percent : null, + startdatum: formatDate(startDate), + }; + } + + submitAndCloseConfirmDialog(genomforandereferens: number): void { this.submitLoading$.next(true); const { type, omfattning, startDate, percent } = this.signalFormGroup.value as Signal; const postRequest: SignalRequest = { - genomforandeReferens: +genomforandeReferens, - typ: type, + genomforandereferens, + type, omfattning, omfattning_procent: omfattning === 'deltid' ? percent : null, startdatum: formatDate(startDate), diff --git a/apps/mina-sidor-fa/src/app/shared/models/api/signal.request.model.ts b/apps/mina-sidor-fa/src/app/shared/models/api/signal.request.model.ts index f1b1787..759c548 100644 --- a/apps/mina-sidor-fa/src/app/shared/models/api/signal.request.model.ts +++ b/apps/mina-sidor-fa/src/app/shared/models/api/signal.request.model.ts @@ -1,7 +1,17 @@ -export interface SignalRequest { - genomforandeReferens: number; - typ: 'arbete' | 'utbildning'; - omfattning: 'heltid' | 'deltid'; - omfattning_procent: number; - startdatum: string; +export enum SignalRequestType { + Work = 'work', + Education = 'education', +} + +export enum SignalRequestOmfattning { + Heltid = 'heltid', + Deltid = 'deltid', +} + +export interface SignalRequest { + genomforandereferens: number; + type: SignalRequestType; + omfattning: SignalRequestOmfattning; + omfattningPercent: number; + startDate: string; }