Start moving data server handling from pinia store to server
This commit is contained in:
12
software/src/data/api/eventApi.ts
Normal file
12
software/src/data/api/eventApi.ts
Normal file
@@ -0,0 +1,12 @@
|
||||
import axios from "axios"
|
||||
|
||||
const BASE_URL = "http://localhost:3000/events"
|
||||
|
||||
export async function fetchEvents(city: string = "", genre: string = "") {
|
||||
let url = BASE_URL + "?"
|
||||
url += (city.length > 0) ? "city=" + city : ""
|
||||
url += (genre.length > 0) ? "genre=" + genre : ""
|
||||
|
||||
console.log(url)
|
||||
return await axios.get(url)
|
||||
}
|
||||
11
software/src/data/models/acts/eventModel.ts
Normal file
11
software/src/data/models/acts/eventModel.ts
Normal file
@@ -0,0 +1,11 @@
|
||||
import { BandModel } from "./bandModel"
|
||||
import { ConcertModel } from "./concertModel"
|
||||
|
||||
export class EventModel {
|
||||
id: number
|
||||
name: string
|
||||
offered: boolean
|
||||
image: string
|
||||
band: BandModel
|
||||
concerts: Array<ConcertModel>
|
||||
}
|
||||
@@ -1,6 +1,9 @@
|
||||
import { BandModel } from "./bandModel"
|
||||
import { ConcertModel } from "./concertModel"
|
||||
|
||||
/**
|
||||
* @deprecated Use EventModel!
|
||||
*/
|
||||
export class TourModel {
|
||||
id: number
|
||||
name: string
|
||||
|
||||
19
software/src/data/stores/shoppingStore.ts
Normal file
19
software/src/data/stores/shoppingStore.ts
Normal file
@@ -0,0 +1,19 @@
|
||||
import { defineStore } from "pinia";
|
||||
import { ref } from "vue";
|
||||
import { EventModel } from "../models/acts/eventModel";
|
||||
import { fetchEvents } from "../api/eventApi";
|
||||
|
||||
export const useShoppingStore = defineStore("shoppingStore", {
|
||||
state: () => ({
|
||||
events: ref<Array<EventModel>>([])
|
||||
}),
|
||||
|
||||
actions: {
|
||||
getEvents(city: string = "", genre: string = "") {
|
||||
fetchEvents(city, genre)
|
||||
.then(result => {
|
||||
this.events = result.data
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
Reference in New Issue
Block a user