55 lines
1.3 KiB
Go
55 lines
1.3 KiB
Go
package app
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/gin-gonic/gin"
|
|
"github.com/spf13/viper"
|
|
"go.uber.org/zap"
|
|
"gorm.io/gorm"
|
|
"houston/cmd/app/handler"
|
|
)
|
|
|
|
type Server struct {
|
|
gin *gin.Engine
|
|
logger *zap.Logger
|
|
db *gorm.DB
|
|
}
|
|
|
|
func NewServer(gin *gin.Engine, logger *zap.Logger, db *gorm.DB) *Server {
|
|
return &Server{
|
|
gin: gin,
|
|
logger: logger,
|
|
db: db,
|
|
}
|
|
}
|
|
|
|
func (s *Server) Handler() {
|
|
s.teamHandler()
|
|
s.severityHandler()
|
|
|
|
//this should always be at the end since it opens websocket to connect to slackbot
|
|
s.houstonHandler()
|
|
}
|
|
|
|
func (s *Server) houstonHandler() {
|
|
houstonClient := NewHoustonClient(s.logger)
|
|
houstonHandler := handler.NewSlackHandler(s.logger, s.db, houstonClient.socketModeClient)
|
|
//cron.RunJob(houstonClient.slackClient, s.db, s.logger)
|
|
houstonHandler.HoustonConnect()
|
|
}
|
|
|
|
func (s *Server) teamHandler() {
|
|
teamHandler := handler.NewTeamHandler(s.gin, s.logger, s.db)
|
|
s.gin.POST("/team/add", teamHandler.AddTeam)
|
|
}
|
|
|
|
func (s *Server) severityHandler() {
|
|
severityHandler := handler.NewSeverityHandler(s.gin, s.logger, s.db)
|
|
s.gin.POST("/severity/add", severityHandler.AddSeverity)
|
|
}
|
|
|
|
func (s *Server) Start() {
|
|
s.logger.Info("starting houston server", zap.String("port", viper.GetString("port")))
|
|
s.gin.Run(fmt.Sprintf(":%v", "8080"))
|
|
}
|