dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts@v1.0.2/dtos/deviceresource.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  type DeviceResource struct {
    11  	Description string                 `json:"description" yaml:"description"`
    12  	Name        string                 `json:"name" yaml:"name" validate:"required,edgex-dto-none-empty-string"`
    13  	IsHidden    bool                   `json:"isHidden" yaml:"isHidden"`
    14  	Properties  ResourceProperties     `json:"properties" yaml:"properties"`
    15  	Attributes  map[string]interface{} `json:"attributes" yaml:"attributes"`
    16  	Tags        map[string]any         `json:"tags,omitempty" yaml:"tags,omitempty"`
    17  }
    18  
    19  type UpdateDeviceResource struct {
    20  	Description *string `json:"description"`
    21  	Name        *string `json:"name" validate:"required,edgex-dto-none-empty-string"`
    22  	IsHidden    *bool   `json:"isHidden"`
    23  }
    24  
    25  // ToDeviceResourceModel transforms the DeviceResource DTO to the DeviceResource model
    26  func ToDeviceResourceModel(d DeviceResource) models.DeviceResource {
    27  	return models.DeviceResource{
    28  		Description: d.Description,
    29  		Name:        d.Name,
    30  		IsHidden:    d.IsHidden,
    31  		Properties:  ToResourcePropertiesModel(d.Properties),
    32  		Attributes:  d.Attributes,
    33  		Tags:        d.Tags,
    34  	}
    35  }
    36  
    37  // ToDeviceResourceModels transforms the DeviceResource DTOs to the DeviceResource models
    38  func ToDeviceResourceModels(deviceResourceDTOs []DeviceResource) []models.DeviceResource {
    39  	deviceResourceModels := make([]models.DeviceResource, len(deviceResourceDTOs))
    40  	for i, d := range deviceResourceDTOs {
    41  		deviceResourceModels[i] = ToDeviceResourceModel(d)
    42  	}
    43  	return deviceResourceModels
    44  }
    45  
    46  // FromDeviceResourceModelToDTO transforms the DeviceResource model to the DeviceResource DTO
    47  func FromDeviceResourceModelToDTO(d models.DeviceResource) DeviceResource {
    48  	return DeviceResource{
    49  		Description: d.Description,
    50  		Name:        d.Name,
    51  		IsHidden:    d.IsHidden,
    52  		Properties:  FromResourcePropertiesModelToDTO(d.Properties),
    53  		Attributes:  d.Attributes,
    54  		Tags:        d.Tags,
    55  	}
    56  }
    57  
    58  // FromDeviceResourceModelsToDTOs transforms the DeviceResource models to the DeviceResource DTOs
    59  func FromDeviceResourceModelsToDTOs(deviceResourceModels []models.DeviceResource) []DeviceResource {
    60  	deviceResourceDTOs := make([]DeviceResource, len(deviceResourceModels))
    61  	for i, d := range deviceResourceModels {
    62  		deviceResourceDTOs[i] = FromDeviceResourceModelToDTO(d)
    63  	}
    64  	return deviceResourceDTOs
    65  }