38 lines
909 B
Go
38 lines
909 B
Go
package repositories
|
|
|
|
import (
|
|
"github.com/pahmiudahgede/senggoldong/config"
|
|
"github.com/pahmiudahgede/senggoldong/domain"
|
|
)
|
|
|
|
type RequestPickupRepository interface {
|
|
Create(request *domain.RequestPickup) error
|
|
GetByUserID(userID string) ([]domain.RequestPickup, error)
|
|
}
|
|
|
|
type requestPickupRepository struct {}
|
|
|
|
func NewRequestPickupRepository() RequestPickupRepository {
|
|
return &requestPickupRepository{}
|
|
}
|
|
|
|
func (r *requestPickupRepository) Create(request *domain.RequestPickup) error {
|
|
return config.DB.Create(request).Error
|
|
}
|
|
|
|
func (r *requestPickupRepository) GetByUserID(userID string) ([]domain.RequestPickup, error) {
|
|
var requestPickups []domain.RequestPickup
|
|
err := config.DB.Preload("Request").
|
|
Preload("Request.TrashCategory").
|
|
Preload("UserAddress").
|
|
Where("user_id = ?", userID).
|
|
Find(&requestPickups).Error
|
|
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return requestPickups, nil
|
|
}
|
|
|