33 lines
668 B
TypeScript
33 lines
668 B
TypeScript
export class Street {
|
|
name: string;
|
|
city: string;
|
|
|
|
constructor(name: string, city: string) {
|
|
this.name = name;
|
|
this.city = city;
|
|
}
|
|
}
|
|
|
|
export class Ivago {
|
|
base_url: string;
|
|
|
|
constructor(url: string) {
|
|
this.base_url = url;
|
|
}
|
|
|
|
async search(search_term: string): Promise<Street[]> {
|
|
var r = await fetch(`${this.base_url}/ivago/search?` + new URLSearchParams({
|
|
q: search_term,
|
|
}));
|
|
|
|
if (!r.ok) {
|
|
return Promise.reject();
|
|
}
|
|
|
|
var json = await r.json();
|
|
|
|
return json.map((o: {name: string, city: string}) => new Street(o.name, o.city));
|
|
}
|
|
}
|
|
|