Simplified Ivago API wrapper in frontend
parent
4b3ae8a9a4
commit
f27775910f
|
@ -4,7 +4,7 @@
|
||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
<link rel="icon" href="/favicon.ico" />
|
<link rel="icon" href="/favicon.ico" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>Vite App</title>
|
<title>Fej</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="app"></div>
|
<div id="app"></div>
|
||||||
|
|
|
@ -1,32 +1,18 @@
|
||||||
export class Street {
|
export interface Street {
|
||||||
name: string;
|
name: string
|
||||||
city: string;
|
city: string
|
||||||
|
|
||||||
constructor(name: string, city: string) {
|
|
||||||
this.name = name;
|
|
||||||
this.city = city;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export class Ivago {
|
export async function search(search_term: string): Promise<Street[]> {
|
||||||
base_url: string;
|
var base_url = import.meta.env.VITE_ENDPOINT as string
|
||||||
|
|
||||||
constructor(url: string) {
|
var r = await fetch(`${base_url}/ivago/search?` + new URLSearchParams({
|
||||||
this.base_url = url;
|
q: search_term,
|
||||||
|
}))
|
||||||
|
|
||||||
|
if (!r.ok) {
|
||||||
|
return Promise.reject()
|
||||||
}
|
}
|
||||||
|
|
||||||
async search(search_term: string): Promise<Street[]> {
|
return r.json()
|
||||||
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));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { defineComponent } from 'vue'
|
import { defineComponent } from 'vue'
|
||||||
import { Street, Ivago } from '../api/ivago'
|
import { Street, search } from '../api/ivago'
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: 'Ivago',
|
name: 'Ivago',
|
||||||
|
@ -32,8 +32,7 @@ export default defineComponent({
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
new Ivago(import.meta.env.VITE_ENDPOINT as string)
|
search(this.query)
|
||||||
.search(this.query)
|
|
||||||
.then((res: Street[]) => {
|
.then((res: Street[]) => {
|
||||||
this.items = res
|
this.items = res
|
||||||
this.msg = ""
|
this.msg = ""
|
||||||
|
|
Loading…
Reference in New Issue