Merge pull request #195 in TEA/mina-sidor-fa-web from feature/refactor-report-models to develop
Squashed commit of the following: commit c99074b30eb9792ba9a67d4257c45621381da068 Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se> Date: Tue Oct 12 16:29:11 2021 +0200 Removed unused model commit d122a7f61f52e8c6c5a48a7b7700b333c388e83e Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se> Date: Tue Oct 12 16:24:50 2021 +0200 Updated models commit 27de0084ba5f0dc5e3300ce7dbff0d27ab240941 Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se> Date: Tue Oct 12 16:24:33 2021 +0200 git st
This commit is contained in:
@@ -2,11 +2,11 @@ import { FormSelectItem } from '@af/digi-ng/_form/form-select';
|
||||
import { ChangeDetectionStrategy, Component, OnDestroy, OnInit } from '@angular/core';
|
||||
import { AbstractControl, FormArray, FormControl, FormGroup } from '@angular/forms';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { AvvikelseReportRequest, AvvikelseRequest } from '@msfa-models/api/avvikelse-request.model';
|
||||
import { Avrop } from '@msfa-models/avrop.model';
|
||||
import { AvvikelseAlternativ_OLD, AvvikelseRequestData_OLD } from '@msfa-models/avvikelse.model';
|
||||
import { AvvikelseQuestion } from '@msfa-models/avvikelse-question.model';
|
||||
import { AvvikelseReason } from '@msfa-models/avvikelse-reason.model';
|
||||
import { CustomError } from '@msfa-models/error/custom-error';
|
||||
import { FragorForAvvikelser } from '@msfa-models/fragor-for-avvikelser.model';
|
||||
import { OrsaksKoderAvvikelse } from '@msfa-models/orsaks-koder-avvikelse.model';
|
||||
import { markControlsAsDirty } from '@msfa-utils/mark-controls-as-dirty.util';
|
||||
import { RegexValidator } from '@msfa-utils/validators/regex.validator';
|
||||
import { RequiredValidator } from '@msfa-validators/required.validator';
|
||||
@@ -49,16 +49,16 @@ export class AvvikelseReportFormComponent implements OnInit, OnDestroy {
|
||||
shareReplay(1)
|
||||
);
|
||||
|
||||
reasons$: Observable<OrsaksKoderAvvikelse[]> = this.avvikelseReportFormService.getAvvikelseOrsaker$;
|
||||
reasons$: Observable<AvvikelseReason[]> = this.avvikelseReportFormService.fetchAvvikelseReasons$;
|
||||
reasonsAsNgDigiFormSelectItems$: Observable<FormSelectItem[]> = this.reasons$.pipe(
|
||||
map(reasons => reasons.map(reason => ({ name: reason.name, value: reason.id })))
|
||||
map(reasons => reasons.map(reason => ({ name: reason.name, value: reason.id.toString() })))
|
||||
);
|
||||
|
||||
allAvvikelseQuestions$ = this.avvikelseReportFormService.fragorForAvvikelser$;
|
||||
allAvvikelseQuestions$ = this.avvikelseReportFormService.avvikelseQuestions$;
|
||||
chosenReasonId$: Observable<string>;
|
||||
chosenReason$: Observable<OrsaksKoderAvvikelse>;
|
||||
questionsForChosenReason$: Observable<FragorForAvvikelser[]>;
|
||||
avvikelseSubmitData$: Observable<AvvikelseRequestData_OLD>;
|
||||
chosenReason$: Observable<AvvikelseReason>;
|
||||
questionsForChosenReason$: Observable<AvvikelseQuestion[]>;
|
||||
avvikelseSubmitData$: Observable<AvvikelseReportRequest>;
|
||||
confirmDialogIsOpen$ = new BehaviorSubject<boolean>(false);
|
||||
submittedDate$ = new BehaviorSubject<Date | null>(null);
|
||||
private subscriptions: Subscription[] = [];
|
||||
@@ -70,7 +70,7 @@ export class AvvikelseReportFormComponent implements OnInit, OnDestroy {
|
||||
});
|
||||
private formData$: Observable<AvvikelseFormData> = this.avvikelseFormGroup
|
||||
.valueChanges as Observable<AvvikelseFormData>;
|
||||
private currentQuestions: FragorForAvvikelser[];
|
||||
private currentQuestions: AvvikelseQuestion[];
|
||||
|
||||
constructor(private avvikelseReportFormService: AvvikelseReportFormService, private activatedRoute: ActivatedRoute) {}
|
||||
|
||||
@@ -90,14 +90,14 @@ export class AvvikelseReportFormComponent implements OnInit, OnDestroy {
|
||||
return new Date();
|
||||
}
|
||||
|
||||
getCurrentQuestionFromId(id: string): FragorForAvvikelser {
|
||||
getCurrentQuestionFromId(id: string): AvvikelseQuestion {
|
||||
return this.currentQuestions.find(currentQuestions => currentQuestions.id === id);
|
||||
}
|
||||
|
||||
ngOnInit(): void {
|
||||
this.chosenReasonId$ = this.reasonFormControl.valueChanges as Observable<string>;
|
||||
this.chosenReason$ = combineLatest([this.chosenReasonId$, this.reasons$]).pipe(
|
||||
map(([chosenReasonId, reasons]) => reasons.find(reason => reason.id === chosenReasonId))
|
||||
map(([chosenReasonId, reasons]) => reasons.find(reason => reason.id.toString() === chosenReasonId))
|
||||
);
|
||||
|
||||
this.questionsForChosenReason$ = combineLatest([this.chosenReasonId$, this.allAvvikelseQuestions$]).pipe(
|
||||
@@ -124,7 +124,7 @@ export class AvvikelseReportFormComponent implements OnInit, OnDestroy {
|
||||
);
|
||||
}
|
||||
|
||||
questionIsRequired(question: FragorForAvvikelser): boolean {
|
||||
questionIsRequired(question: AvvikelseQuestion): boolean {
|
||||
return !(question.id === '19_2' || question.id === '20_2');
|
||||
}
|
||||
|
||||
@@ -175,15 +175,15 @@ export class AvvikelseReportFormComponent implements OnInit, OnDestroy {
|
||||
genomforandeReferens: number,
|
||||
chosenReason: string,
|
||||
formData: AvvikelseFormData
|
||||
): AvvikelseRequestData_OLD {
|
||||
const avvikelseAlternativ: AvvikelseAlternativ_OLD = {
|
||||
avvikelseorsakskod: chosenReason,
|
||||
): AvvikelseReportRequest {
|
||||
const avvikelseAlternativ: AvvikelseRequest = {
|
||||
avvikelseOrsakskod: chosenReason,
|
||||
frageformular: formData.questions.map((question, index) => ({
|
||||
fraga: this.currentQuestions[index].id,
|
||||
svar: question,
|
||||
})),
|
||||
rapporteringsdatum: formData.reportingDate,
|
||||
} as AvvikelseAlternativ_OLD;
|
||||
};
|
||||
|
||||
return { genomforandeReferens, avvikelseAlternativ };
|
||||
}
|
||||
@@ -193,7 +193,7 @@ export class AvvikelseReportFormComponent implements OnInit, OnDestroy {
|
||||
this.currentQuestions = [];
|
||||
}
|
||||
|
||||
private addQuestionToForm(question: FragorForAvvikelser): void {
|
||||
private addQuestionToForm(question: AvvikelseQuestion): void {
|
||||
// FormArray doesnt hold any IDs so we need to store these seperately and rebuild structure at submit
|
||||
this.currentQuestions.push(question);
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Avvikelse_OLD } from '@msfa-models/avvikelse.model';
|
||||
import { FragorForAvvikelser } from '@msfa-models/fragor-for-avvikelser.model';
|
||||
import { OrsaksKoderAvvikelse } from '@msfa-models/orsaks-koder-avvikelse.model';
|
||||
import { AvvikelseReportRequest } from '@msfa-models/api/avvikelse-request.model';
|
||||
import { AvvikelseQuestion } from '@msfa-models/avvikelse-question.model';
|
||||
import { AvvikelseReason } from '@msfa-models/avvikelse-reason.model';
|
||||
import { AvvikelseApiService } from '@msfa-services/api/avvikelse-api.service';
|
||||
import { DeltagareApiService } from '@msfa-services/api/deltagare.api.service';
|
||||
import { Observable } from 'rxjs';
|
||||
@@ -9,15 +9,15 @@ import { shareReplay } from 'rxjs/operators';
|
||||
|
||||
@Injectable()
|
||||
export class AvvikelseReportFormService {
|
||||
fragorForAvvikelser$: Observable<FragorForAvvikelser[]> = this.avvikelseApiService
|
||||
.getFragorForAvvikelser$()
|
||||
avvikelseQuestions$: Observable<AvvikelseQuestion[]> = this.avvikelseApiService
|
||||
.fetchAvvikelseQuestions$()
|
||||
.pipe(shareReplay(1));
|
||||
|
||||
getAvvikelseOrsaker$: Observable<OrsaksKoderAvvikelse[]> = this.avvikelseApiService.getOrsaksKoderAvvikelse$();
|
||||
fetchAvvikelseReasons$: Observable<AvvikelseReason[]> = this.avvikelseApiService.fetchAvvikelseReasons$();
|
||||
|
||||
constructor(private avvikelseApiService: AvvikelseApiService, private deltagareApiService: DeltagareApiService) {}
|
||||
|
||||
createAvvikelse$(avvikelse: Avvikelse_OLD): Observable<unknown> {
|
||||
createAvvikelse$(avvikelse: AvvikelseReportRequest): Observable<unknown> {
|
||||
return this.avvikelseApiService.createAvvikelse$(avvikelse);
|
||||
}
|
||||
|
||||
|
||||
@@ -4,11 +4,11 @@ import { FormControl, FormGroup } from '@angular/forms';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { ANNAN_KAND_ORSAK_ID, ANNAN_ORSAK_ID } from '@msfa-constants/franvaro-reasons';
|
||||
import { ErrorType } from '@msfa-enums/error-type.enum';
|
||||
import { FranvaroReportRequest } from '@msfa-models/api/franvaro-request.model';
|
||||
import { Avrop } from '@msfa-models/avrop.model';
|
||||
import { FranvaroRequestData_OLD } from '@msfa-models/avvikelse.model';
|
||||
import { CustomError } from '@msfa-models/error/custom-error';
|
||||
import { FranvaroReason } from '@msfa-models/franvaro-reason.model';
|
||||
import { Franvaro } from '@msfa-models/franvaro.model';
|
||||
import { OrsaksKoderFranvaro } from '@msfa-models/orsaks-koder-franvaro.model';
|
||||
import { dateToIsoString } from '@msfa-utils/format-to-date.util';
|
||||
import { BehaviorSubject, Observable } from 'rxjs';
|
||||
import { map, shareReplay, switchMap } from 'rxjs/operators';
|
||||
@@ -50,8 +50,8 @@ export class FranvaroReportFormComponent {
|
||||
switchMap(genomforandeReferens => this.franvaroReportFormService.fetchAvropInformation$(+genomforandeReferens)),
|
||||
shareReplay(1)
|
||||
);
|
||||
reasons$: Observable<OrsaksKoderFranvaro[]> = this.franvaroReportFormService.reasons$;
|
||||
otherKnownReasons$: Observable<OrsaksKoderFranvaro[]> = this.franvaroReportFormService.otherKnownReasons$;
|
||||
reasons$: Observable<FranvaroReason[]> = this.franvaroReportFormService.reasons$;
|
||||
otherKnownReasons$: Observable<FranvaroReason[]> = this.franvaroReportFormService.otherKnownReasons$;
|
||||
|
||||
wholeDayOrPartOfDayRadiobuttons: RadiobuttonModel[] = [
|
||||
{ label: 'Heldag', value: true },
|
||||
@@ -118,7 +118,7 @@ export class FranvaroReportFormComponent {
|
||||
return new Date(this.dateFormControl.value);
|
||||
}
|
||||
|
||||
getReasonNameFromValue(reasons: OrsaksKoderFranvaro[], value: string): string {
|
||||
getReasonNameFromValue(reasons: FranvaroReason[], value: string): string {
|
||||
return reasons.find(reason => reason.value.toString() === value)?.name;
|
||||
}
|
||||
|
||||
@@ -164,8 +164,8 @@ export class FranvaroReportFormComponent {
|
||||
expectedPresenceEndTime,
|
||||
} = this.franvaroFormGroup.value as Franvaro;
|
||||
|
||||
const postRequest: FranvaroRequestData_OLD = {
|
||||
genomforandeReferens,
|
||||
const postRequest: FranvaroReportRequest = {
|
||||
genomforandeReferens: +genomforandeReferens,
|
||||
franvaro: {
|
||||
avvikelseOrsaksKod: reason,
|
||||
datum: dateToIsoString(date),
|
||||
|
||||
@@ -1,16 +1,14 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { FranvaroReportRequest } from '@msfa-models/api/franvaro-request.model';
|
||||
import { Avrop } from '@msfa-models/avrop.model';
|
||||
import { FranvaroRequestData_OLD } from '@msfa-models/avvikelse.model';
|
||||
import { OrsaksKoderFranvaro } from '@msfa-models/orsaks-koder-franvaro.model';
|
||||
import { FranvaroReason } from '@msfa-models/franvaro-reason.model';
|
||||
import { FranvaroReportApiService } from '@msfa-services/api/franvaro-report.api.service';
|
||||
import { Observable } from 'rxjs';
|
||||
|
||||
@Injectable()
|
||||
export class FranvaroReportFormService {
|
||||
public reasons$: Observable<OrsaksKoderFranvaro[]> = this.franvaroReportApiService.fetchReasons$();
|
||||
public otherKnownReasons$: Observable<
|
||||
OrsaksKoderFranvaro[]
|
||||
> = this.franvaroReportApiService.fetchOtherKnownReasons$();
|
||||
public reasons$: Observable<FranvaroReason[]> = this.franvaroReportApiService.fetchReasons$();
|
||||
public otherKnownReasons$: Observable<FranvaroReason[]> = this.franvaroReportApiService.fetchOtherKnownReasons$();
|
||||
|
||||
constructor(private franvaroReportApiService: FranvaroReportApiService) {}
|
||||
|
||||
@@ -18,7 +16,7 @@ export class FranvaroReportFormService {
|
||||
return this.franvaroReportApiService.fetchAvropInformation$(genomforandeReferens);
|
||||
}
|
||||
|
||||
public async postFranvaroReport(requestData: FranvaroRequestData_OLD): Promise<void> {
|
||||
public async postFranvaroReport(requestData: FranvaroReportRequest): Promise<void> {
|
||||
return this.franvaroReportApiService.postFranvaroReport$(requestData);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user