Files
2018-04-25 13:16:36 +02:00

51 lines
1.8 KiB
Go

package applicationservice
import (
"bitbucket.org/nemt/nemt-portal-api/application/entitymapping"
"bitbucket.org/nemt/nemt-portal-api/application/third/npd/npdmodel"
"bitbucket.org/nemt/nemt-portal-api/application/viewmodel"
"bitbucket.org/nemt/nemt-portal-api/domain/service"
)
// providerService holds methods to provider application service
type providerService struct {
svc *service.Service
mapEntity *entitymapping.Mapper
}
// newProviderService returns a providerService instance
func newProviderService(svc *service.Service, mapper *entitymapping.Mapper) *providerService {
return &providerService{
svc: svc,
mapEntity: mapper,
}
}
func (s *providerService) Save(providers []npdmodel.ProviderResponse, user viewmodel.User) ([]viewmodel.ProviderResp, error) {
eUser := s.mapEntity.User.ToUserEntity(user)
entities := s.mapEntity.Provider.ToProviderEntitySlice(providers)
result, err := s.svc.Provider.Save(entities, eUser)
if err != nil {
return nil, err
}
return s.mapEntity.Provider.ToProviderRespModelSlice(result), nil
}
func (s *providerService) GetAll(user viewmodel.User) ([]viewmodel.ProviderResp, error) {
eUser := s.mapEntity.User.ToUserEntity(user)
providers, err := s.svc.Provider.GetAll(eUser)
if err != nil {
return nil, err
}
return s.mapEntity.Provider.ToProviderRespModelSlice(providers), nil
}
func (s *providerService) Get(query string, lat float64, long float64, distance int64, planCode string, productID string, mukID string, internalID string, sort string, user viewmodel.User) ([]viewmodel.ProviderResp, error) {
eUser := s.mapEntity.User.ToUserEntity(user)
providers, err := s.svc.Provider.Get(query, lat, long, distance, planCode, productID, mukID, internalID, sort, eUser)
if err != nil {
return nil, err
}
return s.mapEntity.Provider.ToProviderRespModelSlice(providers), nil
}