This commit is contained in:
2022-01-19 19:39:04 +08:00
parent 61c2b8264d
commit ab78141e7d
36 changed files with 1939 additions and 211 deletions
@@ -4,11 +4,24 @@ import (
"fmt"
"git.icechen.cn/monorepo/backend/app/brahma/api/murder/internal/error_process"
"git.icechen.cn/monorepo/backend/app/brahma/api/murder/internal/model"
"git.icechen.cn/monorepo/backend/app/brahma/api/murder/internal/pkg"
"git.icechen.cn/monorepo/backend/app/brahma/api/murder/internal/service"
"git.icechen.cn/monorepo/backend/pkg/api"
"git.icechen.cn/monorepo/backend/pkg/proto/brahma/murders"
"github.com/go-playground/validator/v10"
"github.com/gofiber/fiber/v2"
ctxLogger "github.com/luizsuper/ctxLoggers"
"github.com/pkg/errors"
"go.uber.org/zap"
"google.golang.org/grpc"
"log"
"strconv"
"time"
)
var (
pageIsNotInt = api.WarpFError(errors.New("page 参数错误"))
limitIsNotInt = api.WarpFError(errors.New("limit 参数错误"))
)
func GetScriptsH(ctx *fiber.Ctx) error {
@@ -76,23 +89,56 @@ func DeleteScriptsH(ctx *fiber.Ctx) error {
return ctx.JSON(success(nil))
}
//func HelloWorld() error {
// // Set up a connection to the server.
// conn, err := grpc.Dial("localhost:3000", grpc.WithInsecure(), grpc.WithBlock())
// if err != nil {
// log.Fatalf("did not connect: %v", err)
// }
// defer conn.Close()
// c := murder.NewHelloWorldClient(conn)
//
// // Contact the server and print out its response.
// ctx, cancel := context.WithTimeout(context.Background(), time.Second)
// defer cancel()
// r, err := c.Login(ctx, &murder.HelloRequest{Code: "lht"})
//
// if err != nil {
// log.Fatalf("could not greet: %v", err)
// }
// log.Printf("Greeting: %s", r.Token)
// return nil
//}
func GetScriptApi(ctx *fiber.Ctx) error {
//todo:调通中间层
//todo:换成服务
conn, err := grpc.Dial("localhost:3000", grpc.WithInsecure(), grpc.WithBlock())
if err != nil {
log.Fatalf("did not connect: %v", err)
}
outgoingContext, cancelFunc := pkg.TransFiberCtx2NewOutgoingContext(ctx, 3*time.Second)
defer conn.Close()
defer cancelFunc()
c := murders.NewMurdersClient(conn)
page := ctx.Query("page", "1")
limit := ctx.Query("size", "10")
p, err := strconv.Atoi(page)
if err != nil {
ctxLogger.Error(ctx.UserContext(), pageIsNotInt.Error(), zap.String("page", page))
return pageIsNotInt
}
l, err := strconv.Atoi(limit)
if err != nil {
ctxLogger.Error(ctx.UserContext(), limitIsNotInt.Error(), zap.String("limit", limit))
return pageIsNotInt
}
validate := validator.New()
err = validate.Var(p, "gte=0")
if err != nil {
ctxLogger.Error(ctx.UserContext(), limitIsNotInt.Error(), zap.String("limit", limit))
return api.WarpFError(err)
}
err = validate.Var(l, "gte=-1")
if err != nil {
ctxLogger.Error(ctx.UserContext(), limitIsNotInt.Error(), zap.String("limit", limit))
return api.WarpFError(err)
}
p64 := int64(p)
l64 := int64(l)
condition := murders.QueryCondition{
Page: &p64,
Size: &l64,
QueryMap: nil,
}
scripts, err := c.GetScripts(outgoingContext, &condition)
if err != nil {
return api.WarpFError(err)
}
return ctx.JSON(scripts)
}