feature(Slutredovisning): Se till att taxonomin inte anropas när det inte behövs (TV-902)
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 <daniel.appelgren@arbetsformedlingen.se> Date: Tue Nov 16 11:49:39 2021 +0100 Update slutredovisning-form.service.ts commit da8d7073685cdd864c0ea34ad415e49deba4451c Author: Daniel Appelgren <daniel.appelgren@arbetsformedlingen.se> Date: Tue Nov 16 09:21:35 2021 +0100 Update slutredovisning-form-step3.component.ts commit cf9d45d0a49e5a7fe6321da301ab37de76b20390 Author: Daniel Appelgren <daniel.appelgren@arbetsformedlingen.se> Date: Tue Nov 16 09:10:16 2021 +0100 change request to property
This commit is contained in:
@@ -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<void>();
|
||||
@Input() slutredovisningFormData: SlutredovisningFormData;
|
||||
@Input() avrop: DeltagareAvrop;
|
||||
@@ -24,28 +24,7 @@ export class SlutredovisningFormStep3Component {
|
||||
submitError$ = new BehaviorSubject<CustomError>(null);
|
||||
submittedDate$ = new BehaviorSubject<Date | null>(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<Slutredovisning>;
|
||||
|
||||
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 };
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ export class SlutredovisningFormService {
|
||||
|
||||
private _step2FormData$ = new BehaviorSubject<SlutredovisningStep2FormData | null>(null);
|
||||
|
||||
yrkesomraden$: Observable<Yrkesomrade[]> = this.slutredovisningApiService.fetchYrken$().pipe(
|
||||
yrkesomraden$: Observable<Yrkesomrade[]> = this.slutredovisningApiService.yrken$.pipe(
|
||||
map(({ data }) => data.map(yo => mapResponseToYrkesomrade(yo))),
|
||||
shareReplay(1)
|
||||
);
|
||||
|
||||
@@ -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 }>(
|
||||
|
||||
Reference in New Issue
Block a user