Files
old-svijetlastrana/domain/service/provider.go
2018-05-22 12:40:22 +02:00

88 lines
2.4 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) {
provider, err := s.svc.db.Provider().GetByMukID(mukID, user)
if err != nil {
return provider, err
}
organization, err := s.svc.db.Organization().GetByTypeAndReferenceID("provider", provider.ProviderID, user)
if err != nil {
return provider, err
}
provider.Organization = organization
return provider, nil
}
func (s *providerService) GetByUUID(providerUUID string, user entity.User) (entity.Provider, error) {
provider, err := s.svc.db.Provider().GetByUUID(providerUUID, user)
if err != nil {
return provider, err
}
organization, err := s.svc.db.Organization().GetByTypeAndReferenceID("provider", provider.ProviderID, user)
if err != nil {
return provider, err
}
provider.Organization = organization
return provider, nil
}
func (s *providerService) GetByNPI(NPI string, user entity.User) (entity.Provider, error) {
provider, err := s.svc.db.Provider().GetByNPI(NPI, user)
if err != nil {
return provider, err
}
organization, err := s.svc.db.Organization().GetByTypeAndReferenceID("provider", provider.ProviderID, user)
if err != nil {
return provider, err
}
provider.Organization = organization
return provider, nil
}