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  }