diff --git a/apps/dafa-web/src/app/shared/models/api/handledare.response.model.ts b/apps/dafa-web/src/app/shared/models/api/handledare.response.model.ts
new file mode 100644
index 0000000..6e65f05
--- /dev/null
+++ b/apps/dafa-web/src/app/shared/models/api/handledare.response.model.ts
@@ -0,0 +1,4 @@
+export interface HandledareResponse {
+ id: number;
+ name: string
+}
diff --git a/apps/dafa-web/src/app/shared/models/api/kommun.response.model.ts b/apps/dafa-web/src/app/shared/models/api/kommun.response.model.ts
index 96e41f3..ba4b38d 100644
--- a/apps/dafa-web/src/app/shared/models/api/kommun.response.model.ts
+++ b/apps/dafa-web/src/app/shared/models/api/kommun.response.model.ts
@@ -1,4 +1,4 @@
export interface KommunResponse {
- id: number;
- name: string;
+ kommunCode: number;
+ kommun: string;
}
diff --git a/apps/dafa-web/src/app/shared/models/avrop.model.ts b/apps/dafa-web/src/app/shared/models/avrop.model.ts
index 2322bbc..aa6bf6f 100644
--- a/apps/dafa-web/src/app/shared/models/avrop.model.ts
+++ b/apps/dafa-web/src/app/shared/models/avrop.model.ts
@@ -3,12 +3,12 @@ import { AvropResponse } from './api/avrop.response.model';
export interface AvropCompact {
id: string; // id
sokandeId: number; // sokandeId
- name: string; // deltagare
+ fullName: string; // deltagare
tjanst: string; // tjansteNamn
startDate: Date; // startdatumAvrop
endDate: Date; // slutdatumAvrop
- translator: string; // tolkbehov
- languageSupport: string; // sprakstod
+ tolkbehov: string; // tolkbehov
+ sprakstod: string; // sprakstod
utforandeAdress: string; // adress
trackCode: string; // sparkod
}
@@ -39,12 +39,12 @@ export function mapAvropResponseToAvrop(data: AvropResponse): Avrop {
return {
id,
sokandeId,
- name: deltagare,
+ fullName: deltagare,
tjanst: tjansteNamn,
startDate: new Date(startdatumAvrop),
endDate: new Date(slutdatumAvrop),
- translator: tolkbehov,
- languageSupport: sprakstod,
+ tolkbehov: tolkbehov,
+ sprakstod: sprakstod,
utforandeAdress: adress,
trackCode: sparkod,
genomforandeReferens,
diff --git a/apps/dafa-web/src/app/shared/models/handledare.model.ts b/apps/dafa-web/src/app/shared/models/handledare.model.ts
new file mode 100644
index 0000000..13cc270
--- /dev/null
+++ b/apps/dafa-web/src/app/shared/models/handledare.model.ts
@@ -0,0 +1,17 @@
+import { HandledareResponse } from './api/handledare.response.model';
+
+export interface Handledare {
+ id: number;
+ name: string;
+}
+
+export function mapHandledareResponseToHandledare(
+ data: HandledareResponse
+): Handledare {
+ const { id, name } = data;
+
+ return {
+ id,
+ name
+ }
+}
diff --git a/apps/dafa-web/src/app/shared/models/kommun.model.ts b/apps/dafa-web/src/app/shared/models/kommun.model.ts
index a0f30cf..e404102 100644
--- a/apps/dafa-web/src/app/shared/models/kommun.model.ts
+++ b/apps/dafa-web/src/app/shared/models/kommun.model.ts
@@ -6,10 +6,10 @@ export interface Kommun {
}
export function mapKommunResponseToKommun(data: KommunResponse): Kommun {
- const { id, name } = data;
+ const { kommunCode, kommun } = data;
return {
- id,
- name,
+ id: kommunCode,
+ name: kommun
};
}
diff --git a/apps/dafa-web/src/app/shared/models/multiselect-filter-option.ts b/apps/dafa-web/src/app/shared/models/multiselect-filter-option.ts
index 5ad148a..e315282 100644
--- a/apps/dafa-web/src/app/shared/models/multiselect-filter-option.ts
+++ b/apps/dafa-web/src/app/shared/models/multiselect-filter-option.ts
@@ -1,5 +1,5 @@
export interface MultiselectFilterOption {
- label: string;
- id: string;
- count: number;
+ label?: string;
+ id?: string;
+ count?: number;
}
diff --git a/apps/dafa-web/src/app/shared/services/api/avrop-api.service.ts b/apps/dafa-web/src/app/shared/services/api/avrop-api.service.ts
index 1d8b08d..e56b5c2 100644
--- a/apps/dafa-web/src/app/shared/services/api/avrop-api.service.ts
+++ b/apps/dafa-web/src/app/shared/services/api/avrop-api.service.ts
@@ -2,99 +2,50 @@ import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { environment } from '@dafa-environment';
import { AvropResponse } from '@dafa-models/api/avrop.response.model';
+import { KommunResponse } from '@dafa-models/api/kommun.response.model';
+import { TjanstResponse } from '@dafa-models/api/tjanst.response.model';
+import { UtforandeVerksamhetResponse } from '@dafa-models/api/utforande-verksamhet.response.model';
import { Avrop, mapAvropResponseToAvrop } from '@dafa-models/avrop.model';
+import { mapKommunResponseToKommun } from '@dafa-models/kommun.model';
import { MultiselectFilterOption } from '@dafa-models/multiselect-filter-option';
+import { mapTjanstResponseToTjanst } from '@dafa-models/tjanst.model';
+import { mapUtforandeVerksamhetResponseToUtforandeVerksamhet } from '@dafa-models/utforande-verksamhet.model';
import { Observable, of } from 'rxjs';
-import { delay, map } from 'rxjs/operators';
+import { delay, filter, map } from 'rxjs/operators';
import { HandledareAvrop } from '../../../pages/avrop/models/handledare-avrop';
+const API_HEADERS = { headers: environment.api.headers };
+
const tempHandledareMock: HandledareAvrop[] = [
{ id: '1', fullName: 'Göran Persson' },
{ id: '2', fullName: 'Stefan Löfven' },
];
-const tempDeltagareMock: Avrop[] = [
- {
- id: 'id',
- sokandeId: 1,
- name: 'Daniel',
- tjanst: 'Kundval rusta och matcha',
- startDate: new Date('2021-03-04'),
- endDate: new Date('2022-06-04'),
- translator: 'Ja',
- languageSupport: 'Ja',
- utforandeAdress: 'Xgatan 3, Ystad',
- trackCode: 'A',
- genomforandeReferens: 1,
- participationFrequency: 25,
- utforandeVerksamhet: 'utf',
- },
- {
- id: 'id',
- sokandeId: 1,
- name: 'Nisse',
- tjanst: 'STOM',
- startDate: new Date('2020-12-22'),
- endDate: new Date('2023-08-15'),
- translator: '-',
- languageSupport: '-',
- utforandeAdress: 'Zgatan 4, Qstad',
- trackCode: 'B',
- genomforandeReferens: 2,
- participationFrequency: 75,
- utforandeVerksamhet: 'utf',
- },
-];
-
-const tempKommunerMock: MultiselectFilterOption[] = [
- { id: '124', count: 12, label: 'Stockholm' },
- { id: '125', count: 42, label: 'Göteborg' },
-];
-
-const tempUtforandeVerksamheterMock: MultiselectFilterOption[] = [
- { id: 'a124', count: 312, label: 'Utf verk 1' },
- { id: 'b125', count: 142, label: 'Utf verk 2' },
-];
-const tempTjansterMock: MultiselectFilterOption[] = [
- { id: '013', count: 312, label: 'Karriärvägledning' },
- { id: '321', count: 142, label: 'Karriärval rusta och matcha' },
-];
-
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
= this.httpClient.get(`${this._apiBaseUrl}`, {
- ...API_HEADERS,
- });
+ constructor(private httpClient: HttpClient) { }
- constructor(private httpClient: HttpClient) {}
-
- public allAvrop$: Observable = this._fetchAllAvrop$.pipe(
- map(response => response.map(data => mapAvropResponseToAvrop(data)))
- );
-
- getNyaDeltagare$(
+ getNyaAvrop$(
tjanstIds: MultiselectFilterOption[],
kommunIds: MultiselectFilterOption[],
utforandeVerksamhetIds: MultiselectFilterOption[],
offset = 0,
limit = 20
): Observable {
- // TODO replace with API-call using tjanstIds, kommunIds, utforandeVerksamhetIds
- console.log(
- '[API call] getNyaDeltagare$. Inputs: tjanstIds, kommunIds, utforandeVerksamhetIds',
- tjanstIds,
- kommunIds,
- utforandeVerksamhetIds
- );
- return of(tempDeltagareMock).pipe(delay(tempMockDelay));
+ return this.httpClient
+ .get<{ data: AvropResponse[] }>(`${this._apiBaseUrl}`, { ...API_HEADERS })
+ .pipe(
+ filter(response => !!response),
+ map(response => {
+ return response.data.map(avrop => mapAvropResponseToAvrop(avrop))
+ })
+ );
}
getSelectableHandledare$(deltagare: Avrop[]): Observable {
@@ -107,39 +58,46 @@ export class AvropApiService {
selectedKommuner: MultiselectFilterOption[],
selectedUtforandeVerksamheter: MultiselectFilterOption[]
): Observable {
- // TODO replace with API-call
- console.log(
- '[API call] getSelectableTjanster$. Inputs: selectedKommuner, selectedUtforandeVerksamheter',
- selectedKommuner,
- selectedUtforandeVerksamheter
- );
- return of(tempTjansterMock).pipe(delay(tempMockDelay));
+ return this.httpClient.get<{ data: TjanstResponse[] }>(`${this._apiBaseUrl}/tjanster`)
+ .pipe(
+ filter(response => !!response),
+ map(response => {
+ return response.data.map(tjanster => {
+ return { label: mapTjanstResponseToTjanst(tjanster).name }
+ })
+ })
+ );
}
getSelectableUtforandeVerksamheter$(
selectedTjanster: MultiselectFilterOption[],
selectedKommuner: MultiselectFilterOption[]
): Observable {
- // TODO replace with API-call
- console.log(
- '[API call] getSelectableUtforandeVerksamheter$. Inputs: selectedTjanster, selectedKommuner',
- selectedTjanster,
- selectedKommuner
- );
- return of(tempUtforandeVerksamheterMock).pipe(delay(tempMockDelay));
+ return this.httpClient.get<{ data: UtforandeVerksamhetResponse[] }>(`${this._apiBaseUrl}/utforandeverksamheter`, { ...API_HEADERS })
+ .pipe(
+ filter(response => !!response),
+ map(response => {
+ return response.data.map(utforandeverksamheter => {
+ return { label: mapUtforandeVerksamhetResponseToUtforandeVerksamhet(utforandeverksamheter).name }
+ })
+ }
+ )
+ );
}
getSelectableKommuner$(
selectedTjanster: MultiselectFilterOption[],
selectedUtforandeVerksamheter: MultiselectFilterOption[]
): Observable {
- // TODO replace with API-call
- console.log(
- '[API call] getSelectableKommuner$. Inputs: selectedTjanster, selectedUtforandeVerksamheter',
- selectedTjanster,
- selectedUtforandeVerksamheter
- );
- return of(tempKommunerMock).pipe(delay(tempMockDelay));
+ return this.httpClient.get<{ data: KommunResponse[] }>(`${this._apiBaseUrl}/kommuner`, { ...API_HEADERS })
+ .pipe(
+ filter(response => !!response),
+ map(response => {
+ return response.data.map(kommun => {
+ return { label: mapKommunResponseToKommun(kommun).name }
+ })
+ })
+ );
}
async tilldelaHandledare(deltagare: Avrop[], handledare: HandledareAvrop): Promise {