feat(avrop): Created mock-api and models for avrop. (TV-288)

Squashed commit of the following:

commit 36959e892dea1213659ba26ceba797b81e1c7769
Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se>
Date:   Fri Aug 6 14:28:04 2021 +0200

    Added relationships to the mock-api data

commit e2b86b43908952cd4c46af7f58885c6e34b7eb2e
Merge: ece070a 229fb83
Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se>
Date:   Fri Aug 6 10:08:37 2021 +0200

    Merge branch 'develop' into feature/TV-288-avrop-mock-and-models

commit ece070ac9f04a3aa1984611371586b32c9d5a222
Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se>
Date:   Fri Aug 6 09:25:59 2021 +0200

    Removed duplicates from avrop mock-data

commit 005acd29f452316f1337132cf4721e4b3a409097
Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se>
Date:   Thu Aug 5 14:53:03 2021 +0200

    Added more mock-data

commit 23ce076912c5b9e7dfa9615d28654d8d09622775
Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se>
Date:   Thu Aug 5 12:04:37 2021 +0200

    Added example api-call to avrop-api service

commit 01629a1e1089e38914825408991276b5e847a709
Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se>
Date:   Thu Aug 5 11:43:48 2021 +0200

    Added mappings

commit b489c2edb99e07929b84309f784eb097d43f31cd
Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se>
Date:   Thu Aug 5 11:22:49 2021 +0200

    Added avrop models and mock-data

commit fe3d61962115e8e5b8bac3bade1609c2ef6a9bac
Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se>
Date:   Wed Aug 4 15:16:33 2021 +0200

    WIP
This commit is contained in:
Erik Tiekstra
2021-08-09 07:24:00 +02:00
parent 229fb838e5
commit f7207ae1e0
17 changed files with 627 additions and 4138 deletions

View File

@@ -0,0 +1,30 @@
export interface AvropResponse {
id: string;
deltagare: string;
genomforandeReferens: number;
orgId: string;
leverantorId: number;
organisationsnummer: string;
utforandeVerksamhetId: number;
utforandeverksamhet: string;
kommunKod: string;
kommun: string;
utforandeAdressId: number;
adress: string;
ordernummer: string;
bokningsId: number;
personnummer: string;
sokandeId: number;
tjanstekod: string;
tjansteNamn: string;
deltagandeGrad: number;
startdatumAvrop: string;
slutdatumAvrop: string;
aktnummerDiariet: string;
tolkbehov: string;
sprakstod: string;
sparkod: string;
sparNamn: string;
supervisorId: number;
recievedTimestamp: string;
}

View File

@@ -0,0 +1,4 @@
export interface KommunResponse {
id: number;
name: string;
}

View File

@@ -0,0 +1,4 @@
export interface TjanstResponse {
code: string;
name: string;
}

View File

@@ -0,0 +1,4 @@
export interface UtforandeVerksamhetResponse {
id: number;
name: string;
}

View File

@@ -0,0 +1,54 @@
import { AvropResponse } from './api/avrop.response.model';
export interface AvropCompact {
id: string; // id
sokandeId: number; // sokandeId
name: string; // deltagare
tjanst: string; // tjansteNamn
startDate: Date; // startdatumAvrop
endDate: Date; // slutdatumAvrop
translator: string; // tolkbehov
languageSupport: string; // sprakstod
utforandeAdress: string; // adress
trackCode: string; // sparkod
}
export interface Avrop extends AvropCompact {
genomforandeReferens: number; // genomforandeReferens
participationFrequency: number; // deltagandeGrad
utforandeVerksamhet: string; // utforandeverksamhet
}
export function mapAvropResponseToAvrop(data: AvropResponse): Avrop {
const {
id,
sokandeId,
deltagare,
tjansteNamn,
startdatumAvrop,
slutdatumAvrop,
tolkbehov,
sprakstod,
adress,
sparkod,
genomforandeReferens,
deltagandeGrad,
utforandeverksamhet,
} = data;
return {
id,
sokandeId,
name: deltagare,
tjanst: tjansteNamn,
startDate: new Date(startdatumAvrop),
endDate: new Date(slutdatumAvrop),
translator: tolkbehov,
languageSupport: sprakstod,
utforandeAdress: adress,
trackCode: sparkod,
genomforandeReferens,
participationFrequency: deltagandeGrad,
utforandeVerksamhet: utforandeverksamhet,
};
}

View File

@@ -0,0 +1,15 @@
import { KommunResponse } from './api/kommun.response.model';
export interface Kommun {
id: number;
name: string;
}
export function mapKommunResponseToKommun(data: KommunResponse): Kommun {
const { id, name } = data;
return {
id,
name,
};
}

View File

@@ -0,0 +1,15 @@
import { TjanstResponse } from './api/tjanst.response.model';
export interface Tjanst {
code: string;
name: string;
}
export function mapTjanstResponseToTjanst(data: TjanstResponse): Tjanst {
const { code, name } = data;
return {
code,
name,
};
}

View File

@@ -0,0 +1,17 @@
import { UtforandeVerksamhetResponse } from './api/utforande-verksamhet.response.model';
export interface UtforandeVerksamhet {
id: number;
name: string;
}
export function mapUtforandeVerksamhetResponseToUtforandeVerksamhet(
data: UtforandeVerksamhetResponse
): UtforandeVerksamhet {
const { id, name } = data;
return {
id,
name,
};
}

View File

@@ -1,9 +1,13 @@
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Observable, of } from 'rxjs';
import { delay } from 'rxjs/operators';
import { environment } from '@dafa-environment';
import { AvropResponse } from '@dafa-models/api/avrop.response.model';
import { Avrop, mapAvropResponseToAvrop } from '@dafa-models/avrop.model';
import { MultiselectFilterOption } from '@dafa-models/multiselect-filter-option';
import { HandledareAvrop } from '../../../pages/avrop/models/handledare-avrop';
import { Observable, of } from 'rxjs';
import { delay, map } from 'rxjs/operators';
import { DeltagareAvrop } from '../../../pages/avrop/models/deltagare-avrop';
import { HandledareAvrop } from '../../../pages/avrop/models/handledare-avrop';
const tempHandledareMock: HandledareAvrop[] = [
{ id: '1', fullName: 'Göran Persson' },
@@ -28,10 +32,24 @@ const tempTjansterMock: MultiselectFilterOption[] = [
const tempMockDelay = 300;
const API_HEADERS = { headers: environment.api.headers };
@Injectable({
providedIn: 'root',
})
export class AvropApiService {
private _apiBaseUrl = `${environment.api.url}/avrop`;
private _fetchAllAvrop$: Observable<AvropResponse[]> = this.httpClient.get<AvropResponse[]>(`${this._apiBaseUrl}`, {
...API_HEADERS,
});
constructor(private httpClient: HttpClient) {}
public allAvrop$: Observable<Avrop[]> = this._fetchAllAvrop$.pipe(
map(response => response.map(data => mapAvropResponseToAvrop(data)))
);
getNyaDeltagare$(
tjanstIds: MultiselectFilterOption[],
kommunIds: MultiselectFilterOption[],