dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts@v1.0.2/dtos/protocolproperties.go (about)

     1  //
     2  // Copyright (C) 2020-2023 IOTech Ltd
     3  //
     4  // SPDX-License-Identifier: Apache-2.0
     5  
     6  package dtos
     7  
     8  import "dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts/models"
     9  
    10  // ProtocolProperties contains the device connection information in key/value pair
    11  type ProtocolProperties map[string]any
    12  
    13  // ToProtocolPropertiesModel transforms the ProtocolProperties DTO to the ProtocolProperties model
    14  func ToProtocolPropertiesModel(p ProtocolProperties) models.ProtocolProperties {
    15  	protocolProperties := make(models.ProtocolProperties)
    16  	for k, v := range p {
    17  		protocolProperties[k] = v
    18  	}
    19  	return protocolProperties
    20  }
    21  
    22  // ToProtocolModels transforms the Protocol DTO map to the Protocol model map
    23  func ToProtocolModels(protocolDTOs map[string]ProtocolProperties) map[string]models.ProtocolProperties {
    24  	protocolModels := make(map[string]models.ProtocolProperties)
    25  	// Foreach the ProtocolProperties and copy values directly because the data type is map[string]string
    26  	for k, protocolProperties := range protocolDTOs {
    27  		protocolModels[k] = ToProtocolPropertiesModel(protocolProperties)
    28  	}
    29  	return protocolModels
    30  }
    31  
    32  // FromProtocolPropertiesModelToDTO transforms the ProtocolProperties model to the ProtocolProperties DTO
    33  func FromProtocolPropertiesModelToDTO(p models.ProtocolProperties) ProtocolProperties {
    34  	dto := make(ProtocolProperties)
    35  	// Foreach the ProtocolProperties and copy values directly because the data type is map[string]string
    36  	for k, v := range p {
    37  		dto[k] = v
    38  	}
    39  	return dto
    40  }
    41  
    42  // FromProtocolModelsToDTOs transforms the Protocol model map to the Protocol DTO map
    43  func FromProtocolModelsToDTOs(protocolModels map[string]models.ProtocolProperties) map[string]ProtocolProperties {
    44  	dtos := make(map[string]ProtocolProperties)
    45  	for k, protocolProperties := range protocolModels {
    46  		dtos[k] = FromProtocolPropertiesModelToDTO(protocolProperties)
    47  	}
    48  	return dtos
    49  }