init: Initial commit
This commit is contained in:
75
app/main.go
Normal file
75
app/main.go
Normal file
@@ -0,0 +1,75 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"git.secnex.io/secnex/masterlog"
|
||||
"git.secnex.io/secnex/taro-bot/bot"
|
||||
"git.secnex.io/secnex/taro-bot/cache"
|
||||
"git.secnex.io/secnex/taro-bot/config"
|
||||
"git.secnex.io/secnex/taro-bot/controllers"
|
||||
"git.secnex.io/secnex/taro-bot/database"
|
||||
"git.secnex.io/secnex/taro-bot/middlewares"
|
||||
"git.secnex.io/secnex/taro-bot/models"
|
||||
"github.com/gofiber/fiber/v2"
|
||||
"github.com/gofiber/fiber/v2/middleware/cors"
|
||||
)
|
||||
|
||||
func main() {
|
||||
config := config.NewConfig()
|
||||
|
||||
pseudonymizer := masterlog.NewPseudonymizerFromString("1234567890")
|
||||
|
||||
masterlog.SetPseudonymizer(pseudonymizer)
|
||||
masterlog.AddSensitiveFields("password", "token", "email", "token_value", "key_value")
|
||||
|
||||
if config.Debug {
|
||||
masterlog.SetLevel(masterlog.LevelDebug)
|
||||
} else {
|
||||
masterlog.SetLevel(masterlog.LevelInfo)
|
||||
}
|
||||
|
||||
masterlog.AddEncoder(&masterlog.JSONEncoder{})
|
||||
|
||||
allModels := []interface{}{
|
||||
&models.Service{},
|
||||
&models.Channel{},
|
||||
&models.Webhook{},
|
||||
}
|
||||
|
||||
dbConfig := database.NewDatabaseConfigurationFromConfig(config)
|
||||
masterlog.Info("Connecting to database", map[string]interface{}{"host": config.DatabaseHost, "port": config.DatabasePort, "database": config.DatabaseName})
|
||||
if err := dbConfig.Connect(config, allModels...); err != nil {
|
||||
masterlog.Error("failed to connect to database", map[string]interface{}{"error": err.Error()})
|
||||
return
|
||||
}
|
||||
masterlog.Info("Connected to database!")
|
||||
|
||||
masterlog.Info("Connecting to Redis", map[string]interface{}{"host": config.RedisHost, "port": config.RedisPort})
|
||||
if err := cache.Connect(config); err != nil {
|
||||
masterlog.Error("failed to connect to Redis", map[string]interface{}{"error": err.Error()})
|
||||
return
|
||||
}
|
||||
masterlog.Info("Connected to Redis!")
|
||||
|
||||
app := fiber.New(fiber.Config{
|
||||
DisableStartupMessage: !config.FiberShowStartupMessage,
|
||||
})
|
||||
|
||||
app.Use(middlewares.RequestLogger())
|
||||
app.Use(cors.New(cors.Config{
|
||||
AllowOrigins: config.CorsAllowOrigins,
|
||||
AllowHeaders: config.CorsAllowHeaders,
|
||||
AllowMethods: config.CorsAllowMethods,
|
||||
}))
|
||||
|
||||
app.Head("/messages", controllers.MessageHeadController)
|
||||
app.Post("/messages", controllers.MessageController)
|
||||
app.Post("/webhooks/:id/receive", controllers.WebhookReceiveController)
|
||||
|
||||
bot.NewAuth(config.MicrosoftTenantId, config.MicrosoftAppId, config.MicrosoftAppSecret)
|
||||
|
||||
masterlog.Info("Starting server", map[string]interface{}{"address": config.Address})
|
||||
if err := app.Listen(config.Address); err != nil {
|
||||
masterlog.Error("failed to start server", map[string]interface{}{"error": err.Error()})
|
||||
return
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user