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

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
}