Skip to content

Commit 3989d35

Browse files
authored
fix(misskey): folderId format validation and root directory handling (#1647)
fix(misskey): Fix folderId format validation and root directory handling
1 parent 72e2ae1 commit 3989d35

File tree

1 file changed

+23
-11
lines changed

1 file changed

+23
-11
lines changed

drivers/misskey/util.go

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -57,18 +57,22 @@ func setBody(body interface{}) base.ReqCallback {
5757
}
5858

5959
func handleFolderId(dir model.Obj) interface{} {
60-
if dir.GetID() == "" {
61-
return nil
60+
if isRootFolder(dir) {
61+
return nil // Root folder doesn't need folderId
6262
}
6363
return dir.GetID()
6464
}
6565

66+
func isRootFolder(dir model.Obj) bool {
67+
return dir.GetID() == ""
68+
}
69+
6670
// API layer methods
6771

6872
func (d *Misskey) getFiles(dir model.Obj) ([]model.Obj, error) {
6973
var files []MFile
7074
var body map[string]string
71-
if dir.GetPath() != "/" {
75+
if !isRootFolder(dir) {
7276
body = map[string]string{"folderId": dir.GetID()}
7377
} else {
7478
body = map[string]string{}
@@ -85,7 +89,7 @@ func (d *Misskey) getFiles(dir model.Obj) ([]model.Obj, error) {
8589
func (d *Misskey) getFolders(dir model.Obj) ([]model.Obj, error) {
8690
var folders []MFolder
8791
var body map[string]string
88-
if dir.GetPath() != "/" {
92+
if !isRootFolder(dir) {
8993
body = map[string]string{"folderId": dir.GetID()}
9094
} else {
9195
body = map[string]string{}
@@ -197,16 +201,24 @@ func (d *Misskey) put(ctx context.Context, dstDir model.Obj, stream model.FileSt
197201
Reader: stream,
198202
UpdateProgress: up,
199203
})
204+
205+
// Build form data, only add folderId if not root folder
206+
formData := map[string]string{
207+
"name": stream.GetName(),
208+
"comment": "",
209+
"isSensitive": "false",
210+
"force": "false",
211+
}
212+
213+
folderId := handleFolderId(dstDir)
214+
if folderId != nil {
215+
formData["folderId"] = folderId.(string)
216+
}
217+
200218
req := base.RestyClient.R().
201219
SetContext(ctx).
202220
SetFileReader("file", stream.GetName(), reader).
203-
SetFormData(map[string]string{
204-
"folderId": handleFolderId(dstDir).(string),
205-
"name": stream.GetName(),
206-
"comment": "",
207-
"isSensitive": "false",
208-
"force": "false",
209-
}).
221+
SetFormData(formData).
210222
SetResult(&file).
211223
SetAuthToken(d.AccessToken)
212224

0 commit comments

Comments
 (0)