mirror of
https://github.com/OpenListTeam/OpenList.git
synced 2025-11-25 19:37:41 +08:00
fix(misskey): folderId format validation and root directory handling (#1647)
fix(misskey): Fix folderId format validation and root directory handling
This commit is contained in:
@@ -57,18 +57,22 @@ func setBody(body interface{}) base.ReqCallback {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func handleFolderId(dir model.Obj) interface{} {
|
func handleFolderId(dir model.Obj) interface{} {
|
||||||
if dir.GetID() == "" {
|
if isRootFolder(dir) {
|
||||||
return nil
|
return nil // Root folder doesn't need folderId
|
||||||
}
|
}
|
||||||
return dir.GetID()
|
return dir.GetID()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func isRootFolder(dir model.Obj) bool {
|
||||||
|
return dir.GetID() == ""
|
||||||
|
}
|
||||||
|
|
||||||
// API layer methods
|
// API layer methods
|
||||||
|
|
||||||
func (d *Misskey) getFiles(dir model.Obj) ([]model.Obj, error) {
|
func (d *Misskey) getFiles(dir model.Obj) ([]model.Obj, error) {
|
||||||
var files []MFile
|
var files []MFile
|
||||||
var body map[string]string
|
var body map[string]string
|
||||||
if dir.GetPath() != "/" {
|
if !isRootFolder(dir) {
|
||||||
body = map[string]string{"folderId": dir.GetID()}
|
body = map[string]string{"folderId": dir.GetID()}
|
||||||
} else {
|
} else {
|
||||||
body = map[string]string{}
|
body = map[string]string{}
|
||||||
@@ -85,7 +89,7 @@ func (d *Misskey) getFiles(dir model.Obj) ([]model.Obj, error) {
|
|||||||
func (d *Misskey) getFolders(dir model.Obj) ([]model.Obj, error) {
|
func (d *Misskey) getFolders(dir model.Obj) ([]model.Obj, error) {
|
||||||
var folders []MFolder
|
var folders []MFolder
|
||||||
var body map[string]string
|
var body map[string]string
|
||||||
if dir.GetPath() != "/" {
|
if !isRootFolder(dir) {
|
||||||
body = map[string]string{"folderId": dir.GetID()}
|
body = map[string]string{"folderId": dir.GetID()}
|
||||||
} else {
|
} else {
|
||||||
body = map[string]string{}
|
body = map[string]string{}
|
||||||
@@ -197,16 +201,24 @@ func (d *Misskey) put(ctx context.Context, dstDir model.Obj, stream model.FileSt
|
|||||||
Reader: stream,
|
Reader: stream,
|
||||||
UpdateProgress: up,
|
UpdateProgress: up,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// Build form data, only add folderId if not root folder
|
||||||
|
formData := map[string]string{
|
||||||
|
"name": stream.GetName(),
|
||||||
|
"comment": "",
|
||||||
|
"isSensitive": "false",
|
||||||
|
"force": "false",
|
||||||
|
}
|
||||||
|
|
||||||
|
folderId := handleFolderId(dstDir)
|
||||||
|
if folderId != nil {
|
||||||
|
formData["folderId"] = folderId.(string)
|
||||||
|
}
|
||||||
|
|
||||||
req := base.RestyClient.R().
|
req := base.RestyClient.R().
|
||||||
SetContext(ctx).
|
SetContext(ctx).
|
||||||
SetFileReader("file", stream.GetName(), reader).
|
SetFileReader("file", stream.GetName(), reader).
|
||||||
SetFormData(map[string]string{
|
SetFormData(formData).
|
||||||
"folderId": handleFolderId(dstDir).(string),
|
|
||||||
"name": stream.GetName(),
|
|
||||||
"comment": "",
|
|
||||||
"isSensitive": "false",
|
|
||||||
"force": "false",
|
|
||||||
}).
|
|
||||||
SetResult(&file).
|
SetResult(&file).
|
||||||
SetAuthToken(d.AccessToken)
|
SetAuthToken(d.AccessToken)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user