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,41 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = [
"http.go",
"task.go",
],
importpath = "go-common/app/service/main/push-strategy/http",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = [
"//app/service/main/push-strategy/conf:go_default_library",
"//app/service/main/push-strategy/service:go_default_library",
"//app/service/main/push/model: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",
"//library/time: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,41 @@
package http
import (
"go-common/app/service/main/push-strategy/conf"
"go-common/app/service/main/push-strategy/service"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
"go-common/library/net/http/blademaster/middleware/verify"
)
var (
idfSrv *verify.Verify
srv *service.Service
)
// Init .
func Init(c *conf.Config, svc *service.Service) {
srv = svc
idfSrv = verify.New(c.Verify)
engine := bm.DefaultServer(c.HTTPServer)
route(engine)
if err := engine.Start(); err != nil {
log.Error("engine.Start() error(%v)", err)
panic(err)
}
}
func route(e *bm.Engine) {
e.Ping(ping)
g := e.Group("/x/internal/push-strategy", idfSrv.Verify)
{
g.POST("/task/add", addTask)
}
}
func ping(ctx *bm.Context) {
if err := srv.Ping(ctx); err != nil {
ctx.Error = err
ctx.AbortWithStatus(503)
}
}

View File

@@ -0,0 +1,107 @@
package http
import (
"net/url"
"strconv"
"strings"
"time"
pushmdl "go-common/app/service/main/push/model"
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
xtime "go-common/library/time"
)
func addTask(c *bm.Context) {
var (
id int64
err error
req = c.Request
auth = req.Header.Get("Authorization")
)
req.ParseMultipartForm(500 * 1024 * 1024) // 500M
appID, _ := strconv.ParseInt(req.FormValue("app_id"), 10, 64)
if appID < 1 {
log.Error("app_id is wrong: %s", req.FormValue("app_id"))
c.JSON(nil, ecode.RequestErr)
return
}
businessID, _ := strconv.ParseInt(req.FormValue("business_id"), 10, 64)
if businessID < 1 {
log.Error("business_id is wrong: %s", req.FormValue("business_id"))
c.JSON(nil, ecode.RequestErr)
return
}
platform := req.FormValue("platform")
am, err := url.ParseQuery(auth)
if err != nil {
log.Error("parse Authorization(%s) error(%v)", auth, err)
c.JSON(nil, ecode.RequestErr)
return
}
token := am.Get("token")
if token == "" {
log.Error("token is empty")
c.JSON(nil, ecode.RequestErr)
return
}
alertTitle := req.FormValue("alert_title")
alertBody := req.FormValue("alert_body")
if alertBody == "" {
log.Error("alert_body is empty")
c.JSON(nil, ecode.RequestErr)
return
}
mids := req.FormValue("mids")
if mids == "" {
log.Error("mids is empty")
c.JSON(nil, ecode.RequestErr)
return
}
linkType, _ := strconv.Atoi(req.FormValue("link_type"))
if linkType < 1 {
log.Error("link_type is wrong: %s", req.FormValue("link_type"))
c.JSON(nil, ecode.RequestErr)
return
}
linkValue := req.FormValue("link_value")
expireTime, _ := strconv.ParseInt(req.FormValue("expire_time"), 10, 64)
if expireTime == 0 {
expireTime = time.Now().Add(3 * 24 * time.Hour).Unix()
}
pushTime, _ := strconv.ParseInt(req.FormValue("push_time"), 10, 64)
if pushTime == 0 {
pushTime = time.Now().Unix()
}
passThrough, _ := strconv.Atoi(req.FormValue("pass_throught"))
builds := req.FormValue("builds")
group := req.FormValue("group")
uuid := req.FormValue("uuid")
imageURL := req.FormValue("image_url")
task := &pushmdl.Task{
Job: pushmdl.JobName(time.Now().UnixNano(), alertBody, linkValue, group),
Type: pushmdl.TaskTypeStrategyMid,
APPID: appID,
BusinessID: businessID,
Platform: pushmdl.SplitInts(platform),
Title: alertTitle,
Summary: alertBody,
LinkType: int8(linkType),
LinkValue: linkValue,
Build: pushmdl.ParseBuild(builds),
PassThrough: passThrough,
PushTime: xtime.Time(pushTime),
ExpireTime: xtime.Time(expireTime),
Status: pushmdl.TaskStatusPretreatmentPrepared,
Group: group,
ImageURL: imageURL,
Extra: &pushmdl.TaskExtra{Group: group},
}
log.Info("http add task(%d) uuid(%s) business(%d) link_value(%s) mids(%d)", task.Job, uuid, task.BusinessID, task.LinkValue, len(strings.Split(mids, ",")))
if id, err = srv.AddTask(c, uuid, token, task, mids); err != nil {
c.JSON(nil, err)
return
}
c.JSON(id, nil)
}