From 552a7ba188d08dd0c36adac7d1dd73b9837797f9 Mon Sep 17 00:00:00 2001 From: Daniel Appelgren Date: Fri, 19 Nov 2021 10:50:12 +0100 Subject: [PATCH] fix models --- .../signal-form/signal-form.component.html | 4 ++-- .../signal-form/signal-form.component.ts | 21 ++++++++++++------- .../signal-form/signal-form.validator.ts | 4 ++-- .../models/api/signal.response.model.ts | 21 ++++++++++++++----- .../src/app/shared/models/signal.model.ts | 12 +++-------- 5 files changed, 37 insertions(+), 25 deletions(-) diff --git a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/report-forms/signal-form/signal-form.component.html b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/report-forms/signal-form/signal-form.component.html index 6d1b9dc..a0793d3 100644 --- a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/report-forms/signal-form/signal-form.component.html +++ b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/report-forms/signal-form/signal-form.component.html @@ -102,9 +102,9 @@
Typ av sysselsättning
-
{{typeFormControl.value}}
+
{{convertTypeValueToLabel(typeFormControl.value)}}
Omfattning
-
{{omfattningFormControl.value}}
+
{{convertOmfattningValueToLabel(omfattningFormControl.value)}}
Antal procent vid deltid
{{percentFormControl.value}}%
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 41a6568..4c9f7aa 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 @@ -12,7 +12,7 @@ import { BehaviorSubject, Observable } from 'rxjs'; import { map, shareReplay, switchMap, take } from 'rxjs/operators'; import { SignalFormService } from './signal-form.service'; import { SignalFormValidator } from './signal-form.validator'; -import { SignalFormData, SignalFormKeys, SignalOmfattning } from './signal-form.model'; +import { SignalFormData, SignalFormKeys, SignalOmfattning, SignalType } from './signal-form.model'; @Component({ selector: 'msfa-signal-form', @@ -31,7 +31,7 @@ export class SignalFormComponent { signalFormGroup = new FormGroup( { type: new FormControl(null), - omfattning: new FormControl('heltid'), + omfattning: new FormControl(SignalOmfattning.Heltid), percent: new FormControl(50), startDate: new FormControl(new Date()), }, @@ -50,8 +50,8 @@ export class SignalFormComponent { ); typeSelectItems: FormSelectItem[] = [ - { name: 'Arbete', value: 'arbete' }, - { name: 'Utbildning', value: 'utbildning' }, + { name: 'Arbete', value: SignalType.Arbete }, + { name: 'Utbildning', value: SignalType.Utbildning }, ]; omfattningRadioButtons: Radiobutton[] = [ @@ -61,6 +61,13 @@ export class SignalFormComponent { constructor(private signalFormService: SignalFormService, private activatedRoute: ActivatedRoute) {} + convertTypeValueToLabel(type: SignalType): string { + return this.typeSelectItems?.find(selectItem => selectItem.value === type)?.name; + } + convertOmfattningValueToLabel(type: SignalType): string { + return this.omfattningRadioButtons?.find(radiobuttons => radiobuttons.value === type)?.label; + } + get formErrors(): { [key: string]: string } { return this.signalFormGroup.errors || {}; } @@ -79,7 +86,7 @@ export class SignalFormComponent { } get showPercentFormControl(): boolean { - return this.omfattningFormControl.value === 'deltid'; + return this.omfattningFormControl.value === SignalOmfattning.Deltid; } get startDateFormValueAsDate(): Date { @@ -110,9 +117,9 @@ export class SignalFormComponent { private typeToRequest(type: string): SignalRequestType { switch (type) { - case 'arbete': + case SignalType.Arbete: return SignalRequestType.Work; - case 'utbildning': + case SignalType.Utbildning: return SignalRequestType.Education; default: return; diff --git a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/report-forms/signal-form/signal-form.validator.ts b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/report-forms/signal-form/signal-form.validator.ts index 1c81b5d..c67a0ed 100644 --- a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/report-forms/signal-form/signal-form.validator.ts +++ b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/report-forms/signal-form/signal-form.validator.ts @@ -1,5 +1,5 @@ import { AbstractControl, ValidatorFn } from '@angular/forms'; -import { SignalFormData } from './signal-form.model'; +import { SignalFormData, SignalOmfattning } from './signal-form.model'; export class SignalFormValidator { static isSignalValid(): ValidatorFn { @@ -13,7 +13,7 @@ export class SignalFormValidator { type: 'Typ av sysselsättning måste väljas', }; } - if (type && omfattning === 'deltid') { + if (type && omfattning === SignalOmfattning.Deltid) { if (percent < 1) { errors = { ...errors, diff --git a/apps/mina-sidor-fa/src/app/shared/models/api/signal.response.model.ts b/apps/mina-sidor-fa/src/app/shared/models/api/signal.response.model.ts index c5fb10c..412bc68 100644 --- a/apps/mina-sidor-fa/src/app/shared/models/api/signal.response.model.ts +++ b/apps/mina-sidor-fa/src/app/shared/models/api/signal.response.model.ts @@ -1,6 +1,17 @@ -export interface SignalResponse { - typ: 'arbete' | 'utbildning'; - omfattning: 'heltid' | 'deltid'; - omfattning_procent: number; - startdatum: string; +export enum SignalResponseType { + Work = 'work', + Education = 'education', +} + +export enum SignalResponseOmfattning { + Heltid = 'heltid', + Deltid = 'deltid', +} + +export interface SignalResponse { + genomforandereferens: number; + type: SignalResponseType; + omfattning: SignalResponseOmfattning; + omfattningPercent: number; + startDate: string; } diff --git a/apps/mina-sidor-fa/src/app/shared/models/signal.model.ts b/apps/mina-sidor-fa/src/app/shared/models/signal.model.ts index acd6069..c4f9f9e 100644 --- a/apps/mina-sidor-fa/src/app/shared/models/signal.model.ts +++ b/apps/mina-sidor-fa/src/app/shared/models/signal.model.ts @@ -1,13 +1,7 @@ import { SignalResponse } from './api/signal.response.model'; -import { Signal } from '../../pages/deltagare/pages/deltagare-details/pages/report-forms/signal-form/signal-form.model'; + +export type Signal = SignalResponse; export function mapResponseToSignal(data: SignalResponse): Signal { - const { typ, startdatum, omfattning, omfattning_procent } = data; - - return { - type: typ, - omfattning, - percent: omfattning_procent, - startDate: new Date(startdatum), - }; + return data; }