Files
houston-be/cmd/app/server.go
Shubham Kirve b974cb6bf3 TP-0000 | Initialize houston repo (#1)
* TP-0000 | intialize houston repo

* TP-0000 | intialize houston repo
2023-03-29 00:01:17 +05:30

55 lines
1.2 KiB
Go

package app
import (
"fmt"
"houston/cmd/app/handler"
"github.com/gin-gonic/gin"
"github.com/spf13/viper"
"go.uber.org/zap"
"gorm.io/gorm"
)
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 slack
s.houstonHandler()
}
func (s *Server) houstonHandler() {
houstonClient := NewHoustonClient(s.logger)
houstonHandler := handler.NewSlackHandler(s.logger, houstonClient.socketmodeClient, s.db, houstonClient.slackClient)
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"))
}