132 lines
4.4 KiB
Go
132 lines
4.4 KiB
Go
package entitymapping
|
|
|
|
import (
|
|
"bitbucket.org/nemt/nemt-portal-api/application/viewmodel"
|
|
"bitbucket.org/nemt/nemt-portal-api/domain/entity"
|
|
)
|
|
|
|
// rideMapping has method to map ride entities to view models
|
|
type visitMapping struct {
|
|
mapper *Mapper
|
|
}
|
|
|
|
// ToVisitEntity maps a User entity to User view model
|
|
func (mapping *visitMapping) ToVisitEntity(item viewmodel.Visit) entity.Visit {
|
|
return entity.Visit{
|
|
UUID: item.UUID,
|
|
Status: mapping.ToVisitStatusEntity(item.Status),
|
|
User: mapping.mapper.User.ToUserEntity(item.User),
|
|
VisitDuration: item.VisitDuration,
|
|
VisitDatetime: item.VisitDatetime,
|
|
PickupDatetime: item.PickupDatetime,
|
|
Notes: item.Notes,
|
|
PickupAddressID: item.PickupAddressID,
|
|
DestinationAddressID: item.DestinationAddressID,
|
|
Pickup: mapping.mapper.Ride.ToLocationEntity(item.Pickup),
|
|
Provider: mapping.mapper.Provider.ToProviderRespEntity(item.Provider),
|
|
CreatedUser: mapping.mapper.User.ToUserEntity(item.CreatedUser),
|
|
Created: item.CreatedDate,
|
|
Updated: item.UpdatedDate,
|
|
ReturnDate: item.ReturnDate,
|
|
ExternalID: item.ExternalID,
|
|
TripType: mapping.ToTripTypeEntity(item.TripType),
|
|
Rides: mapping.mapper.Ride.ToRideInternalEntitySlice(item.Rides),
|
|
}
|
|
}
|
|
|
|
func (mapping *visitMapping) ToVisitStatusEntity(item viewmodel.VisitStatus) entity.VisitStatus {
|
|
return entity.VisitStatus{
|
|
Value: item.Value,
|
|
Key: item.Key,
|
|
}
|
|
}
|
|
|
|
// ToVisitEntity maps a User entity to User view model
|
|
func (mapping *visitMapping) ToVisitModel(item entity.Visit) viewmodel.Visit {
|
|
return viewmodel.Visit{
|
|
UUID: item.UUID,
|
|
Status: mapping.ToVisitStatusModel(item.Status),
|
|
User: mapping.mapper.User.ToUserModel(item.User),
|
|
VisitDuration: item.VisitDuration,
|
|
VisitDatetime: item.VisitDatetime,
|
|
PickupDatetime: item.PickupDatetime,
|
|
Notes: item.Notes,
|
|
PickupAddressID: item.PickupAddressID,
|
|
DestinationAddressID: item.DestinationAddressID,
|
|
Pickup: mapping.mapper.Ride.ToLocationModel(item.Pickup),
|
|
Provider: mapping.mapper.Provider.ToProviderRespModel(item.Provider),
|
|
CreatedUser: mapping.mapper.User.ToUserModel(item.CreatedUser),
|
|
CreatedDate: item.Created,
|
|
UpdatedDate: item.Updated,
|
|
ReturnDate: item.ReturnDate,
|
|
ExternalID: item.ExternalID,
|
|
TripType: mapping.ToTripTypeModel(item.TripType),
|
|
Rides: mapping.mapper.Ride.ToRideModelSlice(item.Rides),
|
|
}
|
|
}
|
|
|
|
func (mapping *visitMapping) ToVisitStatusModel(item entity.VisitStatus) viewmodel.VisitStatus {
|
|
return viewmodel.VisitStatus{
|
|
Value: item.Value,
|
|
Key: item.Key,
|
|
}
|
|
}
|
|
|
|
// ToUserEntitySlice maps a User entity slice to User view model slice
|
|
func (mapping *visitMapping) ToVisitEntitySlice(list []viewmodel.Visit) (retVal []entity.Visit) {
|
|
retVal = make([]entity.Visit, 0)
|
|
|
|
for _, item := range list {
|
|
retVal = append(retVal, mapping.ToVisitEntity(item))
|
|
}
|
|
|
|
return retVal
|
|
}
|
|
|
|
// ToRideModelSlice maps a Ride entity slice to Ride view model slice
|
|
func (mapping *visitMapping) ToVisitModelSlice(list []entity.Visit) (retVal []viewmodel.Visit) {
|
|
retVal = make([]viewmodel.Visit, 0)
|
|
|
|
for _, item := range list {
|
|
retVal = append(retVal, mapping.ToVisitModel(item))
|
|
}
|
|
|
|
return retVal
|
|
}
|
|
|
|
func (mapping *visitMapping) ToTripTypeModel(item entity.TripType) viewmodel.TripType {
|
|
return viewmodel.TripType{
|
|
Value: item.Value,
|
|
Key: item.Key,
|
|
}
|
|
}
|
|
|
|
func (mapping *visitMapping) ToTripTypeEntity(item viewmodel.TripType) entity.TripType {
|
|
return entity.TripType{
|
|
Value: item.Value,
|
|
Key: item.Key,
|
|
}
|
|
}
|
|
|
|
// ToUserEntitySlice maps a User entity slice to User view model slice
|
|
func (mapping *visitMapping) ToTripTypeEntitySlice(list []viewmodel.TripType) (retVal []entity.TripType) {
|
|
retVal = make([]entity.TripType, 0)
|
|
|
|
for _, item := range list {
|
|
retVal = append(retVal, mapping.ToTripTypeEntity(item))
|
|
}
|
|
|
|
return retVal
|
|
}
|
|
|
|
// ToRideModelSlice maps a Ride entity slice to Ride view model slice
|
|
func (mapping *visitMapping) ToTripTypeModelSlice(list []entity.TripType) (retVal []viewmodel.TripType) {
|
|
retVal = make([]viewmodel.TripType, 0)
|
|
|
|
for _, item := range list {
|
|
retVal = append(retVal, mapping.ToTripTypeModel(item))
|
|
}
|
|
|
|
return retVal
|
|
}
|