Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import axios, { AxiosResponse } from 'axios';
- import Event from 'Domain/Event/Event';
- import EventRepository from 'Domain/Event/EventRepository';
- export default class RestEventRepository implements EventRepository {
- constructor(private readonly url: string) {}
- public findEvents(): Promise<Event[]> {
- return axios
- .get(this.url)
- .then((response: AxiosResponse<ResponseEvent[]>): Event[] => {
- return this.createEvents(response.data);
- });
- }
- private createEvents(responseEvents: ResponseEvent[]): Event[] {
- return responseEvents.map(responseEvent => {
- const event = new Event(responseEvent.id);
- event.title = responseEvent.title;
- event.pageUrl = responseEvent.pageUrl;
- return event;
- });
- }
- }
- interface ResponseEvent {
- id: number;
- title: string;
- pageUrl: string;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement