handlers

package
v2.0.0-...-bc4592a Latest Latest
Warning

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

Go to latest
Published: Jun 16, 2024 License: AGPL-3.0-or-later Imports: 25 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrMoveIDNotProvided = errors.New("no movie ID in query parameters")
View Source
var ErrSortOrderNotProvided = errors.New("no sort order in query parameters")

Functions

This section is empty.

Types

type Announcer

type Announcer interface {
	AnnounceNewReview(screenjournal.Review)
	AnnounceNewComment(screenjournal.ReviewComment)
}

type Authenticator

type Authenticator interface {
	Authenticate(username screenjournal.Username, password screenjournal.Password) error
}

type MetadataFinder

type MetadataFinder interface {
	Search(query string) (metadata.MovieSearchResults, error)
	GetMovieInfo(id screenjournal.TmdbID) (metadata.MovieInfo, error)
}

type Server

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

func New

func New(authenticator Authenticator, announcer Announcer, sessionManager SessionManager, store Store, metadataFinder MetadataFinder) Server

New creates a new server with all the state it needs to satisfy HTTP requests.

func (Server) Router

func (s Server) Router() *mux.Router

Router returns the underlying router interface for the server.

type SessionManager

type SessionManager interface {
	CreateSession(http.ResponseWriter, context.Context, screenjournal.Username, bool) error
	SessionFromContext(context.Context) (sessions.Session, error)
	EndSession(context.Context, http.ResponseWriter)
	// WrapRequest wraps the given handler, adding the Session object (if
	// there's an active session) to the request context before passing control
	// to the next handler.
	WrapRequest(http.Handler) http.Handler
}

type Store

type Store interface {
	ReadReview(screenjournal.ReviewID) (screenjournal.Review, error)
	ReadReviews(...store.ReadReviewsOption) ([]screenjournal.Review, error)
	InsertReview(screenjournal.Review) (screenjournal.ReviewID, error)
	UpdateReview(screenjournal.Review) error
	DeleteReview(screenjournal.ReviewID) error
	ReadComments(screenjournal.ReviewID) ([]screenjournal.ReviewComment, error)
	ReadComment(screenjournal.CommentID) (screenjournal.ReviewComment, error)
	InsertComment(screenjournal.ReviewComment) (screenjournal.CommentID, error)
	UpdateComment(screenjournal.ReviewComment) error
	DeleteComment(screenjournal.CommentID) error
	ReadMovie(screenjournal.MovieID) (screenjournal.Movie, error)
	ReadMovieByTmdbID(screenjournal.TmdbID) (screenjournal.Movie, error)
	InsertMovie(screenjournal.Movie) (screenjournal.MovieID, error)
	UpdateMovie(screenjournal.Movie) error
	CountUsers() (uint, error)
	ReadUser(screenjournal.Username) (screenjournal.User, error)
	ReadUsers() ([]screenjournal.User, error)
	InsertUser(screenjournal.User) error
	UpdateUserPassword(screenjournal.Username, screenjournal.PasswordHash) error
	InsertSignupInvitation(screenjournal.SignupInvitation) error
	ReadSignupInvitation(screenjournal.InviteCode) (screenjournal.SignupInvitation, error)
	ReadSignupInvitations() ([]screenjournal.SignupInvitation, error)
	DeleteSignupInvitation(screenjournal.InviteCode) error
	ReadReviewSubscribers() ([]screenjournal.EmailSubscriber, error)
	ReadCommentSubscribers() ([]screenjournal.EmailSubscriber, error)
	ReadNotificationPreferences(screenjournal.Username) (screenjournal.NotificationPreferences, error)
	UpdateNotificationPreferences(screenjournal.Username, screenjournal.NotificationPreferences) error
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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