Esempio n. 1
0
// RenameCommand renames a Note
func RenameCommand(c *cli.Context, i storage.Impl) (nName string, newName string, err error) {
	nName, err = NoteName(c)
	if err != nil {
		return nName, newName, err
	}

	n, err := i.LoadNote(nName)
	if err != nil {
		return nName, newName, err
	}

	reader := bufio.NewReader(os.Stdin)
	fmt.Print(fmt.Sprintf("Rename note '%s' to: ", n.Name))
	newName, err = reader.ReadString('\n')
	if err != nil {
		return nName, newName, err
	}

	newName = strings.Trim(newName, "\n")

	if newName == "" {
		return nName, newName, errors.New("Note name can't be blank")
	}

	if i.NoteExists(newName) == true {
		return nName, newName, fmt.Errorf("Note '%s' already exists", newName)
	}

	if err = i.RenameNote(n.ID, newName); err != nil {
		return nName, newName, fmt.Errorf("Failed to rename note '%s' to '%s'.", nName, newName)
	}

	return nName, newName, nil
}