ticktick

package
v0.0.0-...-496f367 Latest Latest
Warning

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

Go to latest
Published: Apr 27, 2026 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const (
	BaseURL                     = "https://api.ticktick.com/open/v1"
	MaxRetries                  = 3
	InitialBackoff              = 500 * time.Millisecond
	MaxBackoff                  = 10 * time.Second
	MaxConcurrentProjectFetches = 8
)
View Source
const (
	TaskStatusNormal    = 0
	TaskStatusCompleted = 2

	ChecklistStatusNormal    = 0
	ChecklistStatusCompleted = 1

	PriorityNone   = 0
	PriorityLow    = 1
	PriorityMedium = 3
	PriorityHigh   = 5
)

Variables

View Source
var ErrUnauthorized = errors.New("ticktick: unauthorized (token may be expired)")

Functions

This section is empty.

Types

type APIError

type APIError struct {
	StatusCode int    `json:"-"`
	RetryAfter string `json:"-"`
	Timestamp  string `json:"timestamp"`
	Status     int    `json:"status"`
	Err        string `json:"error"`
	Path       string `json:"path"`
	Message    string `json:"message,omitempty"`
}

func (*APIError) Error

func (e *APIError) Error() string

type ChecklistItem

type ChecklistItem struct {
	ID            string `json:"id,omitempty"`
	Title         string `json:"title,omitempty"`
	Status        int    `json:"status,omitempty"`
	CompletedTime string `json:"completedTime,omitempty"`
	IsAllDay      bool   `json:"isAllDay,omitempty"`
	SortOrder     int64  `json:"sortOrder,omitempty"`
	StartDate     string `json:"startDate,omitempty"`
	TimeZone      string `json:"timeZone,omitempty"`
}

type Client

type Client struct {
	// contains filtered or unexported fields
}

func NewClient

func NewClient(httpClient *http.Client, version string) *Client

func NewClientWithBaseURL

func NewClientWithBaseURL(httpClient *http.Client, baseURL, version string) *Client

NewClientWithBaseURL creates a Client with a custom base URL. Used for testing.

func (*Client) CompleteTask

func (c *Client) CompleteTask(ctx context.Context, projectID, taskID string) error

func (*Client) CreateProject

func (c *Client) CreateProject(ctx context.Context, project *Project) (*Project, error)

func (*Client) CreateTask

func (c *Client) CreateTask(ctx context.Context, task *Task) (*Task, error)

func (*Client) DeleteProject

func (c *Client) DeleteProject(ctx context.Context, projectID string) error

func (*Client) DeleteTask

func (c *Client) DeleteTask(ctx context.Context, projectID, taskID string) error

func (*Client) GetProject

func (c *Client) GetProject(ctx context.Context, projectID string) (*Project, error)

func (*Client) GetProjectData

func (c *Client) GetProjectData(ctx context.Context, projectID string) (*ProjectData, error)

func (*Client) GetProjects

func (c *Client) GetProjects(ctx context.Context) ([]Project, error)

func (*Client) GetTask

func (c *Client) GetTask(ctx context.Context, projectID, taskID string) (*Task, error)

func (*Client) UpdateProject

func (c *Client) UpdateProject(ctx context.Context, project *Project) (*Project, error)

func (*Client) UpdateTask

func (c *Client) UpdateTask(ctx context.Context, task *Task) (*Task, error)

type Column

type Column struct {
	ID        string `json:"id,omitempty"`
	ProjectID string `json:"projectId,omitempty"`
	Name      string `json:"name,omitempty"`
	SortOrder int64  `json:"sortOrder,omitempty"`
}

type OperationSafety

type OperationSafety int
const (
	SafeRead OperationSafety = iota
	IdempotentWrite
	NonIdempotentWrite
)

type Project

type Project struct {
	ID         string `json:"id,omitempty"`
	Name       string `json:"name,omitempty"`
	Color      string `json:"color,omitempty"`
	SortOrder  int64  `json:"sortOrder,omitempty"`
	Closed     bool   `json:"closed,omitempty"`
	GroupID    string `json:"groupId,omitempty"`
	ViewMode   string `json:"viewMode,omitempty"`
	Permission string `json:"permission,omitempty"`
	Kind       string `json:"kind,omitempty"`
}

type ProjectData

type ProjectData struct {
	Project Project  `json:"project"`
	Tasks   []Task   `json:"tasks"`
	Columns []Column `json:"columns"`
}

type Task

type Task struct {
	ID            string          `json:"id,omitempty"`
	ProjectID     string          `json:"projectId,omitempty"`
	Title         string          `json:"title,omitempty"`
	Content       string          `json:"content,omitempty"`
	Desc          string          `json:"desc,omitempty"`
	IsAllDay      bool            `json:"isAllDay,omitempty"`
	StartDate     string          `json:"startDate,omitempty"`
	DueDate       string          `json:"dueDate,omitempty"`
	TimeZone      string          `json:"timeZone,omitempty"`
	Reminders     []string        `json:"reminders,omitempty"`
	RepeatFlag    string          `json:"repeatFlag,omitempty"`
	Priority      int             `json:"priority,omitempty"`
	Status        int             `json:"status,omitempty"`
	CompletedTime string          `json:"completedTime,omitempty"`
	SortOrder     int64           `json:"sortOrder,omitempty"`
	Items         []ChecklistItem `json:"items,omitempty"`
}

Jump to

Keyboard shortcuts

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