Mike Schwörer 658dc4cc9c
Some checks failed
Build Docker and Deploy / Build Docker Container (push) Successful in 1m0s
Build Docker and Deploy / Run Unit-Tests (push) Failing after 10m35s
Build Docker and Deploy / Deploy to Server (push) Has been skipped
Fix failing tests and SQLITE_BUSY errors
2025-05-11 19:20:13 +02:00

82 lines
1.9 KiB
Go

package main
import (
scn "blackforestbytes.com/simplecloudnotifier"
"blackforestbytes.com/simplecloudnotifier/api"
"blackforestbytes.com/simplecloudnotifier/google"
"blackforestbytes.com/simplecloudnotifier/jobs"
"blackforestbytes.com/simplecloudnotifier/logic"
"blackforestbytes.com/simplecloudnotifier/push"
"fmt"
"git.blackforestbytes.com/BlackForestBytes/goext/ginext"
"git.blackforestbytes.com/BlackForestBytes/goext/langext"
"github.com/rs/zerolog/log"
"time"
)
func main() {
conf := scn.Conf
scn.Init(conf)
log.Info().Msg(fmt.Sprintf("Starting with config-namespace <%s>", conf.Namespace))
sqlite, err := logic.NewDBPool(conf)
if err != nil {
panic(err)
}
app := logic.NewApp(sqlite)
if err := app.Migrate(); err != nil {
log.Fatal().Err(err).Msg("failed to migrate DB")
return
}
ginengine := ginext.NewEngine(ginext.Options{
AllowCors: &conf.Cors,
GinDebug: &conf.GinDebug,
BufferBody: langext.PTrue,
Timeout: langext.Ptr(time.Duration(int64(conf.RequestTimeout) * int64(conf.RequestMaxRetry+1))),
BuildRequestBindError: logic.BuildGinRequestError,
})
router := api.NewRouter(app)
var nc push.NotificationClient
if conf.DummyFirebase {
nc = push.NewDummy()
} else {
nc, err = push.NewFirebaseConn(conf)
if err != nil {
log.Fatal().Err(err).Msg("failed to init firebase")
return
}
}
var apc google.AndroidPublisherClient
if conf.DummyGoogleAPI {
apc = google.NewDummy()
} else {
apc, err = google.NewAndroidPublisherAPI(conf)
if err != nil {
log.Fatal().Err(err).Msg("failed to init google-api")
return
}
}
jobRetry := jobs.NewDeliveryRetryJob(app)
jobReqCollector := jobs.NewRequestLogCollectorJob(app)
app.Init(conf, ginengine, nc, apc, []logic.Job{jobRetry, jobReqCollector})
err = router.Init(ginengine)
if err != nil {
log.Fatal().Err(err).Msg("failed to init router")
return
}
app.Run()
}