func rename(pfc *PFContext) (interface{}, error) { r := pfc.R title := r.PostFormValue("title") if title == "" { return nil, NewReadableError(_l("Name not specified"), nil) } ref, err := storage.SubscriptionRefFromJSON(pfc.UserID, r.PostFormValue("ref")) if err != nil { return nil, err } if ref.IsSubscriptionExplicit() { if exists, err := storage.SubscriptionExists(pfc.C, ref); err != nil { return nil, err } else if !exists { return nil, NewReadableError(_l("Subscription not found"), nil) } if err := storage.RenameSubscription(pfc.C, ref, title); err != nil { return nil, NewReadableError(_l("Error renaming subscription"), &err) } } else { if exists, err := storage.FolderExists(pfc.C, ref.FolderRef); err != nil { return nil, err } else if !exists { return nil, NewReadableError(_l("Folder not found"), nil) } if isDupe, err := storage.IsFolderDuplicate(pfc.C, pfc.UserID, title); err != nil { return nil, err } else if isDupe { return nil, NewReadableError(_l("A folder with that name already exists"), nil) } if err := storage.RenameFolder(pfc.C, ref.FolderRef, title); err != nil { return nil, NewReadableError(_l("Error renaming folder"), &err) } } return storage.NewUserSubscriptions(pfc.C, pfc.UserID) }
func createFolder(pfc *PFContext) (interface{}, error) { r := pfc.R title := r.PostFormValue("folderName") if title == "" { return nil, NewReadableError(_l("Missing folder name"), nil) } if utf8.RuneCountInString(title) > 200 { return nil, NewReadableError(_l("Folder name is too long"), nil) } if exists, err := storage.IsFolderDuplicate(pfc.C, pfc.UserID, title); err != nil { return nil, err } else if exists { return nil, NewReadableError(_l("A folder with that name already exists"), nil) } if _, err := storage.CreateFolder(pfc.C, pfc.UserID, title); err != nil { return nil, NewReadableError(_l("An error occurred while adding the new folder"), &err) } return storage.NewUserSubscriptions(pfc.C, pfc.UserID) }