diff --git a/services/res-proc/client.go b/services/res-proc/client.go new file mode 100644 index 0000000..4c87bcb --- /dev/null +++ b/services/res-proc/client.go @@ -0,0 +1,30 @@ +package mkt2 + +import ( + "golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk" + "golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests" +) + +const ( + VERSION = "2026-02-03" +) + +var HOST = requests.Host{ + Default: "res-proc", +} + +type Client struct { + sdk.Client +} + +func NewClient() (client *Client, err error) { + client = new(Client) + err = client.Init() + return +} + +func (c *Client) AddTask(request *AddTaskRequest) (response *AddTaskResponse, err error) { + response = CreateAddTaskResponse() + err = c.DoAction(request, response) + return +} diff --git a/services/res-proc/client_test.go b/services/res-proc/client_test.go new file mode 100644 index 0000000..2f8c32a --- /dev/null +++ b/services/res-proc/client_test.go @@ -0,0 +1,31 @@ +package mkt2 + +import ( + "fmt" + "golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/utils/random" + "testing" +) + +// TestAddResourceToVdbTask 添加素材上传向量库逻辑 +func TestAddResourceToVdbTask(t *testing.T) { + client, err := NewClient() + if err != nil { + t.Error("NewClient error:", err) + return + } + request := CreateResourceToVdbTaskRequest(ResourceToVdbTaskParam{ + MaxRetry: 0, + TraceId: random.StrRandom(10), + Payload: ResourceToVdbPayload{ + ResourceURL: "https://resouce-mkt.gaore.com/material/video/2021-09/01/2124474664246343/6eb5621f8ff2de8f64d4aefa3db4f551.mp4", + MD5: "", + }, + }) + response, err := client.AddTask(request) + if err != nil { + t.Error("MaterialTaskNotify error:", err) + return + } + t.Log("response:", response) + fmt.Println("") +} diff --git a/services/res-proc/task.go b/services/res-proc/task.go new file mode 100644 index 0000000..0675b01 --- /dev/null +++ b/services/res-proc/task.go @@ -0,0 +1,83 @@ +package mkt2 + +import ( + "golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests" + "golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses" +) + +type AddTaskRequest struct { + *requests.JsonRequest + TaskType string `position:"Json" field:"task_type"` + MaxRetry int64 `position:"Json" field:"max_retry"` + TraceId string `position:"Json" field:"trace_id"` + Payload any `position:"Json" field:"payload"` + Extra any `position:"Json" field:"extra"` +} + +type AddTaskResponseData struct { + TaskId int64 `json:"task_id"` +} +type AddTaskResponse struct { + *responses.BaseResponse + Data AddTaskResponseData `json:"data"` + Code int `json:"code"` + Msg string `json:"msg"` + Err string `json:"err"` + TraceId string `json:"trace_id"` +} + +type AddTaskParam struct { + TaskType string `position:"Json" field:"task_type"` + MaxRetry int64 `position:"Json" field:"max_retry"` + TraceId string `position:"Json" field:"trace_id"` + Payload any `position:"Json" field:"payload"` + Extra any `position:"Json" field:"extra"` +} + +func CreateAddTaskRequest(param AddTaskParam) (req *AddTaskRequest) { + req = &AddTaskRequest{ + JsonRequest: &requests.JsonRequest{}, + TaskType: param.TaskType, + MaxRetry: param.MaxRetry, + TraceId: param.TraceId, + Payload: param.Payload, + Extra: param.Extra, + } + req.InitWithApiInfo(HOST, VERSION, "/api/task/add") + req.Method = requests.POST + return +} + +func CreateAddTaskResponse() (response *AddTaskResponse) { + response = &AddTaskResponse{ + BaseResponse: &responses.BaseResponse{}, + } + return +} + +// ResourceToVdbPayload +//素材上传向量库任务playLod + +const TaskTypeResourceToVdb = "resource_to_vdb" + +type ResourceToVdbPayload struct { + ResourceURL string `json:"resource_url"` // 资源 URL + MD5 string `json:"md5"` // 资源 MD5 +} + +type ResourceToVdbTaskParam struct { + MaxRetry int64 + TraceId string + Payload ResourceToVdbPayload + Extra map[string]any +} + +func CreateResourceToVdbTaskRequest(param ResourceToVdbTaskParam) (req *AddTaskRequest) { + return CreateAddTaskRequest(AddTaskParam{ + TaskType: TaskTypeResourceToVdb, + MaxRetry: param.MaxRetry, + TraceId: param.TraceId, + Payload: param.Payload, + Extra: param.Extra, + }) +}