import (
"fmt"
+ "os"
"path/filepath"
"strings"
if i > 15 {
i = 15
}
- return uuid.NewV1().String()[:14] + f.st.MyID[:i] + "_" + suffix
+ uuid := uuid.NewV1().String()[:14] + f.st.MyID[:i]
+ if len(suffix) > 0 {
+ uuid += "_" + suffix
+ }
+ return uuid
}
// Add a new folder
f.fConfig = cfg
- f.fConfig.DataCloudSync.BuilderSThgID = f.st.MyID // FIXME - should be removed after local ST config rework
-
// Update Syncthing folder
- // (expect if status is ErrorConfig)
+ // (except if status is ErrorConfig)
// TODO: add cache to avoid multiple requests on startup
if f.fConfig.Status != folder.StatusErrorConfig {
id, err := f.st.FolderChange(f.fConfig)
// Remove a folder
func (f *STFolder) Remove() error {
- return f.st.FolderDelete(f.stfConfig.ID)
+ err := f.st.FolderDelete(f.stfConfig.ID)
+
+ // Delete folder on server side
+ err2 := os.RemoveAll(f.GetFullPath(""))
+
+ if err != nil {
+ return err
+ }
+ return err2
+}
+
+// Update update some fields of a folder
+func (f *STFolder) Update(cfg folder.FolderConfig) (*folder.FolderConfig, error) {
+ if f.fConfig.ID != cfg.ID {
+ return nil, fmt.Errorf("Invalid id")
+ }
+ f.fConfig = cfg
+ return &f.fConfig, nil
}
// RegisterEventChange requests registration for folder event change