MIF_E31222379_BE/internal/services/request_pickup.go

43 lines
1.0 KiB
Go

package services
import (
"fmt"
"github.com/pahmiudahgede/senggoldong/domain"
"github.com/pahmiudahgede/senggoldong/internal/repositories"
)
type RequestPickupService struct {
repository repositories.RequestPickupRepository
}
func NewRequestPickupService(repository repositories.RequestPickupRepository) *RequestPickupService {
return &RequestPickupService{repository: repository}
}
func (s *RequestPickupService) CreateRequestPickup(request *domain.RequestPickup) error {
return s.repository.Create(request)
}
func (s *RequestPickupService) GetRequestPickupByID(id string) (*domain.RequestPickup, error) {
return s.repository.GetByID(id)
}
func (s *RequestPickupService) GetRequestPickupsByUser(userID string) ([]domain.RequestPickup, error) {
return s.repository.GetByUserID(userID)
}
func (s *RequestPickupService) DeleteRequestPickupByID(id string) error {
exists, err := s.repository.ExistsByID(id)
if err != nil {
return err
}
if !exists {
return fmt.Errorf("request pickup with id %s not found", id)
}
return s.repository.DeleteByID(id)
}