61 lines
1.3 KiB
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
|
|
}
|