From 1ec66fff7fdad52dac07274179239771cf83998d Mon Sep 17 00:00:00 2001 From: Daniel Appelgren Date: Tue, 16 Nov 2021 15:20:43 +0100 Subject: [PATCH] =?UTF-8?q?feature(Slutredovisning):=20Se=20till=20att=20t?= =?UTF-8?q?axonomin=20inte=20anropas=20n=C3=A4r=20det=20inte=20beh=C3=B6vs?= =?UTF-8?q?=20(TV-902)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Merge in TEA/mina-sidor-fa-web from feature/TV-902-taxonomi-anrop to develop Squashed commit of the following: commit d30a20dcd86a681888d34148b057b98f9efa1cf7 Author: Daniel Appelgren Date: Tue Nov 16 11:49:39 2021 +0100 Update slutredovisning-form.service.ts commit da8d7073685cdd864c0ea34ad415e49deba4451c Author: Daniel Appelgren Date: Tue Nov 16 09:21:35 2021 +0100 Update slutredovisning-form-step3.component.ts commit cf9d45d0a49e5a7fe6321da301ab37de76b20390 Author: Daniel Appelgren Date: Tue Nov 16 09:10:16 2021 +0100 change request to property --- .../slutredovisning-form-step3.component.ts | 59 +++++++++++-------- .../slutredovisning-form.service.ts | 2 +- .../api/slutredovisning.api.service.ts | 4 +- 3 files changed, 35 insertions(+), 30 deletions(-) diff --git a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/report-forms/slutredovisning-form/slutredovisning-form-step3/slutredovisning-form-step3.component.ts b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/report-forms/slutredovisning-form/slutredovisning-form-step3/slutredovisning-form-step3.component.ts index 5a9bf30..ff8a02e 100644 --- a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/report-forms/slutredovisning-form/slutredovisning-form-step3/slutredovisning-form-step3.component.ts +++ b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/report-forms/slutredovisning-form/slutredovisning-form-step3/slutredovisning-form-step3.component.ts @@ -1,13 +1,13 @@ -import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core'; +import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; import { SlutredovisningResponseMainOccupationDetails } from '@msfa-models/api/slutredovisning.response.model'; import { DeltagareAvrop } from '@msfa-models/avrop.model'; import { CustomError } from '@msfa-models/error/custom-error'; import { MainOccupation, Slutredovisning } from '@msfa-models/slutredovisning.model'; -import { BehaviorSubject } from 'rxjs'; -import { map } from 'rxjs/operators'; +import { BehaviorSubject, Observable, of } from 'rxjs'; import { SlutredovisningFormData } from '../models/slutredovisning-form-data.model'; import { SlutredovisningFormService } from '../slutredovisning-form.service'; import { slutredovisningFormDataToSlutredovisningRequest } from '../utils/forms-to-slutredovisning-form-data'; +import { map } from 'rxjs/operators'; @Component({ selector: 'msfa-slutredovisning-form-step3', @@ -15,7 +15,7 @@ import { slutredovisningFormDataToSlutredovisningRequest } from '../utils/forms- styleUrls: ['./slutredovisning-form-step3.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, }) -export class SlutredovisningFormStep3Component { +export class SlutredovisningFormStep3Component implements OnInit { @Output() backClick = new EventEmitter(); @Input() slutredovisningFormData: SlutredovisningFormData; @Input() avrop: DeltagareAvrop; @@ -24,28 +24,7 @@ export class SlutredovisningFormStep3Component { submitError$ = new BehaviorSubject(null); submittedDate$ = new BehaviorSubject(null); - slutredovisning$ = this.slutredovisningFormService.yrkeToTextMap$.pipe( - map(yrkeToText => this._formDataToSlutredovisning(this.slutredovisningFormData, yrkeToText)) - ); - - private _formDataToSlutredovisning( - slutredovisningFormData: SlutredovisningFormData, - yrkeToText: { [key: string]: string } - ): Slutredovisning { - if (slutredovisningFormData.mainOccupation.type !== MainOccupation.Work) { - return slutredovisningFormData as Slutredovisning; - } - - const newMainOccupation: SlutredovisningResponseMainOccupationDetails = { - ...slutredovisningFormData.mainOccupation, - work: slutredovisningFormData.mainOccupation.work.map(yrke => ({ - ...yrke, - yrkesomradeName: yrkeToText[yrke.yrkesomrade], - yrkesgruppName: yrkeToText[yrke.yrkesgrupp], - })), - }; - return { ...slutredovisningFormData, mainOccupation: newMainOccupation }; - } + slutredovisning$: Observable; goBack(): void { this.backClick.emit(); @@ -69,4 +48,32 @@ export class SlutredovisningFormStep3Component { }, }); } + + ngOnInit(): void { + this.slutredovisning$ = + this.slutredovisningFormData.mainOccupation.type === MainOccupation.Work + ? this.slutredovisningFormService.yrkeToTextMap$.pipe( + map(yrkeToText => this._formDataWithWorkToSlutredovisning(this.slutredovisningFormData, yrkeToText)) + ) + : of(this.slutredovisningFormData as Slutredovisning); + } + + private _formDataWithWorkToSlutredovisning( + slutredovisningFormData: SlutredovisningFormData, + yrkeToText: { [key: string]: string } + ): Slutredovisning { + if (slutredovisningFormData.mainOccupation.type !== MainOccupation.Work) { + throw new Error('Only use this method if MainOccupation is Work'); + } + + const newMainOccupation: SlutredovisningResponseMainOccupationDetails = { + ...slutredovisningFormData.mainOccupation, + work: slutredovisningFormData.mainOccupation.work.map(yrke => ({ + ...yrke, + yrkesomradeName: yrkeToText[yrke.yrkesomrade], + yrkesgruppName: yrkeToText[yrke.yrkesgrupp], + })), + }; + return { ...slutredovisningFormData, mainOccupation: newMainOccupation }; + } } diff --git a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/report-forms/slutredovisning-form/slutredovisning-form.service.ts b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/report-forms/slutredovisning-form/slutredovisning-form.service.ts index d6d3a71..53c4796 100644 --- a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/report-forms/slutredovisning-form/slutredovisning-form.service.ts +++ b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/report-forms/slutredovisning-form/slutredovisning-form.service.ts @@ -25,7 +25,7 @@ export class SlutredovisningFormService { private _step2FormData$ = new BehaviorSubject(null); - yrkesomraden$: Observable = this.slutredovisningApiService.fetchYrken$().pipe( + yrkesomraden$: Observable = this.slutredovisningApiService.yrken$.pipe( map(({ data }) => data.map(yo => mapResponseToYrkesomrade(yo))), shareReplay(1) ); diff --git a/apps/mina-sidor-fa/src/app/shared/services/api/slutredovisning.api.service.ts b/apps/mina-sidor-fa/src/app/shared/services/api/slutredovisning.api.service.ts index 87bfd82..188b529 100644 --- a/apps/mina-sidor-fa/src/app/shared/services/api/slutredovisning.api.service.ts +++ b/apps/mina-sidor-fa/src/app/shared/services/api/slutredovisning.api.service.ts @@ -19,9 +19,7 @@ export class SlutredovisningApiService { constructor(private httpClient: HttpClient) {} - public fetchYrken$(): Observable<{ data: YrkesomradeResponse[] }> { - return of({ data: YRKEN }); - } + public yrken$: Observable<{ data: YrkesomradeResponse[] }> = of({ data: YRKEN }); public fetchSlutredovisning$(handlingId: string): Observable<{ data: SlutredovisningResponse }> { return this.httpClient.get<{ data: SlutredovisningResponse }>(