Skip to content

Instantly share code, notes, and snippets.

@xvbnm48
Created March 14, 2022 15:41
Show Gist options
  • Save xvbnm48/7048f88714374331ada6a9d8e016395b to your computer and use it in GitHub Desktop.
Save xvbnm48/7048f88714374331ada6a9d8e016395b to your computer and use it in GitHub Desktop.
package book
import "gorm.io/gorm"
type Repository interface {
FindAll() ([]Book, error)
FindByID(ID int) (Book, error)
Create(book Book) (Book, error)
Update(book Book) (Book, error)
Delete(book Book) (Book, error)
}
type repository struct {
db *gorm.DB
}
func NewRepository(db *gorm.DB) *repository {
return &repository{db}
}
func (r *repository) FindAll() ([]Book, error) {
var books []Book
err := r.db.Find(&books).Error
return books, err
}
func (r *repository) FindByID(ID int) (Book, error) {
var book Book
err := r.db.First(&book, ID).Error
return book, err
}
func (r *repository) Create(book Book) (Book, error) {
err := r.db.Create(&book).Error
return book, err
}
func (r *repository) Update(book Book) (Book, error) {
err := r.db.Save(&book).Error
return book, err
}
func (r *repository) Delete(book Book) (Book, error) {
err := r.db.Delete(&book).Error
return book, err
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment