34 lines
565 B
Go
34 lines
565 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, filter Filters) ([]*Movie, error)
|
|
}
|
|
}
|
|
|
|
func NewModels(db *sql.DB) Models {
|
|
return Models{
|
|
Movies: MovieModel{DB: db},
|
|
}
|
|
}
|
|
|
|
func NewMockModels() Models {
|
|
return Models{
|
|
Movies: MockMovieModel{},
|
|
}
|
|
}
|