mirror of
https://github.com/grassrootseconomics/farmstar-survey-backend.git
synced 2024-09-20 23:17:43 +02:00
75 lines
1.8 KiB
Go
75 lines
1.8 KiB
Go
package main
|
|
|
|
import (
|
|
"flag"
|
|
"log/slog"
|
|
"os"
|
|
|
|
"github.com/grassrootseconomics/farmstar-survey-backend/internal/hooks"
|
|
"github.com/grassrootseconomics/farmstar-survey-backend/internal/router"
|
|
_ "github.com/grassrootseconomics/farmstar-survey-backend/migrations"
|
|
"github.com/grassrootseconomics/farmstar-survey-backend/pkg/custodial"
|
|
"github.com/grassrootseconomics/farmstar-survey-backend/pkg/telegram"
|
|
"github.com/grassrootseconomics/farmstar-survey-backend/pkg/ussd"
|
|
"github.com/jackc/pgx/v5/pgxpool"
|
|
"github.com/kamikazechaser/africastalking"
|
|
"github.com/knadh/koanf/v2"
|
|
"github.com/pocketbase/pocketbase"
|
|
)
|
|
|
|
var (
|
|
confFlag string
|
|
|
|
lo *slog.Logger
|
|
ko *koanf.Koanf
|
|
|
|
pocketbaseApp *pocketbase.PocketBase
|
|
postgresPool *pgxpool.Pool
|
|
ussdClient *ussd.USSDClient
|
|
custodialClient *custodial.CustodialClient
|
|
tgClient *telegram.TelegramClient
|
|
atClient *africastalking.AtClient
|
|
)
|
|
|
|
func init() {
|
|
flag.StringVar(&confFlag, "config", "config.toml", "Config file location")
|
|
flag.Parse()
|
|
|
|
lo = initLogger()
|
|
ko = initConfig()
|
|
}
|
|
|
|
func main() {
|
|
pocketbaseApp = initPocketbase()
|
|
postgresPool = initPostgres()
|
|
|
|
ussdClient = initUSSDClient()
|
|
custodialClient = initCustodialClient()
|
|
tgClient = initTelegramClient()
|
|
atClient = initATClient()
|
|
|
|
worker := initRiverQueueWWorker()
|
|
if err := worker.Start(); err != nil {
|
|
lo.Error("could not start worker", err)
|
|
os.Exit(1)
|
|
}
|
|
|
|
hooks := hooks.NewHooks(hooks.Opts{
|
|
PB: pocketbaseApp,
|
|
Worker: worker,
|
|
RedemptionVault: ko.MustString("rewards.number"),
|
|
})
|
|
hooks.Bootsrap()
|
|
|
|
router := router.NewRouter(router.Opts{
|
|
PB: pocketbaseApp,
|
|
USSDClient: ussdClient,
|
|
})
|
|
router.Bootsrap()
|
|
|
|
if err := pocketbaseApp.Start(); err != nil {
|
|
lo.Error("could not start pocketbase ", err)
|
|
os.Exit(1)
|
|
}
|
|
}
|