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,54 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = [
"basic.go",
"branch.go",
"commit.go",
"config.go",
"http.go",
"job.go",
"member.go",
"mr.go",
"pipeline.go",
"project.go",
"runner.go",
"task.go",
"team.go",
"user.go",
"wechat.go",
],
importpath = "go-common/app/admin/ep/saga/http",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = [
"//app/admin/ep/saga/conf:go_default_library",
"//app/admin/ep/saga/model:go_default_library",
"//app/admin/ep/saga/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"],
)

View File

@@ -0,0 +1,38 @@
package http
import (
"go-common/app/admin/ep/saga/model"
bm "go-common/library/net/http/blademaster"
)
func queryProjectStatus(c *bm.Context) {
var (
req = &model.ProjectDataReq{}
err error
)
if err = c.Bind(req); err != nil {
return
}
if req.Username, err = getUsername(c); err != nil {
c.JSON(nil, err)
return
}
c.JSON(srv.QueryProjectStatus(c, req), nil)
}
func queryProjectTypes(c *bm.Context) {
var (
req = &model.ProjectDataReq{}
err error
)
if err = c.Bind(req); err != nil {
return
}
if req.Username, err = getUsername(c); err != nil {
c.JSON(nil, err)
return
}
c.JSON(srv.QueryProjectTypes(c, req), nil)
}

View File

@@ -0,0 +1,40 @@
package http
import (
"go-common/app/admin/ep/saga/model"
bm "go-common/library/net/http/blademaster"
)
func queryProjectBranchList(c *bm.Context) {
var (
req = &model.ProjectDataReq{}
err error
)
if err = c.Bind(req); err != nil {
return
}
if req.Username, err = getUsername(c); err != nil {
c.JSON(nil, err)
return
}
c.JSON(srv.QueryProjectBranchList(c, req))
}
// @params queryBranchDiffWith
// @router get /ep/admin/saga/v1/data/branch/report
// @response BranchDiffWithRequest
func queryBranchDiffWith(c *bm.Context) {
var (
req = &model.BranchDiffWithRequest{}
err error
)
if err = c.Bind(req); err != nil {
return
}
if req.Username, err = getUsername(c); err != nil {
return
}
c.JSON(srv.QueryBranchDiffWith(c, req))
}

View File

@@ -0,0 +1,63 @@
package http
import (
"go-common/app/admin/ep/saga/model"
bm "go-common/library/net/http/blademaster"
)
// @params ProjectDataReq
// @router get /ep/admin/saga/v1/data/project/report
// @response ProjectDataResp
func queryProjectCommit(c *bm.Context) {
var (
req = &model.ProjectDataReq{}
err error
)
if err = c.Bind(req); err != nil {
return
}
if req.Username, err = getUsername(c); err != nil {
c.JSON(nil, err)
return
}
c.JSON(srv.QueryProjectCommit(c, req))
}
// @params TeamDataRequest
// @router get /ep/admin/saga/v1/data/commit/report
// @response TeamDataResp
func queryTeamCommit(c *bm.Context) {
var (
req = &model.TeamDataRequest{}
err error
)
if err = c.Bind(req); err != nil {
return
}
if req.Username, err = getUsername(c); err != nil {
c.JSON(nil, err)
return
}
c.JSON(srv.QueryTeamCommit(c, req))
}
// @params CommitRequest
// @router get /ep/admin/saga/v1/data/commit
// @response CommitResp
func queryCommit(c *bm.Context) {
var (
req = &model.CommitRequest{}
err error
)
if err = c.Bind(req); err != nil {
return
}
if req.Username, err = getUsername(c); err != nil {
c.JSON(nil, err)
return
}
c.JSON(srv.QueryCommit(c, req))
}

View File

@@ -0,0 +1,101 @@
package http
import (
"strconv"
"go-common/app/admin/ep/saga/model"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
"go-common/library/net/http/blademaster/binding"
)
func sagaUserList(c *bm.Context) {
c.JSON(srv.SagaUserList(c))
}
func runnerConfig(c *bm.Context) {
session, err := c.Request.Cookie("_AJSESSIONID")
if err != nil {
c.JSON(nil, err)
return
}
c.JSON(srv.QueryAllConfigFile(c, session.Value, false))
}
func sagaConfig(c *bm.Context) {
session, err := c.Request.Cookie("_AJSESSIONID")
if err != nil {
c.JSON(nil, err)
return
}
c.JSON(srv.QueryAllConfigFile(c, session.Value, true))
}
func publicSagaConfig(c *bm.Context) {
req := new(model.TagUpdate)
if err := c.Bind(req); err != nil {
return
}
session, err := c.Request.Cookie("_AJSESSIONID")
if err != nil {
c.JSON(nil, err)
return
}
var user string
if user, err = getUsername(c); err != nil {
c.JSON(nil, err)
return
}
c.JSON(srv.PublicConfig(c, session.Value, user, req.Names, req.Mark, true))
}
func existConfigSaga(c *bm.Context) {
var (
err error
projectID int
)
if projectID, err = strconv.Atoi(c.Request.Form.Get("project_id")); err != nil {
return
}
session, err := c.Request.Cookie("_AJSESSIONID")
if err != nil {
c.JSON(nil, err)
return
}
c.JSON(srv.QueryProjectSagaConfig(c, session.Value, projectID))
}
func releaseSagaConfig(c *bm.Context) {
var (
err error
user string
)
v := new(model.ConfigList)
if err = c.BindWith(v, binding.JSON); err != nil {
return
}
if user, err = getUsername(c); err != nil {
c.JSON(nil, err)
return
}
session, err := c.Request.Cookie("_AJSESSIONID")
if err != nil {
c.JSON(nil, err)
return
}
c.JSON(srv.ReleaseSagaConfig(c, user, session.Value, v))
}
func optionSaga(c *bm.Context) {
session, err := c.Request.Cookie("_AJSESSIONID")
if err != nil {
c.JSON(nil, err)
return
}
projectID := c.Request.Form.Get("project_id")
log.Info("=====optionSaga projectID: %s", projectID)
c.JSON(srv.OptionSaga(c, projectID, session.Value))
}

View File

@@ -0,0 +1,137 @@
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)
}
}

View File

@@ -0,0 +1,26 @@
package http
import (
"go-common/app/admin/ep/saga/model"
bm "go-common/library/net/http/blademaster"
)
// @params queryProjectJob
// @router get /ep/admin/saga/v1/data/project/job
// @response TeamDataResp
func queryProjectJob(c *bm.Context) {
var (
req = &model.ProjectJobRequest{}
err error
)
if err = c.Bind(req); err != nil {
return
}
if req.Username, err = getUsername(c); err != nil {
c.JSON(nil, err)
return
}
//c.JSON(srv.QueryProjectJob(c, req))
c.JSON(srv.QueryProjectJobNew(c, req))
}

View File

@@ -0,0 +1,22 @@
package http
import (
"go-common/app/admin/ep/saga/model"
bm "go-common/library/net/http/blademaster"
)
func queryProjectMembers(c *bm.Context) {
var (
req = &model.ProjectDataReq{}
err error
)
if err = c.Bind(req); err != nil {
return
}
if req.Username, err = getUsername(c); err != nil {
c.JSON(nil, err)
return
}
c.JSON(srv.QueryProjectMembers(c, req))
}

View File

@@ -0,0 +1,62 @@
package http
import (
"go-common/app/admin/ep/saga/model"
bm "go-common/library/net/http/blademaster"
)
// @params ProjectDataReq
// @router get /ep/admin/saga/v1/data/project/report
// @response ProjectDataResp
func queryProjectMr(c *bm.Context) {
var (
req = &model.ProjectDataReq{}
err error
)
if err = c.Bind(req); err != nil {
return
}
if req.Username, err = getUsername(c); err != nil {
c.JSON(nil, err)
return
}
c.JSON(srv.QueryProjectMr(c, req))
}
// @params TeamDataRequest
// @router get /ep/admin/saga/v1/data/mr/report
// @response TeamDataResp
func queryTeamMr(c *bm.Context) {
var (
req = &model.TeamDataRequest{}
err error
)
if err = c.Bind(req); err != nil {
return
}
if req.Username, err = getUsername(c); err != nil {
c.JSON(nil, err)
return
}
c.JSON(srv.QueryTeamMr(c, req))
}
//@params ProjectMrReportReq
//@router get /ep/admin/saga/v1/data/project/mr/report
//@response ProjectMrReportResp
func queryProjectMrReport(c *bm.Context) {
var (
req = &model.ProjectMrReportReq{}
err error
)
if err = c.Bind(req); err != nil {
return
}
if req.Username, err = getUsername(c); err != nil {
c.JSON(nil, err)
return
}
c.JSON(srv.QueryProjectMrReport(c, req))
}

View File

@@ -0,0 +1,41 @@
package http
import (
"go-common/app/admin/ep/saga/model"
bm "go-common/library/net/http/blademaster"
)
// @params TeamDataRequest
// @router get /ep/admin/saga/v1/data/pipeline/report
// @response TeamDataResp
func queryTeamPipeline(c *bm.Context) {
var (
req = &model.TeamDataRequest{}
err error
)
if err = c.Bind(req); err != nil {
return
}
if req.Username, err = getUsername(c); err != nil {
c.JSON(nil, err)
return
}
c.JSON(srv.QueryTeamPipeline(c, req))
}
func queryProjectPipelineLists(c *bm.Context) {
var (
req = &model.PipelineDataReq{}
err error
)
if err = c.Bind(req); err != nil {
return
}
if req.Username, err = getUsername(c); err != nil {
c.JSON(nil, err)
return
}
c.JSON(srv.QueryProjectPipelineNew(c, req))
}

View File

@@ -0,0 +1,69 @@
package http
import (
"go-common/app/admin/ep/saga/model"
bm "go-common/library/net/http/blademaster"
"go-common/library/net/http/blademaster/binding"
)
// @params EmptyReq
// @router get /ep/admin/saga/v1/projects/favorite
// @response FavoriteProjectsResp
func favoriteProjects(ctx *bm.Context) {
var (
req = &model.Pagination{}
err error
userName string
)
if err = ctx.Bind(req); err != nil {
ctx.JSON(nil, err)
return
}
if userName, err = getUsername(ctx); err != nil {
ctx.JSON(nil, err)
return
}
ctx.JSON(srv.FavoriteProjects(ctx, req, userName))
}
// @params EditFavoriteReq
// @router post /ep/admin/saga/v1/projects/favorite/edit
// @response EmptyResp
func editFavorite(ctx *bm.Context) {
var (
req = &model.EditFavoriteReq{}
err error
userName string
)
if err = ctx.BindWith(req, binding.JSON); err != nil {
ctx.JSON(nil, err)
return
}
if userName, err = getUsername(ctx); err != nil {
ctx.JSON(nil, err)
return
}
ctx.JSON(srv.EditFavorite(ctx, req, userName))
}
func queryCommonProjects(ctx *bm.Context) {
ctx.JSON(srv.QueryCommonProjects(ctx))
}
// @params QueryProjectInfoRequest
// @router get /ep/admin/saga/v1/data/project
// @response ProjectsResp
func queryProjectInfo(c *bm.Context) {
var (
req = &model.ProjectInfoRequest{}
err error
)
if err = c.Bind(req); err != nil {
return
}
if err = req.Verify(); err != nil {
c.JSON(nil, err)
return
}
c.JSON(srv.QueryProjectInfo(c, req))
}

View File

@@ -0,0 +1,21 @@
package http
import (
"go-common/app/admin/ep/saga/model"
bm "go-common/library/net/http/blademaster"
)
func queryProjectRunners(c *bm.Context) {
var (
req = &model.ProjectDataReq{}
err error
)
if err = c.Bind(req); err != nil {
return
}
if req.Username, err = getUsername(c); err != nil {
c.JSON(nil, err)
return
}
c.JSON(srv.QueryProjectRunners(c, req))
}

View File

@@ -0,0 +1,20 @@
package http
import (
"go-common/app/admin/ep/saga/model"
bm "go-common/library/net/http/blademaster"
)
// @params TasksReq
// @router get /ep/admin/saga/v1/tasks/project
// @response TasksResp
func projectTasks(ctx *bm.Context) {
var (
req = &model.TasksReq{}
err error
)
if err = ctx.Bind(req); err != nil {
return
}
ctx.JSON(srv.MergeTasks(ctx, req))
}

View File

@@ -0,0 +1,23 @@
package http
import (
"go-common/app/admin/ep/saga/conf"
"go-common/app/admin/ep/saga/model"
bm "go-common/library/net/http/blademaster"
)
// @params Empty
// @router get /ep/admin/saga/v1/data/teams
// @response TeamInfoResp
func queryTeams(c *bm.Context) {
if _, err := getUsername(c); err != nil {
c.JSON(nil, err)
return
}
resp := &model.TeamInfoResp{
Department: conf.Conf.Property.DeInfo,
Business: conf.Conf.Property.BuInfo,
}
c.JSON(resp, nil)
}

View File

@@ -0,0 +1,34 @@
package http
import (
"go-common/library/ecode"
bm "go-common/library/net/http/blademaster"
)
const (
_sessUnKey = "username"
)
// @params EmptyReq
// @router get /ep/admin/saga/v1/user
// @response User
func queryUserInfo(ctx *bm.Context) {
var (
userName string
err error
)
if userName, err = getUsername(ctx); err != nil {
return
}
ctx.JSON(srv.UserInfo(userName), nil)
}
func getUsername(c *bm.Context) (string, error) {
if user, err := c.Request.Cookie(_sessUnKey); err == nil {
return user.Value, nil
}
if value, exist := c.Get(_sessUnKey); exist {
return value.(string), nil
}
return "", ecode.AccessKeyErr
}

View File

@@ -0,0 +1,126 @@
package http
import (
"go-common/app/admin/ep/saga/model"
bm "go-common/library/net/http/blademaster"
"go-common/library/net/http/blademaster/binding"
)
//queryContactLogs queryContactLogs
func queryContactLogs(c *bm.Context) {
v := &model.QueryContactLogRequest{}
if err := c.Bind(v); err != nil {
return
}
if err := v.Verify(); err != nil {
c.JSON(nil, err)
return
}
c.JSON(srv.QueryContactLogs(c, v))
}
//queryContactLogs queryContactLogs
func queryRedisdata(c *bm.Context) {
v := &model.QueryContactLogRequest{}
if err := c.Bind(v); err != nil {
return
}
if err := v.Verify(); err != nil {
c.JSON(nil, err)
return
}
c.JSON(srv.QueryContactLogs(c, v))
}
// SyncContacts sync the wechat contacts 更新企业微信列表用户信息和saga信息
func queryContacts(ctx *bm.Context) {
var (
req = &model.EmptyReq{}
v = &model.Pagination{}
err error
)
if err = ctx.Bind(req); err != nil {
ctx.JSON(nil, err)
return
}
if err = ctx.Bind(v); err != nil {
return
}
ctx.JSON(srv.QueryContacts(ctx, v))
}
func createWechat(ctx *bm.Context) {
var (
username string
err error
)
req := &model.CreateChatReq{}
if err = ctx.BindWith(req, binding.JSON); err != nil {
ctx.JSON(nil, err)
return
}
if username, err = getUsername(ctx); err != nil {
ctx.JSON(nil, err)
return
}
ctx.JSON(srv.CreateWechat(ctx, req, username))
}
func queryWechatCreateLog(ctx *bm.Context) {
var (
req = &model.Pagination{}
err error
user string
)
if err = ctx.Bind(req); err != nil {
return
}
if err = req.Verify(); err != nil {
ctx.JSON(nil, err)
return
}
if user, err = getUsername(ctx); err != nil {
ctx.JSON(nil, err)
return
}
ctx.JSON(srv.QueryWechatCreateLog(ctx, req, user))
}
func getWechat(ctx *bm.Context) {
ctx.JSON(srv.WechatParams(ctx, ctx.Request.Form.Get("chatid")))
}
func sendGroupWechat(ctx *bm.Context) {
req := &model.SendChatReq{}
if err := ctx.BindWith(req, binding.JSON); err != nil {
ctx.JSON(nil, err)
return
}
ctx.JSON(srv.SendGroupWechat(ctx, req))
}
func sendWechat(ctx *bm.Context) {
req := &model.SendMessageReq{}
if err := ctx.BindWith(req, binding.JSON); err != nil {
ctx.JSON(nil, err)
return
}
ctx.JSON(srv.SendWechat(ctx, req))
}
func updateWechat(ctx *bm.Context) {
req := &model.UpdateChatReq{}
if err := ctx.BindWith(req, binding.JSON); err != nil {
ctx.JSON(nil, err)
return
}
ctx.JSON(srv.UpdateWechat(ctx, req))
}
func syncWechatContacts(ctx *bm.Context) {
ctx.JSON(srv.SyncWechatContacts(ctx))
}