Documentation ¶
Index ¶
Constants ¶
const ( ErrUserIDRequired modelError = "models: user ID is required" ErrTitleRequired modelError = "models: title is required" )
Error verbiage.
const ( // ErrNotFound is returned when a resource cannot be found in the database. ErrNotFound modelError = "models: resource not found" // ErrIDInvalid is returned when an invalid ID is provided to a method like // Delete. ErrIDInvalid modelError = "models: ID provided was invalid" // ErrPasswordIncorrect is returned when an invalid password is used when // attempting to authenticate a user. ErrPasswordIncorrect modelError = "models: incorrect password provided" // ErrPasswordRequired is returned when a create is attempted without a user // password provided. ErrPasswordRequired modelError = "models: password is required" // ErrEmailRequired is returned when an email address is not provided when // creating a user. ErrEmailRequired modelError = "models: email address is required" // ErrEmailInvalid is returned when an email address provided does not match // any of our requirements. ErrEmailInvalid modelError = "models: email address is not valid" // ErrEmailTaken is returned when an update or create is attempted with an // email address that is already in use. ErrEmailTaken modelError = "models: email address is already taken" // ErrPasswordTooShort is returned when a user tries to set a password that // is less than 8 characters long. ErrPasswordTooShort modelError = "models: password must be at least 8 characters long" // ErrRememberRequired is returned when a create or update is attempted // without a user remember token hash ErrRememberRequired modelError = "models: remember token is required" // ErrRememberTooShort is returned when a remember token is not at least 32 // bytes. ErrRememberTooShort modelError = "models: remember token must be at least 32 bytes" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Gallery ¶
type Gallery struct { gorm.Model UserID uint `gorm:"not_null;index"` Title string `gorm:"not_null"` Images []string `gorm:"-"` }
Gallery models a gallery resource.
type GalleryDB ¶
type GalleryDB interface { ByID(id uint) (*Gallery, error) ByUserID(userID uint) ([]Gallery, error) Create(gallery *Gallery) error Update(gallery *Gallery) error Delete(id uint) error }
GalleryDB provides the interface for interacting with the database for a gallery.
type GalleryService ¶
type GalleryService interface { GalleryDB }
GalleryService provides the interface the gallery service.
func NewGalleryService ¶
func NewGalleryService(db *gorm.DB) GalleryService
NewGalleryService creates a new GalleryService using the given db.
type ImageService ¶
type ImageService interface { Create(galleryID uint, r io.Reader, filename string) error ByGalleryID(galleryID uint) ([]string, error) }
ImageService provides the interface for the image service.
func NewImageService ¶
func NewImageService() ImageService
NewImageService returns a new image service.
type Services ¶
type Services struct { Gallery GalleryService User UserService Image ImageService // contains filtered or unexported fields }
Services contains all the services.
func NewServices ¶
NewServices creates all the services using the given connection info.
func (*Services) AutoMigrate ¶
AutoMigrate will attempt to automatically migrate all tables.
func (*Services) DestructiveReset ¶
DestructiveReset drops all tables and rebuilds them.
type User ¶
type User struct { gorm.Model Name string Email string `gorm:"not null;unique_index"` Password string `gorm:"-"` PasswordHash string `gorm:"not null"` Remember string `gorm:"-"` RememberHash string `gorm:"not null;unique_index"` }
User models a user
type UserDB ¶
type UserDB interface { // Methods for querying for single users ByID(id uint) (*User, error) ByEmail(email string) (*User, error) ByRemember(token string) (*User, error) // Methods for altering users Create(user *User) error Update(user *User) error Delete(id uint) error }
UserDB is used to interact with the users database.
For pretty much all single user queries:
- If the user is found, we will return a nil error
- If the user is not found, we will return ErrNotFound
- If there is another error, we will return an error with // more information about what went wrong. This may not be // an error generated by the models package.
For single user queries, any error but ErrNotFound should // probably result in a 500 error until we make "public" facing errors.
type UserService ¶
UserService is a set of methods used to manipulate and work with the user model.
func NewUserService ¶
func NewUserService(db *gorm.DB) UserService
NewUserService creates a new UserService.