dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts@v1.0.2/dtos/transmission.go (about) 1 // 2 // Copyright (C) 2021 IOTech Ltd 3 // 4 // SPDX-License-Identifier: Apache-2.0 5 6 package dtos 7 8 import ( 9 "dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts/models" 10 ) 11 12 type Transmission struct { 13 Created int64 `json:"created,omitempty"` 14 Id string `json:"id,omitempty" validate:"omitempty,uuid"` 15 Channel Address `json:"channel" validate:"required"` 16 NotificationId string `json:"notificationId" validate:"required"` 17 SubscriptionName string `json:"subscriptionName" validate:"required,edgex-dto-none-empty-string"` 18 Records []TransmissionRecord `json:"records,omitempty"` 19 ResendCount int `json:"resendCount,omitempty"` 20 Status string `json:"status" validate:"required,oneof='ACKNOWLEDGED' 'FAILED' 'SENT' 'ESCALATED' 'RESENDING'"` 21 } 22 23 // ToTransmissionModel transforms a Transmission DTO to a Transmission Model 24 func ToTransmissionModel(trans Transmission) models.Transmission { 25 var m models.Transmission 26 m.Id = trans.Id 27 m.Channel = ToAddressModel(trans.Channel) 28 m.Created = trans.Created 29 m.NotificationId = trans.NotificationId 30 m.SubscriptionName = trans.SubscriptionName 31 m.Records = ToTransmissionRecordModels(trans.Records) 32 m.ResendCount = trans.ResendCount 33 m.Status = models.TransmissionStatus(trans.Status) 34 return m 35 } 36 37 // ToTransmissionModels transforms a Transmission DTO array to a Transmission model array 38 func ToTransmissionModels(ts []Transmission) []models.Transmission { 39 models := make([]models.Transmission, len(ts)) 40 for i, t := range ts { 41 models[i] = ToTransmissionModel(t) 42 } 43 return models 44 } 45 46 // FromTransmissionModelToDTO transforms a Transmission Model to a Transmission DTO 47 func FromTransmissionModelToDTO(trans models.Transmission) Transmission { 48 return Transmission{ 49 Created: trans.Created, 50 Id: trans.Id, 51 Channel: FromAddressModelToDTO(trans.Channel), 52 NotificationId: trans.NotificationId, 53 SubscriptionName: trans.SubscriptionName, 54 Records: FromTransmissionRecordModelsToDTOs(trans.Records), 55 ResendCount: trans.ResendCount, 56 Status: string(trans.Status), 57 } 58 } 59 60 // FromTransmissionModelsToDTOs transforms a Transmission model array to a Transmission DTO array 61 func FromTransmissionModelsToDTOs(ts []models.Transmission) []Transmission { 62 dtos := make([]Transmission, len(ts)) 63 for i, n := range ts { 64 dtos[i] = FromTransmissionModelToDTO(n) 65 } 66 return dtos 67 }