Files
go-common/app/admin/ep/saga/http/http.go
2019-04-22 18:49:16 +08:00

138 lines
3.6 KiB
Go

package http
import (
"net/http"
"go-common/app/admin/ep/saga/conf"
"go-common/app/admin/ep/saga/service"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
"go-common/library/net/http/blademaster/middleware/permit"
)
var (
srv *service.Service
authSvc *permit.Permit
)
// Init init
func Init(s *service.Service) {
srv = s
authSvc = permit.New2(nil)
engine := bm.DefaultServer(conf.Conf.BM)
engine.Ping(ping)
initRouter(engine)
if err := engine.Start(); err != nil {
log.Error("engine.Start error(%v)", err)
panic(err)
}
}
// initRouter init outer router api path.
func initRouter(e *bm.Engine) {
version := e.Group("/ep/admin/saga/v1", authSvc.Permit2(""))
{
project := version.Group("/projects")
{
project.GET("/favorite", favoriteProjects)
project.POST("/favorite/edit", editFavorite)
project.GET("/common", queryCommonProjects)
}
tasks := version.Group("/tasks")
{
tasks.GET("/project", projectTasks)
}
user := version.Group("/user")
{
user.GET("/query", queryUserInfo)
}
data := version.Group("/data")
{
data.GET("/teams", queryTeams)
data.GET("/project", queryProjectInfo)
data.GET("/project/commit", queryProjectCommit)
data.GET("/project/mr", queryProjectMr)
data.GET("/commit", queryCommit) // ignore
data.GET("/commit/report", queryTeamCommit)
data.GET("/mr/report", queryTeamMr)
data.GET("/pipeline/report", queryTeamPipeline)
data.GET("/project/pipelines", queryProjectPipelineLists)
data.GET("/project/branch", queryProjectBranchList)
data.GET("/project/members", queryProjectMembers)
data.GET("/project/status", queryProjectStatus)
data.GET("/project/query/types", queryProjectTypes)
data.GET("/project/runners", queryProjectRunners)
data.GET("/job/report", queryProjectJob)
data.GET("/project/mr/report", queryProjectMrReport)
data.GET("/branch/report", queryBranchDiffWith)
}
config := version.Group("/config")
{
config.GET("/whitelist", sagaUserList)
//get runner sven all config files
config.GET("", runnerConfig)
//get saga sven all config files
config.GET("/saga", sagaConfig)
config.GET("/exist/saga", existConfigSaga)
//public saga config
config.POST("/tag/update", publicSagaConfig)
//update and public saga config
config.POST("/update/now/saga", releaseSagaConfig)
//get current saga config
config.GET("/option/saga", optionSaga)
}
// V1 wechat will carry cookie
wechat := version.Group("/wechat")
{
wechat.GET("", queryContacts)
contactLog := wechat.Group("/log")
{
contactLog.GET("/query", queryContactLogs)
}
redisdata := version.Group("/redisdata")
{
redisdata.GET("/query", queryRedisdata)
}
wechat.GET("/analysis/contacts", syncWechatContacts)
wechat.POST("/appchat/create", createWechat)
wechat.GET("/appchat/create/log", queryWechatCreateLog)
wechat.GET("/appchat/get", getWechat)
wechat.POST("/appchat/send", sendGroupWechat)
wechat.POST("/message/send", sendWechat)
wechat.POST("/appchat/update", updateWechat)
}
}
version1 := e.Group("/ep/admin/saga/v2")
{
// V2 wechat will not carry cookie
wechat := version1.Group("/wechat")
{
wechat.POST("/appchat/create", createWechat)
wechat.GET("/appchat/create/log", queryWechatCreateLog)
wechat.GET("/appchat/get", getWechat)
wechat.POST("/appchat/send", sendGroupWechat)
wechat.POST("/message/send", sendWechat)
wechat.POST("/appchat/update", updateWechat)
}
}
}
func ping(c *bm.Context) {
if err := srv.Ping(c); err != nil {
log.Error("ping error(%v)", err)
c.AbortWithStatus(http.StatusServiceUnavailable)
}
}