75 lines
2.1 KiB
Go
75 lines
2.1 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 addressMapping struct {
|
|
mapper *Mapper
|
|
}
|
|
|
|
// ToVisitEntity maps a User entity to User view model
|
|
func (mapping *addressMapping) ToAddressEntity(item viewmodel.Address) entity.Address {
|
|
return entity.Address{
|
|
UUID: item.UUID,
|
|
InternalID: item.InternalID,
|
|
Name: item.Name,
|
|
Address: item.Address,
|
|
AddressType: mapping.ToParamEntity(item.AddressType),
|
|
Latitude: item.Latitude,
|
|
Longitude: item.Longitude,
|
|
Origin: mapping.ToParamEntity(item.Type),
|
|
User: mapping.mapper.User.ToUserEntity(item.User),
|
|
CreatedUser: entity.User{
|
|
UUID: item.CreatedUserUUID,
|
|
},
|
|
}
|
|
}
|
|
|
|
func (mapping *addressMapping) ToParamEntity(item string) entity.Params {
|
|
return entity.Params{
|
|
Key: item,
|
|
}
|
|
}
|
|
|
|
// ToVisitEntity maps a User entity to User view model
|
|
func (mapping *addressMapping) ToAddressModel(item entity.Address) viewmodel.Address {
|
|
return viewmodel.Address{
|
|
UUID: item.UUID,
|
|
InternalID: item.InternalID,
|
|
Name: item.Name,
|
|
Address: item.Address,
|
|
AddressType: item.AddressType.Key,
|
|
AddressTypeName: item.AddressType.Name,
|
|
Latitude: item.Latitude,
|
|
Longitude: item.Longitude,
|
|
Type: item.Origin.Key,
|
|
User: mapping.mapper.User.ToUserModel(item.User),
|
|
CreatedUserUUID: item.CreatedUser.UUID,
|
|
}
|
|
}
|
|
|
|
// ToUserEntitySlice maps a User entity slice to User view model slice
|
|
func (mapping *addressMapping) ToAddressEntitySlice(list []viewmodel.Address) (retVal []entity.Address) {
|
|
retVal = make([]entity.Address, 0)
|
|
|
|
for _, item := range list {
|
|
retVal = append(retVal, mapping.ToAddressEntity(item))
|
|
}
|
|
|
|
return retVal
|
|
}
|
|
|
|
// ToRideModelSlice maps a Ride entity slice to Ride view model slice
|
|
func (mapping *addressMapping) ToAddressModelSlice(list []entity.Address) (retVal []viewmodel.Address) {
|
|
retVal = make([]viewmodel.Address, 0)
|
|
|
|
for _, item := range list {
|
|
retVal = append(retVal, mapping.ToAddressModel(item))
|
|
}
|
|
|
|
return retVal
|
|
}
|