interfaces

package
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 15, 2026 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type APIClient

type APIClient interface {
	// Authentication
	GetAuthorizedUser(ctx context.Context) (*clickup.User, error)
	GetAuthorizedTeams(ctx context.Context) ([]clickup.Team, error)

	// Workspace operations
	GetWorkspaces(ctx context.Context) ([]clickup.Team, error)

	// Space operations
	GetSpaces(ctx context.Context, teamID string) ([]clickup.Space, error)
	GetSpace(ctx context.Context, spaceID string) (*clickup.Space, error)
	CreateSpace(ctx context.Context, teamID string, request *clickup.SpaceRequest) (*clickup.Space, error)
	UpdateSpace(ctx context.Context, spaceID string, request *clickup.SpaceRequest) (*clickup.Space, error)
	DeleteSpace(ctx context.Context, spaceID string) error

	// Folder operations
	GetFolders(ctx context.Context, spaceID string) ([]clickup.Folder, error)
	GetFolder(ctx context.Context, folderID string) (*clickup.Folder, error)
	CreateFolder(ctx context.Context, spaceID string, request *clickup.FolderRequest) (*clickup.Folder, error)
	UpdateFolder(ctx context.Context, folderID string, request *clickup.FolderRequest) (*clickup.Folder, error)
	DeleteFolder(ctx context.Context, folderID string) error

	// List operations
	GetLists(ctx context.Context, folderID string) ([]clickup.List, error)
	GetFolderlessLists(ctx context.Context, spaceID string) ([]clickup.List, error)
	GetList(ctx context.Context, listID string) (*clickup.List, error)
	CreateList(ctx context.Context, folderID string, request *clickup.ListRequest) (*clickup.List, error)
	CreateFolderlessList(ctx context.Context, spaceID string, request *clickup.ListRequest) (*clickup.List, error)
	UpdateList(ctx context.Context, listID string, request *clickup.ListRequest) (*clickup.List, error)
	DeleteList(ctx context.Context, listID string) error

	// Task operations
	GetTasks(ctx context.Context, listID string, options *TaskQueryOptions) ([]clickup.Task, error)
	GetTask(ctx context.Context, taskID string) (*clickup.Task, error)
	CreateTask(ctx context.Context, listID string, options *TaskCreateOptions) (*clickup.Task, error)
	UpdateTask(ctx context.Context, taskID string, options *TaskUpdateOptions) (*clickup.Task, error)
	DeleteTask(ctx context.Context, taskID string) error

	// User operations
	GetCurrentUser(ctx context.Context) (*clickup.User, error)
	GetWorkspaceMembers(ctx context.Context, workspaceID string) ([]clickup.TeamUser, error)

	// Member operations
	GetMembers(ctx context.Context, listID string) ([]clickup.Member, error)

	// Comment operations
	GetTaskComments(ctx context.Context, taskID string) ([]clickup.Comment, error)
	CreateTaskComment(ctx context.Context, taskID string, text string, assignee string, notifyAll bool) (*clickup.CreateCommentResponse, error)
	UpdateTaskComment(ctx context.Context, commentID string, text string, resolved bool) error
	DeleteTaskComment(ctx context.Context, commentID string) error

	// Custom field operations
	GetCustomFields(ctx context.Context, listID string) ([]clickup.CustomField, error)
	SetCustomFieldValue(ctx context.Context, taskID string, fieldID string, value map[string]interface{}) error

	// View operations
	GetViews(ctx context.Context, listID string) ([]clickup.View, error)
	GetView(ctx context.Context, viewID string) (*clickup.View, error)

	// Goal operations
	GetGoals(ctx context.Context, teamID string, includeCompleted bool) ([]clickup.Goal, []clickup.GoalFolder, error)
	GetGoal(ctx context.Context, goalID string) (*clickup.Goal, error)
	CreateGoal(ctx context.Context, teamID string, request *clickup.CreateGoalRequest) (*clickup.Goal, error)
	UpdateGoal(ctx context.Context, goalID string, request *clickup.UpdateGoalRequest) (*clickup.Goal, error)
	DeleteGoal(ctx context.Context, goalID string) error

	// Webhook operations
	GetWebhooks(ctx context.Context, teamID string) ([]clickup.Webhook, error)
	CreateWebhook(ctx context.Context, teamID string, request *clickup.WebhookRequest) (*clickup.Webhook, error)
	UpdateWebhook(ctx context.Context, webhookID string, request *clickup.WebhookRequest) (*clickup.Webhook, error)
	DeleteWebhook(ctx context.Context, webhookID string) error
}

APIClient defines the interface for ClickUp API operations

type AuthManager

type AuthManager interface {
	// Token management
	GetToken(workspace string) (*auth.Token, error)
	SaveToken(workspace string, token *auth.Token) error
	DeleteToken(workspace string) error
	GetCurrentToken() (*auth.Token, error)

	// Workspace operations
	ListWorkspaces() ([]string, error)
	IsAuthenticated(workspace string) bool
}

AuthManager defines the interface for authentication operations

type ConfigProvider

type ConfigProvider interface {
	// Get configuration values
	Get(key string) interface{}
	GetString(key string) string
	GetBool(key string) bool
	GetInt(key string) int
	GetStringSlice(key string) []string
	GetStringMap(key string) map[string]interface{}

	// Set configuration values
	Set(key string, value interface{})

	// Check if key exists
	IsSet(key string) bool

	// Get all settings
	AllSettings() map[string]interface{}
}

ConfigProvider defines the interface for configuration access

type OutputFormatter

type OutputFormatter interface {
	// Print methods
	Print(data interface{}) error
	PrintTo(w io.Writer, data interface{}) error
	PrintError(err error)
	PrintSuccess(message string)
	PrintWarning(message string)
	PrintInfo(message string)

	// Configuration
	SetFormat(format string) error
	GetFormat() string
	SetColor(enabled bool)
	SetQuiet(enabled bool)

	// Table-specific (for table format)
	SetTableHeader(headers []string)
}

OutputFormatter defines the interface for output formatting

type TaskCreateOptions

type TaskCreateOptions struct {
	Name        string
	Description string
	Assignees   []string
	Status      string
	Priority    string
	Tags        []string
	DueDate     string
}

TaskCreateOptions represents options for creating a task

type TaskQueryOptions

type TaskQueryOptions struct {
	Page      int
	Assignees []string
	Statuses  []string
	Tags      []string
	Priority  *int
	DueDate   *time.Time
}

TaskQueryOptions represents options for querying tasks

type TaskUpdateOptions

type TaskUpdateOptions struct {
	Name            string
	Description     string
	Status          string
	Priority        string
	Tags            []string
	DueDate         string
	AddAssignees    []string
	RemoveAssignees []string
}

TaskUpdateOptions represents options for updating a task

func (*TaskUpdateOptions) HasUpdates

func (o *TaskUpdateOptions) HasUpdates() bool

HasUpdates checks if any updates are specified

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL