feat(gemensam-planering): Implemented gemensam-planering form. (TV-700)

Squashed commit of the following:

commit 2d07f37e30009c7f701af35aed65839535044bb3
Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se>
Date:   Wed Oct 6 09:33:21 2021 +0200

    Updated error handling

commit 12290b9436a06ecf0b2b8509016b14748ca17a18
Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se>
Date:   Wed Oct 6 09:10:48 2021 +0200

    Updated after PR

commit cc2fb38528069819acbc39c7b1f6d71ecae666a1
Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se>
Date:   Wed Oct 6 08:46:33 2021 +0200

    Updated proxy.conf

commit ee919de929d7b7316cd7050015fbad9c662b8718
Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se>
Date:   Wed Oct 6 08:44:00 2021 +0200

    Updated api-endpoint

commit 249ef70e14fa8db0c388ffb27f5173815a07c768
Merge: c8296cbf cc0a9aae
Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se>
Date:   Wed Oct 6 08:39:43 2021 +0200

    Merge branch 'develop' into feature/TV-700-erik

commit c8296cbff42d747df8c17cf3858f22956fd1e910
Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se>
Date:   Wed Oct 6 07:44:41 2021 +0200

    Fixed some linting and tests

commit ec0bf7cd3616859742e461ffd65a2289f5c50cd6
Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se>
Date:   Wed Oct 6 07:37:28 2021 +0200

    Changes after PR

commit aa6cee5248299056e043170b8803335529277062
Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se>
Date:   Tue Oct 5 14:56:45 2021 +0200

    Fixed some styling

commit 86de8306679fcff5ed8595f97f696cb43f38f4ac
Merge: 3b1822d8 5cee9695
Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se>
Date:   Tue Oct 5 14:46:52 2021 +0200

    Merged develop and resolved conflicts

commit 3b1822d8c8f197b789d1db5832b8e99351e8afa3
Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se>
Date:   Tue Oct 5 14:22:06 2021 +0200

    Updated GP

commit a63dfb716a3888f3e5830fe224de4cd16b1922c2
Merge: e2a8cb1c 07ec3c4a
Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se>
Date:   Tue Oct 5 07:29:23 2021 +0200

    Merge branch 'develop' into feature/TV-700

commit e2a8cb1cef2ada931f8a82ae0e9849aabb77ac4d
Author: Chingiz <chingiz.esenbaev@arbetsformedlingen.se>
Date:   Mon Oct 4 20:16:42 2021 +0200

    lamnas over till team 1
This commit is contained in:
Erik Tiekstra
2021-10-06 09:41:34 +02:00
parent cc0a9aae7f
commit 3d941fddfa
24 changed files with 522 additions and 250 deletions

View File

@@ -2,21 +2,48 @@ import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { environment } from '@msfa-environment';
import { Activity, ActivityResponse, mapResponseToActivity } from '@msfa-models/activity.model';
import { GemensamPlaneringPostRequest } from '@msfa-models/api/gemensam-planering.request.model';
import { Avrop } from '@msfa-models/avrop.model';
import { CustomError, errorToCustomError } from '@msfa-models/error/custom-error';
import { DeltagareApiService } from '@msfa-services/api/deltagare.api.service';
import { Observable } from 'rxjs';
import { filter, map } from 'rxjs/operators';
import { catchError, filter, map, shareReplay } from 'rxjs/operators';
@Injectable({
providedIn: 'root',
})
export class GemensamPlaneringApiService {
private _apiBaseUrl = `${environment.api.url}`;
private _apiBaseUrl = `${environment.api.url}/rapporter/gemensam-planering`;
constructor(private httpClient: HttpClient) {}
public getActivities$(): Observable<Activity[]> {
return this.httpClient.get<{ data: ActivityResponse[] }>(`${this._apiBaseUrl}/activities`).pipe(
public fetchActivities$(): Observable<Activity[]> {
return this.httpClient.get<{ data: ActivityResponse[] }>(`${this._apiBaseUrl}/aktiviteter`).pipe(
filter(response => !!response?.data),
map(({ data }) => data.map(aktivitet => mapResponseToActivity(aktivitet)))
map(({ data }) => data.map(activity => mapResponseToActivity(activity))),
catchError((error: Error & { status: number }) => {
throw new CustomError(
errorToCustomError({ ...error, message: `Kunde inte hämta aktiviteter.\n\n${error.message}` })
);
}),
shareReplay(1)
);
}
public fetchAvropInformation$(genomforandeReferens: number): Observable<Avrop> {
return this.deltagareApiService.fetchAvropInformation$(genomforandeReferens);
}
public async postGemensamPlanering(requestData: GemensamPlaneringPostRequest): Promise<void> {
return this.httpClient
.post<void>(`${this._apiBaseUrl}`, requestData)
.pipe(
catchError((error: Error & { status: number }) => {
throw new CustomError(
errorToCustomError({ ...error, message: `Kunde inte spara gemensam planering.\n\n${error.message}` })
);
})
)
.toPromise();
}
constructor(private httpClient: HttpClient, private deltagareApiService: DeltagareApiService) {}
}