package main import ( "database/sql" "github.com/gin-contrib/cors" "github.com/gin-gonic/gin" _ "github.com/glebarez/go-sqlite" "log" ) type session struct { *sql.DB WebhookDomain string Config config } func main() { log.Println("Preparing DeletedBot...") conf := getConfig() db, err := sql.Open("sqlite", conf.DbPath) if err != nil { log.Fatal("Couldn't connect to database: ", err.Error()) } defer db.Close() ses := &session{DB: db, WebhookDomain: conf.WebhookDomain, Config: conf} ses.initDatabase() gin.SetMode(gin.ReleaseMode) r := gin.Default() r.Use(cors.Default()) conf.serveFrontend(r) api := r.Group("/api") api.POST("/setbot", ses.setBot) api.POST("/telegram/:token", ses.telegram) admin := api.Group("/admin", gin.BasicAuth(gin.Accounts{conf.AdminUsername: conf.AdminPassword})) admin.POST("/getbots", ses.getBots) admin.POST("/unsetbot", ses.unsetBot) log.Println("Starting to serve on " + conf.Host + ":" + conf.Port) err = r.Run(conf.Host + ":" + conf.Port) if err != nil { log.Fatal("Couldn't start server: ", err.Error()) } }