go-passbolt/helper/folder.go
2021-09-16 14:18:16 +02:00

56 lines
1.4 KiB
Go

package helper
import (
"context"
"fmt"
"github.com/speatzle/go-passbolt/api"
)
// CreateFolder Creates a new Folder
func CreateFolder(ctx context.Context, c *api.Client, folderParentID, name string) (string, error) {
f, err := c.CreateFolder(ctx, api.Folder{
Name: name,
FolderParentID: folderParentID,
})
if err != nil {
return "", fmt.Errorf("Creating Folder: %w", err)
}
return f.ID, nil
}
// GetFolder Gets a Folder
func GetFolder(ctx context.Context, c *api.Client, folderID string) (string, string, error) {
f, err := c.GetFolder(ctx, folderID, nil)
if err != nil {
return "", "", fmt.Errorf("Getting Folder: %w", err)
}
return f.FolderParentID, f.Name, nil
}
// UpdateFolder Updates a Folder
func UpdateFolder(ctx context.Context, c *api.Client, folderID, name string) error {
_, err := c.UpdateFolder(ctx, folderID, api.Folder{Name: name})
if err != nil {
return fmt.Errorf("Updating Folder: %w", err)
}
return err
}
// DeleteFolder Deletes a Folder
func DeleteFolder(ctx context.Context, c *api.Client, folderID string) error {
err := c.DeleteFolder(ctx, folderID)
if err != nil {
return fmt.Errorf("Deleting Folder: %w", err)
}
return nil
}
// MoveFolder Moves a Folder into a Folder
func MoveFolder(ctx context.Context, c *api.Client, folderID, folderParentID string) error {
err := c.MoveFolder(ctx, folderID, folderParentID)
if err != nil {
return fmt.Errorf("Moving Folder: %w", err)
}
return nil
}