feat: add upload logics

This commit is contained in:
Rogee
2024-09-04 13:08:22 +08:00
parent a035a63f52
commit 06f4fed3ed
4 changed files with 97 additions and 34 deletions

View File

@@ -22,35 +22,22 @@ type Memo struct {
Uid string `json:"uid,omitempty"` // resp
}
// Host string
// Token string
type PostData struct {
Host string
Token string
Content string
ChannelID int64
ChannelTitle string
Resources []Resource
}
var client *req.Client
func InitClient(host, token string) {
client = req.C().EnableInsecureSkipVerify().SetBaseURL(host).SetCommonBearerAuthToken(token)
}
func Post(pd PostData) error {
client := req.C().EnableInsecureSkipVerify().SetBaseURL(pd.Host).SetCommonBearerAuthToken(pd.Token)
resources := []Resource{}
for _, res := range pd.Resources {
var result Resource
resp, err := client.R().SetSuccessResult(&result).SetBodyJsonMarshal(res).Post("/api/v1/resources")
if err != nil {
return errors.Wrap(err, "post resource failed")
}
if !resp.IsSuccessState() {
return errors.New("post memo failed, body: " + resp.String())
}
resources = append(resources, result)
}
var createMemoResp Memo
resp, err := client.R().
@@ -73,7 +60,7 @@ func Post(pd PostData) error {
}
resp, err = client.R().
SetBodyJsonMarshal(Resources{Resources: resources}).
SetBodyJsonMarshal(Resources{Resources: pd.Resources}).
Patch(fmt.Sprintf("/api/v1/%s/resources", createMemoResp.Name))
if err != nil {
return errors.Wrap(err, "patch resources failed")
@@ -85,3 +72,18 @@ func Post(pd PostData) error {
return nil
}
func Upload(res Resource) (Resource, error) {
var result Resource
resp, err := client.R().SetSuccessResult(&result).SetBodyJsonMarshal(res).Post("/api/v1/resources")
if err != nil {
return Resource{}, errors.Wrap(err, "post resource failed")
}
if !resp.IsSuccessState() {
return Resource{}, errors.New("post memo failed, body: " + resp.String())
}
return res, nil
}