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 }