45 lines
1.0 KiB
Go
45 lines
1.0 KiB
Go
package repositories
|
|
|
|
import (
|
|
"errors"
|
|
|
|
"github.com/pahmiudahgede/senggoldong/config"
|
|
"github.com/pahmiudahgede/senggoldong/domain"
|
|
)
|
|
|
|
type BannerRepository struct{}
|
|
|
|
func NewBannerRepository() *BannerRepository {
|
|
return &BannerRepository{}
|
|
}
|
|
|
|
func (r *BannerRepository) GetAll() ([]domain.Banner, error) {
|
|
var banners []domain.Banner
|
|
err := config.DB.Find(&banners).Error
|
|
if err != nil {
|
|
return nil, errors.New("failed to fetch banners from database")
|
|
}
|
|
return banners, nil
|
|
}
|
|
|
|
func (r *BannerRepository) GetByID(id string) (*domain.Banner, error) {
|
|
var banner domain.Banner
|
|
err := config.DB.First(&banner, "id = ?", id).Error
|
|
if err != nil {
|
|
return nil, errors.New("banner not found")
|
|
}
|
|
return &banner, nil
|
|
}
|
|
|
|
func (r *BannerRepository) Create(banner *domain.Banner) error {
|
|
return config.DB.Create(banner).Error
|
|
}
|
|
|
|
func (r *BannerRepository) Update(banner *domain.Banner) error {
|
|
return config.DB.Save(banner).Error
|
|
}
|
|
|
|
func (r *BannerRepository) Delete(banner *domain.Banner) error {
|
|
return config.DB.Delete(banner).Error
|
|
}
|