dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts@v1.0.2/dtos/requests/organization.go (about)

     1  package requests
     2  
     3  import (
     4  	"encoding/json"
     5  
     6  	"dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts/common"
     7  	"dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts/dtos"
     8  	dtoCommon "dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts/dtos/common"
     9  	"dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts/errors"
    10  	"dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts/models"
    11  )
    12  
    13  // AddDeviceRequest defines the Request Content for POST Device DTO.
    14  // This object and its properties correspond to the AddDeviceRequest object in the APIv2 specification:
    15  // https://app.swaggerhub.com/apis-docs/EdgeXFoundry1/core-metadata/2.1.0#/AddDeviceRequest
    16  type AddOrganizationRequest struct {
    17  	dtoCommon.BaseRequest `json:",inline"`
    18  	Organization          dtos.Organization `json:"organization"`
    19  }
    20  
    21  // AddDeviceReqToDeviceModels transforms the AddDeviceRequest DTO array to the Device model array
    22  func AddOrganizationReqToOrganizationModels(addRequests AddOrganizationRequest) (Organization models.Organization) {
    23  	Organization = dtos.ToOrganizationModel(addRequests.Organization)
    24  	return Organization
    25  }
    26  
    27  // Validate satisfies the Validator interface
    28  func (d AddOrganizationRequest) Validate() error {
    29  	err := common.Validate(d)
    30  	return err
    31  }
    32  
    33  // UnmarshalJSON implements the Unmarshaler interface for the AddDeviceRequest type
    34  func (d *AddOrganizationRequest) UnmarshalJSON(b []byte) error {
    35  	var alias struct {
    36  		dtoCommon.BaseRequest
    37  		Organization dtos.Organization
    38  	}
    39  	if err := json.Unmarshal(b, &alias); err != nil {
    40  		return errors.NewCommonEdgeX(errors.KindContractInvalid, "Failed to unmarshal request body as JSON.", err)
    41  	}
    42  
    43  	*d = AddOrganizationRequest(alias)
    44  
    45  	// validate AddDeviceRequest DTO
    46  	if err := d.Validate(); err != nil {
    47  		return err
    48  	}
    49  	return nil
    50  }
    51  
    52  type UpdateOrganizationRequest struct {
    53  	dtoCommon.BaseRequest `json:",inline"`
    54  	Organization          dtos.UpdateOrganization `json:"organization"`
    55  }
    56  
    57  func (d UpdateOrganizationRequest) Validate() error {
    58  	err := common.Validate(d)
    59  	return err
    60  }
    61  
    62  func (d *UpdateOrganizationRequest) UnmarshalJSON(b []byte) error {
    63  	var alias struct {
    64  		dtoCommon.BaseRequest
    65  		Organization dtos.UpdateOrganization
    66  	}
    67  	if err := json.Unmarshal(b, &alias); err != nil {
    68  		return errors.NewCommonEdgeX(errors.KindContractInvalid, "Failed to unmarshal request body as JSON.", err)
    69  	}
    70  
    71  	*d = UpdateOrganizationRequest(alias)
    72  
    73  	// validate AddDeviceRequest DTO
    74  	if err := d.Validate(); err != nil {
    75  		return err
    76  	}
    77  	return nil
    78  }
    79  
    80  func ReplaceOrganizationModelFieldsWithDTO(device *models.Organization, patch dtos.UpdateOrganization) {
    81  
    82  	if patch.Name != "" {
    83  		device.Name = patch.Name
    84  	}
    85  
    86  }