diff --git a/software/backend/routes/account.routes.ts b/software/backend/routes/account.routes.ts index bab0ab9..c79bf7b 100644 --- a/software/backend/routes/account.routes.ts +++ b/software/backend/routes/account.routes.ts @@ -78,8 +78,6 @@ account.post("/", (req: Request, res: Response) => { }) account.patch("/", (req: Request, res: Response) => { - console.log(req.body) - Account.update(req.body, { where: { id: req.body.id } diff --git a/software/backend/routes/genre.routes.ts b/software/backend/routes/genre.routes.ts index ef0296d..166cbaa 100644 --- a/software/backend/routes/genre.routes.ts +++ b/software/backend/routes/genre.routes.ts @@ -6,14 +6,7 @@ import { Request, Response, Router } from "express"; export const genre = Router() genre.get("/", (req: Request, res: Response) => { - Genre.findAll({ - include: [ - { - model: Band, - include: [ Rating ] - } - ] - }) + Genre.findAll() .then(genres => { res.status(200).json(genres) }) diff --git a/software/backend/routes/location.routes.ts b/software/backend/routes/location.routes.ts index 1f3b510..4f2148e 100644 --- a/software/backend/routes/location.routes.ts +++ b/software/backend/routes/location.routes.ts @@ -38,12 +38,12 @@ location.get("/", (req: Request, res: Response) => { .then(async locations => { for (let location of locations) { for (let concert of location.dataValues.concerts) { - let tour = concert.dataValues.tour + let event = concert.dataValues.event - await Band.findByPk(tour.dataValues.bandId) + await Band.findByPk(event.dataValues.bandId) .then(band => { - tour.dataValues.bandName = band.dataValues.name - delete tour.dataValues.bandId + event.dataValues.bandName = band.dataValues.name + delete event.dataValues.bandId }) } } diff --git a/software/src/components/cardView.vue b/software/src/components/cardView.vue index fa6fd85..9000a50 100644 --- a/software/src/components/cardView.vue +++ b/software/src/components/cardView.vue @@ -16,8 +16,8 @@ defineProps({ diff --git a/software/src/data/api/cityApi.ts b/software/src/data/api/cityApi.ts index 200f978..c3a0369 100644 --- a/software/src/data/api/cityApi.ts +++ b/software/src/data/api/cityApi.ts @@ -2,6 +2,13 @@ import axios from "axios" const BASE_URL = "http://localhost:3000/cities" +/** + * @deprecated Use fetchAllCities + */ export async function getAllCities() { return await axios.get(BASE_URL) +} + +export async function fetchAllCities() { + return await axios.get(BASE_URL) } \ No newline at end of file diff --git a/software/src/data/api/eventApi.ts b/software/src/data/api/eventApi.ts index 190041b..c9852e4 100644 --- a/software/src/data/api/eventApi.ts +++ b/software/src/data/api/eventApi.ts @@ -4,9 +4,8 @@ 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 += (city.length > 0) ? "city=" + city + "&" : "" url += (genre.length > 0) ? "genre=" + genre : "" - console.log(url) return await axios.get(url) } \ No newline at end of file diff --git a/software/src/data/api/genreApi.ts b/software/src/data/api/genreApi.ts index e17f3da..95258fb 100644 --- a/software/src/data/api/genreApi.ts +++ b/software/src/data/api/genreApi.ts @@ -2,6 +2,13 @@ import axios from "axios" let BASE_URL = "http://localhost:3000/genres" +/** + * @deprecated Use fetchAllGenres() + */ export async function getAllGenres() { return await axios.get(BASE_URL) +} + +export async function fetchAllGenres() { + return await axios.get(BASE_URL) } \ No newline at end of file diff --git a/software/src/data/api/tourApi.ts b/software/src/data/api/tourApi.ts index 9aab29d..47dcb6e 100644 --- a/software/src/data/api/tourApi.ts +++ b/software/src/data/api/tourApi.ts @@ -6,5 +6,5 @@ let BASE_URL = "http://localhost:3000/tours" * Fetch all tours from API */ export async function getAllTours() { - return await axios.get(BASE_URL) + //return await axios.get(BASE_URL) } diff --git a/software/src/data/models/acts/eventModel.ts b/software/src/data/models/acts/eventModel.ts index 03c8971..6917dac 100644 --- a/software/src/data/models/acts/eventModel.ts +++ b/software/src/data/models/acts/eventModel.ts @@ -6,6 +6,6 @@ export class EventModel { name: string offered: boolean image: string - band: BandModel - concerts: Array + band: BandModel = new BandModel() + concerts: Array = [ new ConcertModel() ] } \ No newline at end of file diff --git a/software/src/data/models/locations/cityModel.ts b/software/src/data/models/locations/cityModel.ts index 33ee12b..f548b21 100644 --- a/software/src/data/models/locations/cityModel.ts +++ b/software/src/data/models/locations/cityModel.ts @@ -2,15 +2,21 @@ * Replica of the API endpoint /cities */ export class CityModel { - id: number - name: string - country: string - image: string + id: number = -1 + name: string = "" + country: string = "" + image: string = "" locations: Array<{ id: number name: string address: string image: string nrOfConcerts: number - }> + }> = [{ + id: -1, + name: "", + address: "", + image: "", + nrOfConcerts: 0 + }] } \ No newline at end of file diff --git a/software/src/data/stores/concertStore.ts b/software/src/data/stores/concertStore.ts index e80b9cf..85bf9f3 100644 --- a/software/src/data/stores/concertStore.ts +++ b/software/src/data/stores/concertStore.ts @@ -29,15 +29,15 @@ export const useConcertStore = defineStore("concertStore", { async fetchAllTours() { await getAllTours() .then(result => { - this.tours = result.data + // this.tours = result.data - this.tours.sort((a, b) => { - return new Date(a.concerts[0].date) < new Date(b.concerts[0].date) ? -1 : 1 - }) + // this.tours.sort((a, b) => { + // return new Date(a.concerts[0].date) < new Date(b.concerts[0].date) ? -1 : 1 + // }) - this.filteredTours = this.tours + // this.filteredTours = this.tours - this.filterTours() + // this.filterTours() }) await getAllBands() @@ -47,7 +47,6 @@ export const useConcertStore = defineStore("concertStore", { await getAllLocations() .then(result => { - console.log(result.data) this.locations = result.data }) diff --git a/software/src/data/stores/shoppingStore.ts b/software/src/data/stores/shoppingStore.ts index db8f507..f99451e 100644 --- a/software/src/data/stores/shoppingStore.ts +++ b/software/src/data/stores/shoppingStore.ts @@ -2,18 +2,43 @@ import { defineStore } from "pinia"; import { ref } from "vue"; import { EventModel } from "../models/acts/eventModel"; import { fetchEvents } from "../api/eventApi"; +import { fetchAllCities } from "../api/cityApi"; +import { CityModel } from "../models/locations/cityModel"; +import { GenreModel } from "../models/acts/genreModel"; +import { fetchAllGenres } from "../api/genreApi"; export const useShoppingStore = defineStore("shoppingStore", { state: () => ({ - events: ref>([]) + events: ref>([ new EventModel() ]), + cities: ref>([ new CityModel() ]), + genres: ref>([ new GenreModel() ]), + cityFilterName: ref(), + genreFilterName: ref() }), actions: { - getEvents(city: string = "", genre: string = "") { - fetchEvents(city, genre) + async getEvents() { + await fetchEvents( + this.cityFilterName != null ? this.cityFilterName : "", + this.genreFilterName != null ? this.genreFilterName : "" + ) .then(result => { this.events = result.data }) + }, + + async getCities() { + await fetchAllCities() + .then(result => { + this.cities = result.data + }) + }, + + async getGenres() { + await fetchAllGenres() + .then(result => { + this.genres = result.data + }) } } }) \ No newline at end of file diff --git a/software/src/locales/de.json b/software/src/locales/de.json index b5e7493..a74fcb3 100644 --- a/software/src/locales/de.json +++ b/software/src/locales/de.json @@ -142,5 +142,6 @@ "soldOut": "Ausverkauft", "city": "Stadt", "seatPlan": "Saalplan", - "stage": "Bühne" + "stage": "Bühne", + "filtering": "Filtern" } diff --git a/software/src/locales/en.json b/software/src/locales/en.json index 071bef2..11707fb 100644 --- a/software/src/locales/en.json +++ b/software/src/locales/en.json @@ -142,5 +142,6 @@ "soldOut": "Sold Out", "city": "City", "seatPlan": "Seat Plan", - "stage": "Stage" + "stage": "Stage", + "filtering": "Filtering" } diff --git a/software/src/pages/shows/bandDetailPage/bandBanner.vue b/software/src/pages/events/bandDetailPage/bandBanner.vue similarity index 100% rename from software/src/pages/shows/bandDetailPage/bandBanner.vue rename to software/src/pages/events/bandDetailPage/bandBanner.vue diff --git a/software/src/pages/shows/bandDetailPage/bandMemberSection.vue b/software/src/pages/events/bandDetailPage/bandMemberSection.vue similarity index 100% rename from software/src/pages/shows/bandDetailPage/bandMemberSection.vue rename to software/src/pages/events/bandDetailPage/bandMemberSection.vue diff --git a/software/src/pages/shows/bandDetailPage/concertSection.vue b/software/src/pages/events/bandDetailPage/concertSection.vue similarity index 100% rename from software/src/pages/shows/bandDetailPage/concertSection.vue rename to software/src/pages/events/bandDetailPage/concertSection.vue diff --git a/software/src/pages/shows/bandDetailPage/gallerySection.vue b/software/src/pages/events/bandDetailPage/gallerySection.vue similarity index 100% rename from software/src/pages/shows/bandDetailPage/gallerySection.vue rename to software/src/pages/events/bandDetailPage/gallerySection.vue diff --git a/software/src/pages/shows/bandDetailPage/index.vue b/software/src/pages/events/bandDetailPage/index.vue similarity index 100% rename from software/src/pages/shows/bandDetailPage/index.vue rename to software/src/pages/events/bandDetailPage/index.vue diff --git a/software/src/pages/shows/bandDetailPage/ratingSection.vue b/software/src/pages/events/bandDetailPage/ratingSection.vue similarity index 100% rename from software/src/pages/shows/bandDetailPage/ratingSection.vue rename to software/src/pages/events/bandDetailPage/ratingSection.vue diff --git a/software/src/pages/shows/bandDetailPage/ticketOrderDialog.vue b/software/src/pages/events/bandDetailPage/ticketOrderDialog.vue similarity index 100% rename from software/src/pages/shows/bandDetailPage/ticketOrderDialog.vue rename to software/src/pages/events/bandDetailPage/ticketOrderDialog.vue diff --git a/software/src/pages/events/eventsPage/filterBar.vue b/software/src/pages/events/eventsPage/filterBar.vue new file mode 100644 index 0000000..fcae2dd --- /dev/null +++ b/software/src/pages/events/eventsPage/filterBar.vue @@ -0,0 +1,75 @@ + + + \ No newline at end of file diff --git a/software/src/pages/shows/eventsPage/index.vue b/software/src/pages/events/eventsPage/index.vue similarity index 73% rename from software/src/pages/shows/eventsPage/index.vue rename to software/src/pages/events/eventsPage/index.vue index 02d3c81..20d2a18 100644 --- a/software/src/pages/shows/eventsPage/index.vue +++ b/software/src/pages/events/eventsPage/index.vue @@ -25,16 +25,16 @@ shoppingStore.getEvents() - {{ createDateRangeString(tour) }} -
{{ tour.concerts.length }} {{ $t('concert', tour.concerts.length) }}
+ {{ createDateRangeString(event) }} +
{{ event.concerts.length }} {{ $t('concert', event.concerts.length) }}
diff --git a/software/src/pages/shows/searchPage/index.vue b/software/src/pages/events/searchPage/index.vue similarity index 100% rename from software/src/pages/shows/searchPage/index.vue rename to software/src/pages/events/searchPage/index.vue diff --git a/software/src/pages/shows/eventsPage/filterBar.vue b/software/src/pages/shows/eventsPage/filterBar.vue deleted file mode 100644 index d223879..0000000 --- a/software/src/pages/shows/eventsPage/filterBar.vue +++ /dev/null @@ -1,95 +0,0 @@ - - - \ No newline at end of file diff --git a/software/src/router/routes.ts b/software/src/router/routes.ts index 71beb54..c8021dc 100644 --- a/software/src/router/routes.ts +++ b/software/src/router/routes.ts @@ -3,10 +3,10 @@ import HomePage from "@/pages/homePage/index.vue" import { adminRoutes } from "./admin.routes"; import { accountRoutes } from "./account.routes"; import { systemRoutes } from "./system.routes"; -import EventsPage from "@/pages/shows/eventsPage/index.vue"; +import EventsPage from "@/pages/events/eventsPage/index.vue"; import LocationsPage from "@/pages/locations/locationsPage/index.vue" -import SearchPage from "@/pages/shows/searchPage/index.vue" -import BandDetailPage from "@/pages/shows/bandDetailPage/index.vue" +import SearchPage from "@/pages/events/searchPage/index.vue" +import BandDetailPage from "@/pages/events/bandDetailPage/index.vue" import LocationDetailPage from "@/pages/locations/locationDetailPage/index.vue" const routes = [ diff --git a/software/src/scripts/concertScripts.ts b/software/src/scripts/concertScripts.ts index ab33053..eeb1fb0 100644 --- a/software/src/scripts/concertScripts.ts +++ b/software/src/scripts/concertScripts.ts @@ -1,6 +1,7 @@ import { RatingModel } from "@/data/models/acts/ratingModel" import { dateToHumanReadableString } from "./dateTimeScripts" import { TourModel } from "@/data/models/acts/tourModel" +import { EventModel } from "@/data/models/acts/eventModel" /** * Calculate a price based on parameters @@ -68,14 +69,18 @@ export function createDateRangeString(tour: TourModel) { } } -export function lowestTicketPrice(tour: TourModel): string { +export function lowestTicketPrice(event: EventModel): string { const priceArray : Array = [] - for (let concert of tour.concerts) { + for (let concert of event.concerts) { priceArray.push(concert.price) } priceArray.sort() - return priceArray[0].toFixed(2) + try { + return priceArray[0].toFixed(2) + } catch(e) { + return "0" + } } \ No newline at end of file