1 Star 0 Fork 0

pax / svc

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
svcHandler.go 3.00 KB
一键复制 编辑 原始数据 按行查看 历史
pax 提交于 2024-01-17 09:05 . 修改依赖
package handler
import (
"context"
"gitee.com/genj/common"
"gitee.com/genj/svc/domain/model"
"gitee.com/genj/svc/domain/service"
svc "gitee.com/genj/svc/proto/svc"
log "github.com/asim/go-micro/v3/logger"
"strconv"
)
type SvcHandler struct {
//注意这里的类型是 ISvcDataService 接口类型
SvcDataService service.ISvcDataService
}
// Call is a single request handler called via client.Call or the generated client code
func (e *SvcHandler) AddSvc(ctx context.Context, info *svc.SvcInfo, rsp *svc.Response) error {
log.Info("Received *svc.AddSvc request")
svcModel := &model.Svc{}
//数据类型转换
if err := common.SwapTo(info, svcModel); err != nil {
common.Error(err)
return err
}
//到k8s中创建服务
if err := e.SvcDataService.CreateSvcToK8s(info); err != nil {
common.Error(err)
return err
} else {
svcID, err := e.SvcDataService.AddSvc(svcModel)
if err != nil {
//需要自行实现k8s中删除操作
common.Error(err)
return err
}
common.Info("Svc添加数据成功ID号为:" + strconv.FormatInt(svcID, 10) + "")
rsp.Msg = "Svc 添加数据成功ID号为:" + strconv.FormatInt(svcID, 10)
}
return nil
}
// 删除服务
func (e *SvcHandler) DeleteSvc(ctx context.Context, req *svc.SvcId, rsp *svc.Response) error {
log.Info("Received *svc.DeleteSvc request")
service, err := e.SvcDataService.FindSvcByID(req.Id)
if err != nil {
common.Error(err)
return err
}
if err := e.SvcDataService.DeleteFromK8s(service); err != nil {
common.Error(err)
return err
}
return nil
}
func (e *SvcHandler) UpdateSvc(ctx context.Context, req *svc.SvcInfo, rsp *svc.Response) error {
log.Info("Received *svc.UpdateSvc request")
//先更新k8s里面的数据
if err := e.SvcDataService.UpdateSvcToK8s(req); err != nil {
common.Error(err)
return err
}
//查找数据库中的svc
service, err := e.SvcDataService.FindSvcByID(req.Id)
if err != nil {
common.Error(err)
return err
}
//数据类型转换
if err := common.SwapTo(req, service); err != nil {
common.Error(err)
return err
}
//更新到数据库中
if err := e.SvcDataService.UpdateSvc(service); err != nil {
common.Error(err)
return err
}
return nil
}
// 服务查找
func (e *SvcHandler) FindSvcByID(ctx context.Context, req *svc.SvcId, rsp *svc.SvcInfo) error {
log.Info("Received *svc.FindSvcByID request")
svcModel, err := e.SvcDataService.FindSvcByID(req.Id)
if err != nil {
common.Error(err)
return err
}
if err := common.SwapTo(svcModel, rsp); err != nil {
common.Error(err)
return err
}
return nil
}
// 查找所有服务
func (e *SvcHandler) FindAllSvc(ctx context.Context, req *svc.FindAll, rsp *svc.AllSvc) error {
log.Info("Received *svc.FindAllSvc request")
allSvc, err := e.SvcDataService.FindAllSvc()
if err != nil {
common.Error(err)
return err
}
//整理格式
for _, v := range allSvc {
svcInfo := &svc.SvcInfo{}
if err := common.SwapTo(v, svcInfo); err != nil {
common.Error(err)
return err
}
rsp.SvcInfo = append(rsp.SvcInfo, svcInfo)
}
return nil
}
Go
1
https://gitee.com/genj/svc.git
git@gitee.com:genj/svc.git
genj
svc
svc
3e77f0503bcb

搜索帮助