jimmyyem 8 месяцев назад
Родитель
Сommit
5e6c56f7a3

+ 8 - 0
desc/wechat/agent.api

@@ -268,6 +268,10 @@ type (
 		// Indexes | 索引
 		//Indexes []IndexSingle `json:"indexes,optional"`
 	}
+
+	DeleteDataReq {
+		ID *string `json:"id" validate:"required"`
+	}
 )
 
 @server(
@@ -320,4 +324,8 @@ service Wechat {
 	// Update data | 修改data
 	@handler updateAgentData
 	post /agent/data/update (UpdateDataInfoReq) returns (BaseDataInfo)
+
+	// Delete data | 删除data
+	@handler deleteAgentData
+	post /agent/data/delete (DeleteDataReq) returns (BaseDataInfo)
 }

+ 44 - 0
internal/handler/agent/delete_agent_data_handler.go

@@ -0,0 +1,44 @@
+package agent
+
+import (
+	"net/http"
+
+	"github.com/zeromicro/go-zero/rest/httpx"
+
+	"wechat-api/internal/logic/agent"
+	"wechat-api/internal/svc"
+	"wechat-api/internal/types"
+)
+
+// swagger:route post /agent/data/delete agent DeleteAgentData
+//
+// Delete data | 删除data
+//
+// Delete data | 删除data
+//
+// Parameters:
+//  + name: body
+//    require: true
+//    in: body
+//    type: DeleteDataReq
+//
+// Responses:
+//  200: BaseDataInfo
+
+func DeleteAgentDataHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
+	return func(w http.ResponseWriter, r *http.Request) {
+		var req types.DeleteDataReq
+		if err := httpx.Parse(r, &req, true); err != nil {
+			httpx.ErrorCtx(r.Context(), w, err)
+			return
+		}
+
+		l := agent.NewDeleteAgentDataLogic(r.Context(), svcCtx)
+		resp, err := l.DeleteAgentData(&req)
+		if err != nil {
+			httpx.ErrorCtx(r.Context(), w, err)
+		} else {
+			httpx.OkJsonCtx(r.Context(), w, resp)
+		}
+	}
+}

+ 5 - 0
internal/handler/routes.go

@@ -176,6 +176,11 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) {
 					Path:    "/agent/data/update",
 					Handler: agent.UpdateAgentDataHandler(serverCtx),
 				},
+				{
+					Method:  http.MethodPost,
+					Path:    "/agent/data/delete",
+					Handler: agent.DeleteAgentDataHandler(serverCtx),
+				},
 			}...,
 		),
 		rest.WithJwt(serverCtx.Config.Auth.AccessSecret),

+ 43 - 0
internal/logic/agent/delete_agent_data_logic.go

@@ -0,0 +1,43 @@
+package agent
+
+import (
+	"context"
+	"github.com/suyuan32/simple-admin-common/msg/errormsg"
+	"github.com/zeromicro/go-zero/core/errorx"
+	"wechat-api/hook/fastgpt"
+
+	"wechat-api/internal/svc"
+	"wechat-api/internal/types"
+
+	"github.com/zeromicro/go-zero/core/logx"
+)
+
+type DeleteAgentDataLogic struct {
+	logx.Logger
+	ctx    context.Context
+	svcCtx *svc.ServiceContext
+}
+
+func NewDeleteAgentDataLogic(ctx context.Context, svcCtx *svc.ServiceContext) *DeleteAgentDataLogic {
+	return &DeleteAgentDataLogic{
+		Logger: logx.WithContext(ctx),
+		ctx:    ctx,
+		svcCtx: svcCtx}
+}
+
+func (l *DeleteAgentDataLogic) DeleteAgentData(req *types.DeleteDataReq) (*types.BaseDataInfo, error) {
+	resp, err := fastgpt.DeleteData(*req.ID)
+	if err != nil {
+		return nil, errorx.NewInvalidArgumentError("fastgpt create data failed " + err.Error())
+	}
+
+	if resp.Code == 200 {
+		return &types.BaseDataInfo{
+			Code: 0,
+			Msg:  errormsg.Success,
+			Data: "",
+		}, nil
+	}
+
+	return nil, errorx.NewInvalidArgumentError(resp.StatusText)
+}

+ 6 - 0
internal/types/types.go

@@ -645,6 +645,12 @@ type UpdateDataInfoReq struct {
 	A *string `json:"a" validate:"required"`
 }
 
+// swagger:model DeleteDataReq
+type DeleteDataReq struct {
+	// required : true
+	ID *string `json:"id" validate:"required"`
+}
+
 type LoginQRStatus struct {
 	// 登陆二维码
 	QRCode string `json:"qRCode,optional"`