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

257 lines
8.7 KiB
Go

package entitymapping
import (
"bitbucket.org/nemt/nemt-portal-api/application/viewmodel"
"bitbucket.org/nemt/nemt-portal-api/domain/entity"
)
// providerMapping has method to map provider entities to view models
type organizationMapping struct {
mapper *Mapper
}
// ToUserEntitySlice maps a User entity slice to User view model slice
func (mapping *organizationMapping) ToOrganizationTypeEntitySlice(list []viewmodel.OrganizationType) (retVal []entity.OrganizationType) {
retVal = make([]entity.OrganizationType, 0)
for _, item := range list {
retVal = append(retVal, mapping.ToOrganizationTypeEntity(item))
}
return retVal
}
// ToUserEntitySlice maps a User entity slice to User view model slice
func (mapping *organizationMapping) ToOrganizationEntitySlice(list []viewmodel.Organization) (retVal []entity.Organization) {
retVal = make([]entity.Organization, 0)
for _, item := range list {
retVal = append(retVal, mapping.ToOrganizationEntity(item))
}
return retVal
}
func (mapping *organizationMapping) ToOrganizationEntity(model viewmodel.Organization) entity.Organization {
return entity.Organization{
ID: model.ID,
UUID: model.UUID,
Type: mapping.ToOrganizationTypeEntity(model.Type),
Name: model.Name,
Description: model.Description,
ReferenceID: model.ReferenceID,
ParentID: model.ParentID,
Main: model.Main,
Created: model.Created,
Updated: model.Updated,
Active: model.Active,
Blocked: model.Blocked,
Suspended: model.Suspended,
Author: mapping.mapper.User.ToUserEntity(model.Author),
LastEditor: mapping.mapper.User.ToUserEntity(model.LastEditor),
Contacts: mapping.ToOrganizationContactEntitySlice(model.Contacts),
Addresses: mapping.ToOrganizationAddressEntitySlice(model.Addresses),
ChildOrgs: mapping.ToOrganizationEntitySlice(model.ChildOrgs),
Parent: mapping.ToOrganizationEntityPointer(model.Parent),
}
}
func (mapping *organizationMapping) ToOrganizationEntityPointer(model *viewmodel.Organization) *entity.Organization {
if model != nil {
convertibleModel := *model
convertibleEntity := mapping.ToOrganizationEntity(convertibleModel)
return &convertibleEntity
} else {
return nil
}
}
func (mapping *organizationMapping) ToOrganizationModelPointer(model *entity.Organization) *viewmodel.Organization {
if model != nil {
convertibleModel := *model
convertibleEntity := mapping.ToOrganizationModel(convertibleModel)
return &convertibleEntity
} else {
return nil
}
}
func (mapping *organizationMapping) ToOrganizationTypeEntity(model viewmodel.OrganizationType) entity.OrganizationType {
return entity.OrganizationType{
ID: model.ID,
Name: model.Name,
Key: model.Key,
Description: model.Description,
Created: model.Created,
Updated: model.Updated,
}
}
func (mapping *organizationMapping) ToOrganizationTypeModelSlice(list []entity.OrganizationType) (retVal []viewmodel.OrganizationType) {
retVal = make([]viewmodel.OrganizationType, 0)
for _, item := range list {
retVal = append(retVal, mapping.ToOrganizationTypeModel(item))
}
return retVal
}
// ToUserEntitySlice maps a User entity slice to User view model slice
func (mapping *organizationMapping) ToOrganizationModelSlice(list []entity.Organization) (retVal []viewmodel.Organization) {
retVal = make([]viewmodel.Organization, 0)
for _, item := range list {
retVal = append(retVal, mapping.ToOrganizationModel(item))
}
return retVal
}
func (mapping *organizationMapping) ToOrganizationModel(model entity.Organization) viewmodel.Organization {
return viewmodel.Organization{
ID: model.ID,
UUID: model.UUID,
Type: mapping.ToOrganizationTypeModel(model.Type),
Name: model.Name,
Description: model.Description,
ReferenceID: model.ReferenceID,
ParentID: model.ParentID,
Main: model.Main,
Created: model.Created,
Updated: model.Updated,
Active: model.Active,
Blocked: model.Blocked,
Suspended: model.Suspended,
Author: mapping.mapper.User.ToUserModel(model.Author),
LastEditor: mapping.mapper.User.ToUserModel(model.LastEditor),
Contacts: mapping.ToOrganizationContactModelSlice(model.Contacts),
Addresses: mapping.ToOrganizationAddressModelSlice(model.Addresses),
ChildOrgs: mapping.ToOrganizationModelSlice(model.ChildOrgs),
Parent: mapping.ToOrganizationModelPointer(model.Parent),
}
}
func (mapping *organizationMapping) ToOrganizationTypeModel(model entity.OrganizationType) viewmodel.OrganizationType {
return viewmodel.OrganizationType{
ID: model.ID,
Name: model.Name,
Key: model.Key,
Description: model.Description,
Created: model.Created,
Updated: model.Updated,
}
}
func (mapping *organizationMapping) ToOrganizationContactModel(model entity.OrganizationContact) viewmodel.OrganizationContact {
return viewmodel.OrganizationContact{
ID: model.ID,
UUID: model.UUID,
Type: mapping.mapper.User.ToContactTypeModel(model.Type),
Contact: model.Contact,
Name: model.Name,
Description: model.Description,
Created: model.Created,
CreatedUser: mapping.mapper.User.ToUserModel(model.CreatedUser),
Updated: model.Updated,
UpdatedUser: mapping.mapper.User.ToUserModel(model.UpdatedUser),
Active: model.Active,
}
}
func (mapping *organizationMapping) ToOrganizationContactEntity(model viewmodel.OrganizationContact) entity.OrganizationContact {
return entity.OrganizationContact{
ID: model.ID,
UUID: model.UUID,
Type: mapping.mapper.User.ToContactTypeEntity(model.Type),
Contact: model.Contact,
Name: model.Name,
Description: model.Description,
Created: model.Created,
CreatedUser: mapping.mapper.User.ToUserEntity(model.CreatedUser),
Updated: model.Updated,
UpdatedUser: mapping.mapper.User.ToUserEntity(model.UpdatedUser),
Active: model.Active,
}
}
// ToUserEntitySlice maps a User entity slice to User view model slice
func (mapping *organizationMapping) ToOrganizationContactModelSlice(list []entity.OrganizationContact) (retVal []viewmodel.OrganizationContact) {
retVal = make([]viewmodel.OrganizationContact, 0)
for _, item := range list {
retVal = append(retVal, mapping.ToOrganizationContactModel(item))
}
return retVal
}
// ToUserEntitySlice maps a User entity slice to User view model slice
func (mapping *organizationMapping) ToOrganizationContactEntitySlice(list []viewmodel.OrganizationContact) (retVal []entity.OrganizationContact) {
retVal = make([]entity.OrganizationContact, 0)
for _, item := range list {
retVal = append(retVal, mapping.ToOrganizationContactEntity(item))
}
return retVal
}
func (mapping *organizationMapping) ToOrganizationAddressModel(model entity.OrganizationAddress) viewmodel.OrganizationAddress {
return viewmodel.OrganizationAddress{
ID: model.ID,
UUID: model.UUID,
InternalID: model.InternalID,
Address: model.Address,
Name: model.Name,
Description: model.Description,
Latitude: model.Latitude,
Longitude: model.Longitude,
Created: model.Created,
CreatedUser: mapping.mapper.User.ToUserModel(model.CreatedUser),
Updated: model.Updated,
UpdatedUser: mapping.mapper.User.ToUserModel(model.UpdatedUser),
Active: model.Active,
}
}
func (mapping *organizationMapping) ToOrganizationAddressEntity(model viewmodel.OrganizationAddress) entity.OrganizationAddress {
return entity.OrganizationAddress{
ID: model.ID,
UUID: model.UUID,
InternalID: model.InternalID,
Address: model.Address,
Name: model.Name,
Description: model.Description,
Latitude: model.Latitude,
Longitude: model.Longitude,
Created: model.Created,
CreatedUser: mapping.mapper.User.ToUserEntity(model.CreatedUser),
Updated: model.Updated,
UpdatedUser: mapping.mapper.User.ToUserEntity(model.UpdatedUser),
Active: model.Active,
}
}
// ToUserEntitySlice maps a User entity slice to User view model slice
func (mapping *organizationMapping) ToOrganizationAddressModelSlice(list []entity.OrganizationAddress) (retVal []viewmodel.OrganizationAddress) {
retVal = make([]viewmodel.OrganizationAddress, 0)
for _, item := range list {
retVal = append(retVal, mapping.ToOrganizationAddressModel(item))
}
return retVal
}
// ToUserEntitySlice maps a User entity slice to User view model slice
func (mapping *organizationMapping) ToOrganizationAddressEntitySlice(list []viewmodel.OrganizationAddress) (retVal []entity.OrganizationAddress) {
retVal = make([]entity.OrganizationAddress, 0)
for _, item := range list {
retVal = append(retVal, mapping.ToOrganizationAddressEntity(item))
}
return retVal
}