Create & Init Project...
This commit is contained in:
41
app/admin/ep/tapd/http/BUILD
Normal file
41
app/admin/ep/tapd/http/BUILD
Normal file
@ -0,0 +1,41 @@
|
||||
package(default_visibility = ["//visibility:public"])
|
||||
|
||||
load(
|
||||
"@io_bazel_rules_go//go:def.bzl",
|
||||
"go_library",
|
||||
)
|
||||
|
||||
go_library(
|
||||
name = "go_default_library",
|
||||
srcs = [
|
||||
"hook.go",
|
||||
"http.go",
|
||||
],
|
||||
importpath = "go-common/app/admin/ep/tapd/http",
|
||||
tags = ["automanaged"],
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
"//app/admin/ep/tapd/conf:go_default_library",
|
||||
"//app/admin/ep/tapd/model:go_default_library",
|
||||
"//app/admin/ep/tapd/service:go_default_library",
|
||||
"//library/ecode:go_default_library",
|
||||
"//library/log:go_default_library",
|
||||
"//library/net/http/blademaster:go_default_library",
|
||||
"//library/net/http/blademaster/binding:go_default_library",
|
||||
"//library/net/http/blademaster/middleware/permit:go_default_library",
|
||||
],
|
||||
)
|
||||
|
||||
filegroup(
|
||||
name = "package-srcs",
|
||||
srcs = glob(["**"]),
|
||||
tags = ["automanaged"],
|
||||
visibility = ["//visibility:private"],
|
||||
)
|
||||
|
||||
filegroup(
|
||||
name = "all-srcs",
|
||||
srcs = [":package-srcs"],
|
||||
tags = ["automanaged"],
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
135
app/admin/ep/tapd/http/hook.go
Normal file
135
app/admin/ep/tapd/http/hook.go
Normal file
@ -0,0 +1,135 @@
|
||||
package http
|
||||
|
||||
import (
|
||||
"go-common/app/admin/ep/tapd/model"
|
||||
"go-common/library/ecode"
|
||||
"go-common/library/log"
|
||||
bm "go-common/library/net/http/blademaster"
|
||||
"go-common/library/net/http/blademaster/binding"
|
||||
)
|
||||
|
||||
const (
|
||||
_sessUnKey = "username"
|
||||
)
|
||||
|
||||
func tapdCallback(c *bm.Context) {
|
||||
c.JSON(nil, svc.TapdCallBack(c, c.Request.Body))
|
||||
}
|
||||
|
||||
func updateHook(c *bm.Context) {
|
||||
var (
|
||||
err error
|
||||
v = &model.HookURLUpdateReq{}
|
||||
username string
|
||||
)
|
||||
|
||||
if err = c.BindWith(v, binding.JSON); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
if username, err = getUsername(c); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(svc.UpdateHookURL(c, username, v))
|
||||
}
|
||||
|
||||
func queryHook(c *bm.Context) {
|
||||
var (
|
||||
v = &model.QueryHookURLReq{}
|
||||
err error
|
||||
)
|
||||
|
||||
if err = c.BindWith(v, binding.JSON); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
if err = v.Verify(); err != nil {
|
||||
c.JSON(nil, err)
|
||||
return
|
||||
}
|
||||
c.JSON(svc.QueryHookURL(c, v))
|
||||
}
|
||||
|
||||
func queryURLEvent(c *bm.Context) {
|
||||
var (
|
||||
v = new(struct {
|
||||
ID int64 `form:"url_id"`
|
||||
})
|
||||
err error
|
||||
)
|
||||
|
||||
if err = c.Bind(v); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(svc.QueryURLEvent(c, v.ID))
|
||||
}
|
||||
|
||||
func queryEventLog(c *bm.Context) {
|
||||
var (
|
||||
v = &model.QueryEventLogReq{}
|
||||
err error
|
||||
)
|
||||
|
||||
if err = c.BindWith(v, binding.JSON); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
if err = v.Verify(); err != nil {
|
||||
c.JSON(nil, err)
|
||||
return
|
||||
}
|
||||
c.JSON(svc.QueryEventLog(c, v))
|
||||
}
|
||||
|
||||
func saveHookUrlInCache(c *bm.Context) {
|
||||
c.JSON(svc.SaveEnableHookURL(c))
|
||||
}
|
||||
|
||||
func queryHookUrlInCache(c *bm.Context) {
|
||||
c.JSON(svc.QueryEnableHookURLInCache(c))
|
||||
}
|
||||
|
||||
func test(c *bm.Context) {
|
||||
var (
|
||||
v = new(struct {
|
||||
Data interface{} `json:"data"`
|
||||
Code int `json:"code"`
|
||||
})
|
||||
err error
|
||||
)
|
||||
|
||||
if err = c.BindWith(v, binding.JSON); err != nil {
|
||||
return
|
||||
}
|
||||
log.Info("WorkspaceID [%d]", v.Data)
|
||||
c.JSON(v, err)
|
||||
}
|
||||
|
||||
func testform(c *bm.Context) {
|
||||
var (
|
||||
v = new(struct {
|
||||
ID string `form:"event"`
|
||||
})
|
||||
err error
|
||||
)
|
||||
|
||||
if err = c.Bind(v); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
log.Info("fengyifeng WorkspaceID", v.ID)
|
||||
c.JSON(v, err)
|
||||
}
|
||||
|
||||
func getUsername(c *bm.Context) (username string, err error) {
|
||||
user, exist := c.Get(_sessUnKey)
|
||||
if !exist {
|
||||
err = ecode.AccessKeyErr
|
||||
c.JSON(nil, err)
|
||||
return
|
||||
}
|
||||
username = user.(string)
|
||||
return
|
||||
}
|
74
app/admin/ep/tapd/http/http.go
Normal file
74
app/admin/ep/tapd/http/http.go
Normal file
@ -0,0 +1,74 @@
|
||||
package http
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
|
||||
"go-common/app/admin/ep/tapd/conf"
|
||||
"go-common/app/admin/ep/tapd/service"
|
||||
"go-common/library/log"
|
||||
bm "go-common/library/net/http/blademaster"
|
||||
"go-common/library/net/http/blademaster/middleware/permit"
|
||||
)
|
||||
|
||||
var (
|
||||
svc *service.Service
|
||||
authSvc *permit.Permit
|
||||
)
|
||||
|
||||
// Init init
|
||||
func Init(c *conf.Config, s *service.Service) {
|
||||
svc = s
|
||||
authSvc = permit.New(c.Auth)
|
||||
engine := bm.DefaultServer(c.BM)
|
||||
engine.Ping(ping)
|
||||
outerRouter(engine)
|
||||
if err := engine.Start(); err != nil {
|
||||
log.Error("engine.Start error(%v)", err)
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
||||
// outerRouter init outer router api path.
|
||||
func outerRouter(e *bm.Engine) {
|
||||
|
||||
inner := e.Group("/internal/ep/tapd")
|
||||
{
|
||||
inner.GET("/version", getVersion)
|
||||
inner.POST("/test", test)
|
||||
inner.POST("/testform", testform)
|
||||
|
||||
version1 := inner.Group("/v1", authSvc.Permit(""))
|
||||
{
|
||||
version1.POST("/hook/update", updateHook)
|
||||
version1.POST("/hook/query", queryHook)
|
||||
|
||||
version1.GET("/hook/event/query", queryURLEvent)
|
||||
version1.GET("/hook/cache/save", saveHookUrlInCache)
|
||||
version1.GET("/hook/cache/query", queryHookUrlInCache)
|
||||
|
||||
version1.POST("/eventlog/query", queryEventLog)
|
||||
}
|
||||
}
|
||||
|
||||
outer := e.Group("/ep/tapd")
|
||||
{
|
||||
outer.POST("/callback", tapdCallback)
|
||||
outer.GET("/version", getVersion)
|
||||
}
|
||||
}
|
||||
|
||||
func ping(c *bm.Context) {
|
||||
if err := svc.Ping(c); err != nil {
|
||||
log.Error("ping error(%v)", err)
|
||||
c.AbortWithStatus(http.StatusServiceUnavailable)
|
||||
}
|
||||
}
|
||||
|
||||
func getVersion(c *bm.Context) {
|
||||
v := new(struct {
|
||||
Version string `json:"version"`
|
||||
})
|
||||
v.Version = "v.0.0.7"
|
||||
c.JSON(v, nil)
|
||||
|
||||
}
|
Reference in New Issue
Block a user