Files
lti-api/internal/modules/system-settings/services/system_setting.service.go

47 lines
1.4 KiB
Go

package service
import (
"context"
"github.com/gofiber/fiber/v2"
entity "gitlab.com/mbugroup/lti-api.git/internal/entities"
repository "gitlab.com/mbugroup/lti-api.git/internal/modules/system-settings/repositories"
)
type SystemSettingService interface {
GetAll(ctx context.Context) ([]entity.SystemSetting, error)
GetAllowNegativePakanOVK(ctx context.Context) (bool, error)
SetAllowNegativePakanOVK(ctx context.Context, allow bool) error
}
type systemSettingService struct {
Repository repository.SystemSettingRepository
}
func NewSystemSettingService(repo repository.SystemSettingRepository) SystemSettingService {
return &systemSettingService{Repository: repo}
}
func (s *systemSettingService) GetAll(ctx context.Context) ([]entity.SystemSetting, error) {
settings, err := s.Repository.List(ctx)
if err != nil {
return nil, fiber.NewError(fiber.StatusInternalServerError, "Gagal mengambil system settings")
}
return settings, nil
}
func (s *systemSettingService) GetAllowNegativePakanOVK(ctx context.Context) (bool, error) {
return s.Repository.GetAllowNegativePakanOVK(ctx)
}
func (s *systemSettingService) SetAllowNegativePakanOVK(ctx context.Context, allow bool) error {
value := "false"
if allow {
value = "true"
}
if err := s.Repository.Set(ctx, entity.SystemSettingKeyAllowNegativePakanOVK, value); err != nil {
return fiber.NewError(fiber.StatusInternalServerError, "Gagal mengubah setting allow_negative_pakan_ovk")
}
return nil
}