43 lines
1.0 KiB
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)
|
|
}
|