From 53cd7c62452dc081d537c6ff472ddc19112352c5 Mon Sep 17 00:00:00 2001 From: Patrick Gebhardt Date: Tue, 9 Jun 2020 23:18:51 +0200 Subject: [PATCH] Add basic interface and data service --- .../src/app/interfaces/preset.interface.ts | 7 +++++++ .../src/app/interfaces/region.interface.ts | 6 ++++++ .../src/app/interfaces/result.interface.ts | 7 +++++++ frontend/src/app/services/data.service.spec.ts | 12 ++++++++++++ frontend/src/app/services/data.service.ts | 18 ++++++++++++++++++ 5 files changed, 50 insertions(+) create mode 100644 frontend/src/app/interfaces/preset.interface.ts create mode 100644 frontend/src/app/interfaces/region.interface.ts create mode 100644 frontend/src/app/interfaces/result.interface.ts create mode 100644 frontend/src/app/services/data.service.spec.ts create mode 100644 frontend/src/app/services/data.service.ts diff --git a/frontend/src/app/interfaces/preset.interface.ts b/frontend/src/app/interfaces/preset.interface.ts new file mode 100644 index 0000000..2a81e2b --- /dev/null +++ b/frontend/src/app/interfaces/preset.interface.ts @@ -0,0 +1,7 @@ +/** Represents the structure of a search preset. */ +export interface Preset { + preset_id: number; + parameter: string; + tag_label: string; + value: number[]; +} diff --git a/frontend/src/app/interfaces/region.interface.ts b/frontend/src/app/interfaces/region.interface.ts new file mode 100644 index 0000000..784f805 --- /dev/null +++ b/frontend/src/app/interfaces/region.interface.ts @@ -0,0 +1,6 @@ +/** Represents the structure of a region. */ +export interface Region { + region_id: number; + name: string; + country: string; +} diff --git a/frontend/src/app/interfaces/result.interface.ts b/frontend/src/app/interfaces/result.interface.ts new file mode 100644 index 0000000..a06649d --- /dev/null +++ b/frontend/src/app/interfaces/result.interface.ts @@ -0,0 +1,7 @@ +/** Represents the structure of one search result. */ +export interface Result { + region_id: string; + region_name: string; + score: number; + scores: any[]; +} diff --git a/frontend/src/app/services/data.service.spec.ts b/frontend/src/app/services/data.service.spec.ts new file mode 100644 index 0000000..a5283fc --- /dev/null +++ b/frontend/src/app/services/data.service.spec.ts @@ -0,0 +1,12 @@ +import { TestBed } from '@angular/core/testing'; + +import { DataService } from './data.service'; + +describe('DataService', () => { + beforeEach(() => TestBed.configureTestingModule({})); + + it('should be created', () => { + const service: DataService = TestBed.get(DataService); + expect(service).toBeTruthy(); + }); +}); diff --git a/frontend/src/app/services/data.service.ts b/frontend/src/app/services/data.service.ts new file mode 100644 index 0000000..ffe7f71 --- /dev/null +++ b/frontend/src/app/services/data.service.ts @@ -0,0 +1,18 @@ +import {Injectable} from '@angular/core'; +import {HttpClient} from '@angular/common/http'; +import {Preset} from '../interfaces/preset.interface'; + +@Injectable({ + providedIn: 'root' +}) +export class DataService { + + private readonly API_URL = 'https://example.com/api/v1/'; + + constructor(private http: HttpClient) { + } + + public getPresets(): Promise { + return this.http.get(this.API_URL + 'presets').toPromise(); + } +}