59 lines
1.6 KiB
Go
59 lines
1.6 KiB
Go
package applicationservice
|
|
|
|
import (
|
|
"bitbucket.org/nemt/nemt-portal-api/application/entitymapping"
|
|
"bitbucket.org/nemt/nemt-portal-api/application/viewmodel"
|
|
"bitbucket.org/nemt/nemt-portal-api/domain/service"
|
|
)
|
|
|
|
// providerService holds methods to provider application service
|
|
type profileService struct {
|
|
svc *service.Service
|
|
mapEntity *entitymapping.Mapper
|
|
}
|
|
|
|
// newProviderService returns a providerService instance
|
|
func newProfileService(svc *service.Service, mapper *entitymapping.Mapper) *profileService {
|
|
return &profileService{
|
|
svc: svc,
|
|
mapEntity: mapper,
|
|
}
|
|
}
|
|
|
|
func (s *profileService) GetAll() ([]viewmodel.Profile, error) {
|
|
result, err := s.svc.Profile.GetAll()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return s.mapEntity.Profile.ToProfileModelSlice(result), nil
|
|
}
|
|
|
|
func (s *profileService) GetByKey(key string) (viewmodel.Profile, error) {
|
|
result, err := s.svc.Profile.GetByKey(key)
|
|
if err != nil {
|
|
return viewmodel.Profile{}, err
|
|
}
|
|
return s.mapEntity.Profile.ToProfileModel(result), nil
|
|
}
|
|
|
|
func (s *profileService) GetVisibles(visible bool) ([]viewmodel.Profile, error) {
|
|
result, err := s.svc.Profile.GetVisibles(visible)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return s.mapEntity.Profile.ToProfileModelSlice(result), nil
|
|
}
|
|
|
|
func (s *profileService) GetByOrganizationType(organizationTypeKey string) ([]viewmodel.Profile, error) {
|
|
orgType, err := s.svc.Organization.GetTypeByKey(organizationTypeKey)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
result, err := s.svc.Profile.GetByOrganizationType(orgType.ID)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return s.mapEntity.Profile.ToProfileModelSlice(result), nil
|
|
}
|