diff --git a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/services/deltagare-activity.service.ts b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/services/deltagare-activity.service.ts new file mode 100644 index 0000000..17ef273 --- /dev/null +++ b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/services/deltagare-activity.service.ts @@ -0,0 +1,16 @@ +import { Injectable } from '@angular/core'; +import { Activity } from '@msfa-models/activity.model'; +import { ActivityApiService } from '@msfa-services/api/activity-api.service'; +import { Observable } from 'rxjs'; + +@Injectable({ + providedIn: 'root' +}) +export class DeltagareActivityService { + + constructor(private activityApiService: ActivityApiService) { } + + public getActivities$(): Observable { + return this.activityApiService.getActivities$(); + } +} diff --git a/apps/mina-sidor-fa/src/app/shared/models/activity.model.ts b/apps/mina-sidor-fa/src/app/shared/models/activity.model.ts new file mode 100644 index 0000000..4fac65f --- /dev/null +++ b/apps/mina-sidor-fa/src/app/shared/models/activity.model.ts @@ -0,0 +1,23 @@ +import { ActivityResponse } from './api/activity-response.model'; + +export interface Activity { + id: string; + name: string; + description?: string; +} + +export interface SubActivity { + subId: string; + subName: string; + subDescription: string; +} + +export function mapResponseToActivity(data: ActivityResponse): Activity { + const { aktivitets_id, aktivitets_namn } = data; + + return { + id: aktivitets_id, + name: aktivitets_namn + } + +} diff --git a/apps/mina-sidor-fa/src/app/shared/models/api/activity-response.model.ts b/apps/mina-sidor-fa/src/app/shared/models/api/activity-response.model.ts new file mode 100644 index 0000000..c4d7d29 --- /dev/null +++ b/apps/mina-sidor-fa/src/app/shared/models/api/activity-response.model.ts @@ -0,0 +1,5 @@ +export interface ActivityResponse { + aktivitets_id: string; + aktivitets_namn: string; + beskrivning?: string; +} diff --git a/apps/mina-sidor-fa/src/app/shared/services/api/activity-api.service.ts b/apps/mina-sidor-fa/src/app/shared/services/api/activity-api.service.ts new file mode 100644 index 0000000..10020c6 --- /dev/null +++ b/apps/mina-sidor-fa/src/app/shared/services/api/activity-api.service.ts @@ -0,0 +1,26 @@ +import { HttpClient } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import { environment } from '@msfa-environment'; +import { ActivityResponse } from '@msfa-models/api/activity-response.model'; +import { Activity, mapResponseToActivity } from '@msfa-models/activity.model'; +import { Observable } from 'rxjs'; +import { filter, map } from 'rxjs/operators'; + +@Injectable({ + providedIn: 'root' +}) + +export class ActivityApiService { + + private _apiBaseUrl = `${environment.api.url}`; + + public getActivities$(): Observable { // endpoint ska uppdateras + return this.httpClient.get<{ data: ActivityResponse[] }>(`${this._apiBaseUrl}/aktiviteter`).pipe( + filter(response => !!response?.data), + map(({ data }) => data.map(aktivitet => mapResponseToActivity(aktivitet))) + ) + } + + constructor(private httpClient: HttpClient) { } + +} diff --git a/mock-api/mina-sidor-fa/scripts/gemensam-planering/aktiviteter.js b/mock-api/mina-sidor-fa/scripts/gemensam-planering/aktiviteter.js new file mode 100644 index 0000000..22649ee --- /dev/null +++ b/mock-api/mina-sidor-fa/scripts/gemensam-planering/aktiviteter.js @@ -0,0 +1,72 @@ +function generateAktiviteter() { + const aktiviteter = [ + { + aktivitets_id: '24', + aktivitets_namn: 'Motiverande samtal', + beskrivning: 'test', + }, + { + aktivitets_id: '156', + aktivitets_namn: 'Hälsofrämjande åtgärder', + beskrivning: 'test', + }, + { + aktivitets_id: '157', + aktivitets_namn: 'Information', + beskrivning: 'test', + }, + { + aktivitets_id: '158', + aktivitets_namn: 'Insats hos annan aktör', + beskrivning: 'test', + }, + { + aktivitets_id: '159', + aktivitets_namn: 'Kontakter med arbetsgivare eller andra relevanta aktörer', + beskrivning: 'test', + }, + { + aktivitets_id: '160', + aktivitets_namn: 'Kortare utbildning', + beskrivning: 'test', + }, + { + aktivitets_id: '161', + aktivitets_namn: 'Vägledning mot arbete eller utbildning', + beskrivning: 'test', + }, + { + aktivitets_id: '162', + aktivitets_namn: 'Praktiskt stöd', + beskrivning: 'test', + }, + { + aktivitets_id: '163', + aktivitets_namn: 'Stöd för att stärka deltagarens digitala kompetens', + beskrivning: 'test', + }, + { + aktivitets_id: '164', + aktivitets_namn: 'Stöd för att stärka deltagarens språkkunskaper', + beskrivning: 'test', + }, + { + aktivitets_id: '165', + aktivitets_namn: 'Individuellt utvecklingsmöte', + beskrivning: 'test', + }, + { + aktivitets_id: '188', + aktivitets_namn: 'Eget arbete enligt individuell planering med anordnare', + beskrivning: 'test', + }, + ]; + + console.log('Aktiviteter generated...'); + + return aktiviteter; +} + +export default { + generate: generateAktiviteter, +};