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" "bitbucket.org/nemt/nemt-portal-api/infra/errors" ) // rideService holds methods to user application service type visitService struct { svc *service.Service mapEntity *entitymapping.Mapper } // newUserService returns a userService instance func newVisitService(svc *service.Service, mapper *entitymapping.Mapper) *visitService { return &visitService{ svc: svc, mapEntity: mapper, } } // Save a new ride func (s *visitService) Create(visit viewmodel.Visit) (viewmodel.Visit, error) { entity := s.mapEntity.Visit.ToVisitEntity(visit) retVal, err := s.svc.Visits.Create(entity) if err != nil { return viewmodel.Visit{}, errors.Wrap(err) } return s.mapEntity.Visit.ToVisitModel(retVal), err } // Save a new ride func (s *visitService) GetAll(user viewmodel.User) ([]viewmodel.Visit, error) { eUser := s.mapEntity.User.ToUserEntity(user) retVal, err := s.svc.Visits.GetAll(eUser) if err != nil { return nil, errors.Wrap(err) } return s.mapEntity.Visit.ToVisitModelSlice(retVal), err } // Save a new ride func (s *visitService) GetByUUID(visitUUID string, user viewmodel.User) (viewmodel.Visit, error) { eUser := s.mapEntity.User.ToUserEntity(user) retVal, err := s.svc.Visits.GetByUUID(visitUUID, eUser) if err != nil { return viewmodel.Visit{}, errors.Wrap(err) } return s.mapEntity.Visit.ToVisitModel(retVal), err }