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.
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 }
Source Files ¶
Click to show internal directories.
Click to hide internal directories.