content

package
v0.0.0-...-61c90a5 Latest Latest
Warning

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

Go to latest
Published: Aug 2, 2026 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MaxCaptionRunes = 2200
	DefaultFeedSize = 50
)

Variables

View Source
var (
	ErrInvalidPost      = errors.New("invalid post")
	ErrMediaUnavailable = errors.New("media is unavailable")
)

Functions

This section is empty.

Types

type Author

type Author struct {
	ID          string
	Username    string
	DisplayName string
}

type Post

type Post struct {
	ID         string
	Author     Author
	CircleID   string
	Caption    string
	Visibility Visibility
	MediaID    string
	AltText    string
	AlbumID    string
	AlbumTitle string
	CreatedAt  time.Time
	UpdatedAt  time.Time
}

type PublishParams

type PublishParams struct {
	AuthorID   string
	MediaID    string
	AltText    string
	Caption    string
	Visibility Visibility
	AlbumID    string
}

type Repository

type Repository interface {
	CreatePost(context.Context, Post) (Post, error)
	Feed(context.Context, string, int) ([]Post, error)
	PostsByAuthor(context.Context, string, string, int) ([]Post, error)
	PostsByAlbum(context.Context, string, string, int) ([]Post, error)
}

type Service

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

func NewService

func NewService(repository Repository) *Service

func (*Service) Feed

func (s *Service) Feed(ctx context.Context, viewerID string) ([]Post, error)

func (*Service) PostsByAlbum

func (s *Service) PostsByAlbum(ctx context.Context, viewerID, albumID string) ([]Post, error)

func (*Service) PostsByAuthor

func (s *Service) PostsByAuthor(ctx context.Context, viewerID, authorID string) ([]Post, error)

func (*Service) Publish

func (s *Service) Publish(ctx context.Context, params PublishParams) (Post, error)

type Visibility

type Visibility string
const (
	VisibilityPrivate Visibility = "private"
	VisibilityCircle  Visibility = "circle"
	VisibilityPublic  Visibility = "public"
)

func ValidateDraft

func ValidateDraft(caption string, visibility Visibility) (string, Visibility, error)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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