diff --git a/app/usecases/QueryEvent.ts b/app/usecases/QueryEvent.ts index c9db2bc8f160d5f2e9420ceb51e26436890abc75..932dce68537b2f1a91e65af8caea0be7c206b39d 100644 --- a/app/usecases/QueryEvent.ts +++ b/app/usecases/QueryEvent.ts @@ -15,7 +15,7 @@ const APP_FILES_BASE_URL = 'https://gemeinschaftswerk-nachhaltigkeit.de/app/api/ export class QueryEvent { constructor( - private readonly jasdEventGateway: FetchesJasdActivity, + private readonly jasdApi: FetchesJasdActivity, private readonly logger: Logs, ) {} @@ -23,10 +23,8 @@ export class QueryEvent { this.logger.debug(`Executing QueryEvent use case with input: ${JSON.stringify(input)}`) const startTime = Date.now() - //https://gemeinschaftswerk-nachhaltigkeit.de/app/api/v2/activities/1234 - //https://gemeinschaftswerk-nachhaltigkeit.de/app/api/v1/activities/1234 try { - const jasdActivity = await this.jasdEventGateway.fetchActivity( + const jasdActivity = await this.jasdApi.fetchActivity( input.id, ) @@ -41,6 +39,7 @@ export class QueryEvent { } } + //todo montagsgregor: move to gateway as its duplicated private toDomainEvent(activity: Activity): HoliEvent { return { id: activity.id.toString(), diff --git a/app/usecases/QueryEvents.test.ts b/app/usecases/QueryEvents.test.ts index cf26aee642a2c5a4819865d17919287a3c30a899..047e174df3e0bc47214d13e1b3334e6d0bd2664a 100644 --- a/app/usecases/QueryEvents.test.ts +++ b/app/usecases/QueryEvents.test.ts @@ -1,20 +1,12 @@ import { assertEquals } from '@std/assert' import { describe, it } from '@std/testing/bdd' -import { returnsNext, stub } from '@std/testing/mock' import { QueryEvents } from './QueryEvents.ts' import { AppApiEvent } from '../adapters/jasd/types/appapi.dto.types.ts' +import { LocalTimedEvent } from '../adapters/jasd/tests/fixtures.ts' export type ResponsePayload = Record<string, unknown> | Error -export const fakeFetch = (response: ResponsePayload) => { - return stub( - globalThis, - 'fetch', - returnsNext([Promise.resolve(new Response(JSON.stringify(response)))]), - ) -} - describe('QueryEvents', () => { const geoApiAMock = { resolveCityName() { @@ -43,124 +35,7 @@ describe('QueryEvents', () => { const jasdGatewayMock = { fetchEvents(): Promise<{ events: AppApiEvent[]; totalCount: number }> { return Promise.resolve({ - events: [{ - 'name': 'RealTimedEvent', - 'description': - '<p>Jeden Dienstag (bis auf eine Sommer- und Winterpause) zeigt der Verein Allerweltskino e.V. im Kölner Filmtheater Off Broadway einen Nachhaltigkeitsfilm. Das Programm ist im Internet abrufbar (siehe Kasten rechts).</p>', - 'resultType': 'ACTIVITY', - 'activity': { - 'id': 4610, - 'name': 'RealTimedEvent', - 'description': - '<p>Jeden Dienstag (bis auf eine Sommer- und Winterpause) zeigt der Verein Allerweltskino e.V. im Kölner Filmtheater Off Broadway einen Nachhaltigkeitsfilm. Das Programm ist im Internet abrufbar (siehe Kasten rechts).</p>', - 'sustainableDevelopmentGoals': [ - 4, - 17, - ], - 'impactArea': 'LOCAL', - 'contact': { - 'lastName': 'Flock', - 'firstName': 'Dardin', - 'position': '', - 'email': 'somedude@ontheinternets.de', - 'phone': '', - 'image': null, - }, - 'location': { - 'address': { - 'name': 'Off Broadway Filmtheater', - 'street': 'Bahnhofstr.', - 'streetNo': '41', - 'supplement': 'Hinterhof', - 'zipCode': '50674', - 'city': 'Köln', - 'state': 'Nordrhein-Westfalen', - 'country': null, - }, - 'online': false, - 'privateLocation': false, - 'url': 'https://www.allerweltskino.de', - 'coordinate': { - 'type': 'Point', - 'coordinates': [ - 50.9296771, - 6.93787246, - ], - }, - }, - 'thematicFocus': [ - 'SUSTAINABLE_BUILDING', - 'INTERNATIONAL_RESPONSIBILITY', - 'GENDER_EQUITY', - 'URBAN_DEVELOPMENT', - 'SUSTAINABLE_BUSINESS', - 'SUSTAINABLE_FINANCE', - 'CULTURAL_SOCIAL_CHANGE', - 'AGRICULTURE', - 'BIODIVERSITY', - 'SUSTAINABLE_LIFESTYLE', - 'MOBILITY', - 'HUMAN_RIGHTS', - 'TOURISM', - 'SOCIAL_JUSTICE', - 'PARTICIPATION', - 'PEACE', - 'SUSTAINABLE_GOVERNANCE', - 'CIRCULAR_ECONOMY', - 'CLIMATE_PROTECTION', - ], - 'activityType': 'EVENT', - 'externalId': null, - 'registerUrl': 'https://www.allerweltskino.de', - 'approvedUntil': null, - 'period': { - 'permanent': false, - 'start': '2025-03-26T00:00:00+01:00', - 'end': '2025-03-26T00:00:00+01:00', - }, - 'logo': '1f32e2bd-0557-408b-a4aa-90f264e8034e.png', - 'image': 'activities/act5.jpg', - 'socialMediaContacts': [ - { - 'type': 'INSTAGRAM', - 'contact': 'https://www.instagram.com/allerweltskino', - }, - { - 'type': 'FACEBOOK', - 'contact': 'https://www.facebook.com/pages/Allerweltskino/', - }, - ], - 'bannerImageMode': 'cover', - 'organisation': { - 'id': 1809, - 'name': 'Allerweltskino e.V.', - 'logo': null, - 'image': 'a41d2e24-6aee-4462-88e4-96bfb2c5e56e.png', - }, - }, - 'location': { - 'address': { - 'name': 'Off Broadway Filmtheater', - 'street': 'Bahnhofstr.', - 'streetNo': '41', - 'supplement': 'Hinterhof', - 'zipCode': '50674', - 'city': 'Köln', - 'state': 'Nordrhein-Westfalen', - 'country': null, - }, - 'online': false, - 'privateLocation': false, - 'url': 'https://www.allerweltskino.de', - 'coordinate': { - 'type': 'Point', - 'coordinates': [ - 50.9296771, - 6.93787246, - ], - }, - }, - }], + events: [LocalTimedEvent as AppApiEvent], totalCount: 1, }) }, diff --git a/app/usecases/QueryEvents.ts b/app/usecases/QueryEvents.ts index c4bd220e2840a82a439b5566fd69c6ea5d48c082..78457ac4a0f1933844b477e472f7ed32154d96d5 100644 --- a/app/usecases/QueryEvents.ts +++ b/app/usecases/QueryEvents.ts @@ -20,7 +20,7 @@ const APP_FILES_BASE_URL = 'https://gemeinschaftswerk-nachhaltigkeit.de/app/api/ export class QueryEvents { constructor( - private readonly jasdEventGateway: FetchesJasdEvents, + private readonly jasdApi: FetchesJasdEvents, private readonly geoApi: ResolvesCity, private readonly logger: Logs, ) {} @@ -32,7 +32,7 @@ export class QueryEvents { try { const location = input.geolocationId ? await this.geoApi.resolveCityName(input.geolocationId) : undefined - const jasdEvents = await this.jasdEventGateway.fetchEvents( + const jasdEvents = await this.jasdApi.fetchEvents( input.limit, input.offset, input.localOnly,