stuve-it-backend/main/main.go

47 lines
1.4 KiB
Go

package main
import (
"git.stuve.uni-ulm.de/stuve-it/stuve-it-backend/emailApi"
"git.stuve.uni-ulm.de/stuve-it/stuve-it-backend/eventEntriesNotifier"
"git.stuve.uni-ulm.de/stuve-it/stuve-it-backend/ldapApi"
"git.stuve.uni-ulm.de/stuve-it/stuve-it-backend/ldapSync"
"git.stuve.uni-ulm.de/stuve-it/stuve-it-backend/logger"
"git.stuve.uni-ulm.de/stuve-it/stuve-it-backend/qrApi"
"github.com/joho/godotenv"
"github.com/pocketbase/pocketbase"
"github.com/pocketbase/pocketbase/core"
"log"
)
func main() {
// load env
err := godotenv.Load(".env.local")
if err != nil {
logger.LogInfoF("The file '.env.local' could not be loaded: %v", err)
}
// create app
app := pocketbase.New()
// setup ldap sync
app.OnBeforeServe().Add(func(e *core.ServeEvent) error { return ldapSync.InitLdapSync(app) })
// setup ldap login
app.OnBeforeServe().Add(func(e *core.ServeEvent) error { return ldapApi.InitLdapApi(app, e) })
// setup qr api
app.OnBeforeServe().Add(func(e *core.ServeEvent) error { return qrApi.InitQRApi(app, e) })
// setup eventEntriesNotifier email notifications
app.OnBeforeServe().Add(func(e *core.ServeEvent) error { return eventEntriesNotifier.InitEventEntriesNotifier(app, e) })
// setup email api
app.OnBeforeServe().Add(func(e *core.ServeEvent) error { return emailApi.InitEmailApi(app, e) })
// start app
if err := app.Start(); err != nil {
log.Fatal(err)
}
}