Documentation
¶
Overview ¶
Package queue provides queue management for Notion page synchronization.
Index ¶
- type Entry
- type Manager
- func (qm *Manager) CreateEntry(ctx context.Context, entry Entry) (string, error)
- func (qm *Manager) CreateWebhookEntry(ctx context.Context, pageID, folder string) (string, error)
- func (qm *Manager) DeleteEntry(ctx context.Context, filename string) error
- func (qm *Manager) GetMinQueueID(ctx context.Context) (int, error)
- func (qm *Manager) GetNextQueueNumber(ctx context.Context) (int, error)
- func (qm *Manager) IsPageQueued(ctx context.Context, pageID, queueType string) (bool, error)
- func (qm *Manager) ListEntries(ctx context.Context) ([]string, error)
- func (qm *Manager) ReadEntry(ctx context.Context, filename string) (*Entry, error)
- func (qm *Manager) UpdateEntry(ctx context.Context, filename string, entry *Entry) error
- type Page
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Entry ¶
type Entry struct {
Type string `json:"type"` // "init" or "update"
Folder string `json:"folder"` // Folder name
Pages []Page `json:"pages,omitempty"` // Pages to process (new format)
PageIDs []string `json:"pageIds,omitempty"` // Page IDs to process (legacy format, deprecated)
ParentID string `json:"parentId,omitempty"` // Parent page ID (for child pages)
CreatedAt time.Time `json:"createdAt"` // When this queue entry was created
}
Entry represents a single queue file's content.
func (*Entry) GetPageCount ¶
GetPageCount returns the number of pages in the entry.
func (*Entry) GetPageIDs ¶
GetPageIDs returns all page IDs from the entry, supporting both old and new formats.
type Manager ¶
Manager handles queue file operations.
func NewManager ¶
NewManager creates a queue manager.
func (*Manager) CreateEntry ¶
CreateEntry creates new queue file(s) with the next sequential number(s). If entry has more than maxItemsPerQueue pages, it splits into multiple files.
func (*Manager) CreateWebhookEntry ¶
CreateWebhookEntry creates a queue entry for webhook-triggered events. Webhook entries use IDs below webhookIDThreshold (decrementing from 999, 998, ...) to ensure they are processed before regular queue entries.
func (*Manager) DeleteEntry ¶
DeleteEntry removes an empty queue file.
func (*Manager) GetMinQueueID ¶
GetMinQueueID returns the minimum queue ID from existing entries. Returns 0 if there are no entries.
func (*Manager) GetNextQueueNumber ¶
GetNextQueueNumber returns the next available queue file number for regular (non-webhook) entries. Regular entries start at webhookIDThreshold (1000) and increment upward.
func (*Manager) IsPageQueued ¶
IsPageQueued checks if a page is already queued. For type "init", this is used for deduplication. For type "update", duplicates are allowed.
func (*Manager) ListEntries ¶
ListEntries returns all queue files in sorted order.