dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts@v1.0.2/dtos/transmissionrecord.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  	"encoding/json"
    10  
    11  	"dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts/models"
    12  )
    13  
    14  type TransmissionRecord struct {
    15  	Status   string `json:"status,omitempty" validate:"omitempty,oneof='ACKNOWLEDGED' 'FAILED' 'SENT' 'ESCALATED'"`
    16  	Response string `json:"response,omitempty"`
    17  	Sent     int64  `json:"sent,omitempty"`
    18  }
    19  
    20  // String returns a JSON encoded string representation of the object
    21  func (tr TransmissionRecord) String() string {
    22  	out, err := json.Marshal(tr)
    23  	if err != nil {
    24  		return err.Error()
    25  	}
    26  	return string(out)
    27  }
    28  
    29  // ToTransmissionRecordModel transforms a TransmissionRecord DTO to a TransmissionRecord Model
    30  func ToTransmissionRecordModel(tr TransmissionRecord) models.TransmissionRecord {
    31  	var m models.TransmissionRecord
    32  	m.Status = models.TransmissionStatus(tr.Status)
    33  	m.Response = tr.Response
    34  	m.Sent = tr.Sent
    35  	return m
    36  }
    37  
    38  // ToTransmissionRecordModels transforms a TransmissionRecord DTO array to a TransmissionRecord model array
    39  func ToTransmissionRecordModels(trs []TransmissionRecord) []models.TransmissionRecord {
    40  	models := make([]models.TransmissionRecord, len(trs))
    41  	for i, tr := range trs {
    42  		models[i] = ToTransmissionRecordModel(tr)
    43  	}
    44  	return models
    45  }
    46  
    47  // FromTransmissionRecordModelToDTO transforms a TransmissionRecord Model to a TransmissionRecord DTO
    48  func FromTransmissionRecordModelToDTO(tr models.TransmissionRecord) TransmissionRecord {
    49  	return TransmissionRecord{
    50  		Status:   string(tr.Status),
    51  		Response: tr.Response,
    52  		Sent:     tr.Sent,
    53  	}
    54  }
    55  
    56  // FromTransmissionRecordModelsToDTOs transforms a TransmissionRecord model array to a TransmissionRecord DTO array
    57  func FromTransmissionRecordModelsToDTOs(trs []models.TransmissionRecord) []TransmissionRecord {
    58  	dtos := make([]TransmissionRecord, len(trs))
    59  	for i, tr := range trs {
    60  		dtos[i] = FromTransmissionRecordModelToDTO(tr)
    61  	}
    62  	return dtos
    63  }