Upstream sync

This commit is contained in:
Senad Uka
2018-05-25 09:12:42 +02:00
parent 6e903b4d57
commit 94229831e0
38 changed files with 1281 additions and 156 deletions

View File

@@ -23,7 +23,8 @@ type Service struct {
Notification *notificationService
Profile *profileService
Organization *organizationService
Zipcodes *zipcodeService
Zipcodes *zipcodeService
Plan *planService
}
// New returns a new domain Service instance
@@ -37,7 +38,8 @@ func New(svc *service.Service, mapper *entitymapping.Mapper, notification *notif
Notification: newNotificationService(svc, mapper, notification, cfg),
Profile: newProfileService(svc, mapper),
Organization: newOrganizationService(svc, mapper),
Zipcodes: newZipcodeService(svc, mapper),
Zipcodes: newZipcodeService(svc, mapper),
Plan: newPlanService(svc, mapper),
}
})

View File

@@ -0,0 +1,57 @@
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 planService struct {
svc *service.Service
mapEntity *entitymapping.Mapper
}
// newProviderService returns a providerService instance
func newPlanService(svc *service.Service, mapper *entitymapping.Mapper) *planService {
return &planService{
svc: svc,
mapEntity: mapper,
}
}
func (s *planService) GetByAlphaPrefix(alphaPrefix string) (viewmodel.Plan, error) {
plan, err := s.svc.Plans.GetByAlphaPrefix(alphaPrefix)
if err != nil {
return viewmodel.Plan{}, err
}
return s.mapEntity.Plan.ToPlanModel(plan), nil
}
func (s *planService) GetByUUID(planUUID string) ([]viewmodel.Plan, error) {
plans, err := s.svc.Plans.GetByUUID(planUUID)
if err != nil {
return nil, err
}
return s.mapEntity.Plan.ToPlanModelSlice(plans), nil
}
func (s *planService) GetByID(planID int64) ([]viewmodel.Plan, error) {
plans, err := s.svc.Plans.GetByID(planID)
if err != nil {
return nil, err
}
return s.mapEntity.Plan.ToPlanModelSlice(plans), nil
}
func (s *planService) GetByPrefixUUID(prefixUUID string) (viewmodel.Plan, error) {
plan, err := s.svc.Plans.GetByPrefixUUID(prefixUUID)
if err != nil {
return viewmodel.Plan{}, err
}
return s.mapEntity.Plan.ToPlanModel(plan), nil
}

View File

@@ -68,3 +68,13 @@ func (s *providerService) GetByNPI(NPI string, user viewmodel.User) (viewmodel.P
return s.mapEntity.Provider.ToProviderRespModel(provider), nil
}
func (s *providerService) GetByOrganization(organizationUUID string, user viewmodel.User) (viewmodel.ProviderResp, error) {
eUser := s.mapEntity.User.ToUserEntity(user)
provider, err := s.svc.Provider.GetByOrganization(organizationUUID, eUser)
if err != nil {
return viewmodel.ProviderResp{}, err
}
return s.mapEntity.Provider.ToProviderRespModel(provider), nil
}

View File

@@ -51,6 +51,16 @@ func (s *userService) GetByUUID(uuid string, profile string) (retVal viewmodel.U
return s.mapEntity.User.ToUserModel(user), nil
}
// GetByID returns a specific user by its ID
func (s *userService) GetByMemberID(memberID string) (retVal viewmodel.User, err error) {
user, err := s.svc.Users.GetByMemberID(memberID)
if err != nil {
return retVal, errors.Wrap(err)
}
return s.mapEntity.User.ToUserModel(user), nil
}
// Login returns a specific user by email and pass
func (s *userService) FullLogin(loginType string, key string, pass string, profile string) (retVal viewmodel.User, err error) {
user, err := s.svc.Users.FullLogin(loginType, key, pass, profile)
@@ -131,6 +141,11 @@ func (s *userService) RemoveAddress(addressUUID string) error {
return s.svc.Users.RemoveAddress(addressUUID)
}
func (s *userService) UpdateLogin(user viewmodel.User) error {
eUser := s.mapEntity.User.ToUserEntity(user)
return s.svc.Users.UpdateLogin(eUser)
}
func (s *userService) SaveAddress(address viewmodel.Address) (retVal viewmodel.Address, err error) {
entity := s.mapEntity.Address.ToAddressEntity(address)
entity, err = s.svc.Users.SaveAddress(entity)

View File

@@ -21,6 +21,38 @@ func newVisitService(svc *service.Service, mapper *entitymapping.Mapper) *visitS
}
}
func (s *visitService) Save(visit viewmodel.Visit) (viewmodel.Visit, error) {
entity := s.mapEntity.Visit.ToVisitEntity(visit)
for _, a := range visit.User.Addresses {
if a.AddressType == "home" {
address, err := s.svc.Users.GetAddressByUUID(a.UUID)
if err != nil {
return viewmodel.Visit{}, err
}
entity.PickupAddressID = address.ID
entity.Pickup.Address = address.Address
entity.Pickup.ID = address.UUID
entity.Pickup.Latitude = address.Latitude
entity.Pickup.Longitude = address.Longitude
entity.Pickup.Name = address.Name
}
}
provider, err := s.svc.Provider.GetByUUID(entity.Provider.ProviderUUID, entity.CreatedUser)
if err != nil {
return viewmodel.Visit{}, errors.Wrap(err)
}
entity.Provider = provider
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) Create(visit viewmodel.Visit) (viewmodel.Visit, error) {
entity := s.mapEntity.Visit.ToVisitEntity(visit)
@@ -51,5 +83,17 @@ func (s *visitService) GetByUUID(visitUUID string, user viewmodel.User) (viewmod
return viewmodel.Visit{}, errors.Wrap(err)
}
visitUser, err := s.svc.Users.GetByUUID(retVal.User.UUID, "US")
if err != nil {
return viewmodel.Visit{}, errors.Wrap(err)
}
retVal.User = visitUser
provider, err := s.svc.Provider.GetByUUID(retVal.Provider.ProviderUUID, eUser)
if err != nil {
return viewmodel.Visit{}, errors.Wrap(err)
}
retVal.Provider = provider
return s.mapEntity.Visit.ToVisitModel(retVal), err
}