47 lines
1.3 KiB
Go
47 lines
1.3 KiB
Go
package service
|
|
|
|
import (
|
|
"bitbucket.org/nemt/nemt-portal-api/domain/entity"
|
|
)
|
|
|
|
// userService is the domain service for user operations
|
|
type providerService struct {
|
|
svc *Service
|
|
}
|
|
|
|
// newUserService returns an instance of userService
|
|
func newProviderService(svc *Service) *providerService {
|
|
return &providerService{
|
|
svc: svc,
|
|
}
|
|
}
|
|
|
|
// Save the ride for a expected user
|
|
func (s *providerService) Save(providers []entity.ProviderResponse, user entity.User) ([]entity.Provider, error) {
|
|
tx, err := s.svc.db.Begin()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
newProviders, err := tx.Provider().Save(providers, user)
|
|
if err != nil {
|
|
tx.Rollback()
|
|
return nil, err
|
|
}
|
|
tx.Commit()
|
|
|
|
return newProviders, nil
|
|
}
|
|
|
|
func (s *providerService) GetAll(user entity.User) ([]entity.Provider, error) {
|
|
return s.svc.db.Provider().GetAll(user)
|
|
}
|
|
|
|
func (s *providerService) Get(query string, lat float64, long float64, distance int64, planCode string, productID string, mukID string, internalID string, sort string, user entity.User) ([]entity.Provider, error) {
|
|
return s.svc.db.Provider().Get(query, lat, long, distance, planCode, productID, mukID, internalID, sort, user)
|
|
}
|
|
|
|
func (s *providerService) GetByMukID(mukID string, user entity.User) (entity.Provider, error) {
|
|
return s.svc.db.Provider().GetByMukID(mukID, user)
|
|
}
|