MIF_E31222379_BE/internal/repositories/banner.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
}