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 }