| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- import BaseProvider from '~/services/data/BaseProvider'
- import Address from "~/components/Ui/Search/Address.vue";
- import HydraParser from "~/services/data/HydraParser";
- class PublicEventsProvider extends BaseProvider {
- protected normalize (e: any) : PublicEvent {
- e.address = {
- type: '',
- latitude: e.latitude,
- longitude: e.longitude,
- streetAddress: e.streetAddress,
- postalCode: e.postalCode,
- addressCity: e.city,
- country: ''
- } as Address
- delete e['@id']
- delete e['@type']
- delete e.latitude
- delete e.longitude
- delete e.streetAddress
- delete e.postalCode
- delete e.city
- return e
- }
- async getBy (
- name: string | null = null,
- organizationId: number | null = null,
- dateMin: string | null = null,
- dateMax: string | null = null,
- city: string | null = null,
- page: number = 1,
- itemsPerPage = 20
- ): Promise<HydraCollection<PublicEvent>> {
- const query = new URLSearchParams();
- if (name !== null) {
- query.append('name', name)
- }
- if (organizationId !== null) {
- query.append('organizationId', String(organizationId))
- }
- if (dateMin !== null && dateMin !== '') {
- query.append('datetimeEnd[after]', dateMin)
- }
- if (dateMax !== null && dateMax !== '') {
- query.append('datetimeEnd[before]', dateMax)
- }
- if (city !== null) {
- query.append('city', city)
- }
- if (page !== null) {
- query.append('page', `${page}`)
- }
- if (itemsPerPage !== null) {
- query.append('itemsPerPage', `${itemsPerPage}`)
- }
- let url = `/api/public/events`
- if (query) {
- url += `?${query}`
- }
- return await this.get(url).then((res) => {
- return HydraParser.parseCollection(res, this.normalize)
- })
- }
- async getById (eventUuid: number): Promise<PublicEvent> {
- return await this.get(
- `/api/public/events/${eventUuid}`
- ).then((s) => {
- return this.normalize(s)
- })
- }
- }
- export default PublicEventsProvider
|