40 lines
764 B
Go
40 lines
764 B
Go
package data
|
|
|
|
import (
|
|
"database/sql"
|
|
"errors"
|
|
)
|
|
|
|
var (
|
|
ErrRecordNotFound = errors.New("record not found")
|
|
ErrEditConflict = errors.New("edit conflict")
|
|
)
|
|
|
|
type Models struct {
|
|
Movies interface {
|
|
Insert(movie *Movie) error
|
|
Get(id int64) (*Movie, error)
|
|
Update(movie *Movie) error
|
|
Delete(id int64) error
|
|
GetAll(title string, genres []string, filters Filters) ([]*Movie, Metadata, error)
|
|
}
|
|
Users UserModel
|
|
Tokens TokenModel
|
|
Permissions PermissonModel
|
|
}
|
|
|
|
func NewModels(db *sql.DB) Models {
|
|
return Models{
|
|
Movies: MovieModel{DB: db},
|
|
Users: UserModel{DB: db},
|
|
Tokens: TokenModel{DB: db},
|
|
Permissions: PermissonModel{DB: db},
|
|
}
|
|
}
|
|
|
|
func NewMockModels() Models {
|
|
return Models{
|
|
Movies: MockMovieModel{},
|
|
}
|
|
}
|