Create & Init Project...

This commit is contained in:
2019-04-22 18:49:16 +08:00
commit fc4fa37393
25440 changed files with 4054998 additions and 0 deletions

View File

@ -0,0 +1,42 @@
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
package(default_visibility = ["//visibility:public"])
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)
go_library(
name = "go_default_library",
srcs = [
"app_auth.go",
"config.go",
"credential.go",
"ecode.go",
"http.go",
],
importpath = "go-common/app/service/main/msm/http",
tags = ["automanaged"],
deps = [
"//app/service/main/msm/conf:go_default_library",
"//app/service/main/msm/model:go_default_library",
"//app/service/main/msm/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/middleware/verify:go_default_library",
],
)

View File

@ -0,0 +1,27 @@
package http
import (
"go-common/app/service/main/msm/model"
bm "go-common/library/net/http/blademaster"
)
func scope(c *bm.Context) {
var (
err error
scopeMap map[int64]*model.Scope
param = new(struct {
AppTreeID int64 `form:"app_tree_id" validate:"gt=0"`
})
)
if err = c.Bind(param); err != nil {
return
}
if scopeMap, err = svr.ServiceScopes(c, param.AppTreeID); err != nil {
c.JSON(nil, err)
return
}
data := make(map[string]interface{}, 2)
data["service_tree_id"] = param.AppTreeID
data["scopes"] = scopeMap
c.JSON(data, nil)
}

View File

@ -0,0 +1,37 @@
package http
import (
bm "go-common/library/net/http/blademaster"
)
// push config update
func push(c *bm.Context) {
var (
err error
param = new(struct {
Ver int64 `form:"version" validate:"gte=0"`
App string `form:"service" validate:"required"`
BVer string `form:"build_ver" validate:"required"`
Env string `form:"environment" validate:"required"`
})
)
if err = c.Bind(param); err != nil {
return
}
c.JSON(nil, svr.Push(c, param.App, param.BVer, param.Env, param.Ver))
}
func setToken(c *bm.Context) {
var (
err error
param = new(struct {
App string `form:"service" validate:"required"`
Token string `form:"token" validate:"required"`
Env string `form:"environment" validate:"required"`
})
)
if err = c.Bind(param); err != nil {
return
}
c.JSON(nil, svr.SetToken(c, param.App, param.Env, param.Token))
}

View File

@ -0,0 +1,43 @@
package http
import (
"strconv"
"go-common/library/ecode"
bm "go-common/library/net/http/blademaster"
)
const (
_contentType = "Content-Type"
_urlJSON = "application/json"
)
// credential verify.
func credential(ctx *bm.Context) {
var (
appIDStr string
signature string
)
req := ctx.Request
params := req.Form
header := req.Header
if header.Get(_contentType) == _urlJSON {
appIDStr = header.Get("App-Tree-ID")
signature = header.Get("Signature")
header.Del("Signature")
} else {
appIDStr = params.Get("app_tree_id")
signature = params.Get("signature")
params.Del("signature")
}
appID, _ := strconv.ParseInt(appIDStr, 10, 64)
if appID == 0 || signature == "" {
ctx.JSON(nil, ecode.RequestErr)
ctx.Abort()
return
}
if ok := svr.CheckSign(appID, signature); !ok {
ctx.JSON(nil, ecode.SignCheckErr)
ctx.Abort()
}
}

View File

@ -0,0 +1,42 @@
package http
import (
"go-common/app/service/main/msm/model"
bm "go-common/library/net/http/blademaster"
)
func codes(c *bm.Context) {
var (
err error
code *model.Codes
param = new(struct {
Ver int64 `form:"ver"`
})
)
if err = c.Bind(param); err != nil {
return
}
if code, err = svr.Codes(c, param.Ver); err != nil {
c.JSON(nil, err)
return
}
c.JSON(code, nil)
}
func codesLangs(c *bm.Context) {
var (
err error
code *model.CodesLangs
param = new(struct {
Ver int64 `form:"ver"`
})
)
if err = c.Bind(param); err != nil {
return
}
if code, err = svr.CodesLangs(c, param.Ver); err != nil {
c.JSON(nil, err)
return
}
c.JSON(code, nil)
}

View File

@ -0,0 +1,56 @@
package http
import (
"net/http"
"go-common/app/service/main/msm/conf"
"go-common/app/service/main/msm/service"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
"go-common/library/net/http/blademaster/middleware/verify"
)
var (
vfySvr *verify.Verify
svr *service.Service
)
// Init init config.
func Init(c *conf.Config, s *service.Service) {
svr = s
vfySvr = verify.New(nil)
engine := bm.DefaultServer(c.BM)
oldRouter(engine)
innerRouter(engine)
if err := engine.Start(); err != nil {
log.Error("engine.Start error(%v)", err)
panic(err)
}
}
func oldRouter(e *bm.Engine) {
e.Ping(ping)
group := e.Group("/x/v1/msm", vfySvr.Verify)
{
group.GET("/codes/2", codes)
group.POST("/conf/push", push)
group.POST("/conf/setToken", setToken)
group.GET("/codes/langs", codesLangs)
}
}
func innerRouter(e *bm.Engine) {
group := e.Group("/x/internal/msm/v1")
{
group.GET("/codes/2", vfySvr.Verify, codes)
group.GET("/auth/scope", credential, scope)
}
}
// ping check server ok.
func ping(c *bm.Context) {
if svr.Ping() != nil {
log.Error("service ping error")
c.AbortWithStatus(http.StatusServiceUnavailable)
}
}