Updating movies.go with MovieModel: this struct is the gateway between our app and the database. Adding CRUD methods alongside for the Movie object. Creating models.go: this file holds a Models struct wrapping all of our Models. This way, we are able to use in our application struct in our main.go.
This commit is contained in:
23
internal/data/models.go
Normal file
23
internal/data/models.go
Normal file
@@ -0,0 +1,23 @@
|
||||
package data
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"errors"
|
||||
)
|
||||
|
||||
// ErrRecordNotFound : Define a custom ErrRecordNotFound error. We'll return this from our Get() method when looking up a movie that doesn't exist in our database.
|
||||
var (
|
||||
ErrRecordNotFound = errors.New("record not found")
|
||||
)
|
||||
|
||||
// Models : Wraps the MovieModel. We'll add other models to this, like a UserModel and PermissionModel, as our build progresses.
|
||||
type Models struct {
|
||||
Movies MovieModel
|
||||
}
|
||||
|
||||
// NewModels : For ease of use, this method returns a Models struct containing the initialized MovieModel.
|
||||
func NewModels(db *sql.DB) Models {
|
||||
return Models{
|
||||
Movies: MovieModel{DB: db},
|
||||
}
|
||||
}
|
||||
@@ -1,8 +1,10 @@
|
||||
package data
|
||||
|
||||
import (
|
||||
"greenlight.craftr.fr/internal/validator"
|
||||
"database/sql"
|
||||
"time"
|
||||
|
||||
"greenlight.craftr.fr/internal/validator"
|
||||
)
|
||||
|
||||
// Movie
|
||||
@@ -41,3 +43,28 @@ func ValidateMovie(v *validator.Validator, movie *Movie) {
|
||||
// Not that we're using the Unique helper in the line below to check that all values in the input.Genres slice are unique
|
||||
v.Check(validator.Unique(movie.Genres), "genres", "must not contain duplicate values")
|
||||
}
|
||||
|
||||
// MovieModel struct type wraps a sql.DB connection pool
|
||||
type MovieModel struct {
|
||||
DB *sql.DB
|
||||
}
|
||||
|
||||
// Insert : Inserting a new record in the movies table
|
||||
func (m MovieModel) Insert(movie *Movie) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// Get : Fetching a specific record from the movies table
|
||||
func (m MovieModel) Get(id int64) (*Movie, error) {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
// Update : Updating a specific record in the movies table
|
||||
func (m MovieModel) Update(movie *Movie) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// Delete : Deleting a specific record from the movies table
|
||||
func (m MovieModel) Delete(id int64) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user