MIF_E31222379_BE/internal/services/banner.go

61 lines
1.3 KiB
Go

package services
import (
"errors"
"github.com/pahmiudahgede/senggoldong/domain"
"github.com/pahmiudahgede/senggoldong/internal/repositories"
)
func GetBanners() ([]domain.Banner, error) {
return repositories.GetBanners()
}
func GetBannerByID(id string) (domain.Banner, error) {
banner, err := repositories.GetBannerByID(id)
if err != nil {
return domain.Banner{}, errors.New("banner not found")
}
return banner, nil
}
func CreateBanner(bannerName, bannerImage string) (domain.Banner, error) {
newBanner := domain.Banner{
BannerName: bannerName,
BannerImage: bannerImage,
}
if err := repositories.CreateBanner(&newBanner); err != nil {
return domain.Banner{}, err
}
return newBanner, nil
}
func UpdateBanner(id, bannerName, bannerImage string) (domain.Banner, error) {
banner, err := repositories.GetBannerByID(id)
if err != nil {
return domain.Banner{}, err
}
banner.BannerName = bannerName
banner.BannerImage = bannerImage
if err := repositories.UpdateBanner(&banner); err != nil {
return domain.Banner{}, err
}
return banner, nil
}
func DeleteBanner(id string) error {
_, err := repositories.GetBannerByID(id)
if err != nil {
return errors.New("banner not found")
}
if err := repositories.DeleteBanner(id); err != nil {
return err
}
return nil
}