Files
old-svijetlastrana/application/entitymapping/visit.go
2018-04-25 13:16:36 +02:00

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
}