wip: first draft for eventManager and interfaces
This commit is contained in:
parent
24cdde85d8
commit
56443f2b71
|
@ -0,0 +1,56 @@
|
||||||
|
import { EventState } from "@prisma/client"
|
||||||
|
import { CommuniEvent } from "../interfaces/CommuniEvents"
|
||||||
|
|
||||||
|
export class EventManager {
|
||||||
|
static
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @returns CommuniEvent - list of communi events
|
||||||
|
*/
|
||||||
|
eventFromDefault() {
|
||||||
|
return <CommuniEvent>{
|
||||||
|
titleFormatted: "Godi am 01.01.1970",
|
||||||
|
descriptionDescriptionFormatted: "Einfache Beschreibung für Godi\n Beschreibung der Predigtreihe\n\n Predigt: \n Moderation:",
|
||||||
|
dateTime: "2022-09-25 10:00:00",
|
||||||
|
endDateTime: "2022-09-25 11:15:00",
|
||||||
|
isOfficial: true,
|
||||||
|
state: <EventState>{
|
||||||
|
publishYoutube: true,
|
||||||
|
publishFacebook: false,
|
||||||
|
publishInstagram: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// TODO: how to create a simple route? with express?
|
||||||
|
// this is the point to think about switching to Nest framework
|
||||||
|
|
||||||
|
// TODO: fetch from DB or from App interface?
|
||||||
|
// ptobably both... add a sync function
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @returns Array<CommuniEvent> - list of communi events
|
||||||
|
*/
|
||||||
|
listEvents = async () => {
|
||||||
|
let events = Array<CommuniEvent>()
|
||||||
|
|
||||||
|
return events
|
||||||
|
}
|
||||||
|
|
||||||
|
syncFromApp = async () => {
|
||||||
|
// fetch list from App
|
||||||
|
// fetch list from DB
|
||||||
|
// for (event in Events) {
|
||||||
|
// update info in DB with latest info from App
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* adds a new Event to our database
|
||||||
|
*
|
||||||
|
* @param newEvent - event to add, from Form
|
||||||
|
*/
|
||||||
|
addEventFromForm = async (newEvent: CommuniEvent) => {
|
||||||
|
//
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,27 @@
|
||||||
|
// similar to return types of CommuniApp REST API
|
||||||
|
export interface IEvent {
|
||||||
|
id?: number
|
||||||
|
titleFormatted: string
|
||||||
|
locationFormatted: string
|
||||||
|
descriptionDescriptionFormatted: string
|
||||||
|
dateTime: string
|
||||||
|
endDateTime: string
|
||||||
|
isOfficial: boolean
|
||||||
|
videoUrl?: string
|
||||||
|
group?: number
|
||||||
|
createdBy?: number
|
||||||
|
state: EventState
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface EventState {
|
||||||
|
id?: number
|
||||||
|
event?: IEvent
|
||||||
|
publishYoutube: boolean
|
||||||
|
publishFacebook: boolean
|
||||||
|
publishInstagram: boolean
|
||||||
|
|
||||||
|
// FIXME:
|
||||||
|
eventId?: number
|
||||||
|
}
|
||||||
|
|
||||||
|
export type CommuniEvent = IEvent
|
Loading…
Reference in New Issue