dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts@v1.0.2/dtos/requests/manufacturer.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 /* 14 Manufacturer CRUD Requests 15 */ 16 17 type AddManufacturerRequest struct { 18 dtoCommon.BaseRequest `json:",inline"` 19 Manufacturer dtos.Manufacturer `json:"manufacturer"` 20 } 21 22 func (dm AddManufacturerRequest) Validate() error { 23 return common.Validate(dm) 24 } 25 26 // UnmarshalJSON implements the Unmarshaler interface for the AddManufacturerRequest type 27 func (m *AddManufacturerRequest) UnmarshalJSON(b []byte) error { 28 var alias struct { 29 dtoCommon.BaseRequest 30 Manufacturer dtos.Manufacturer 31 } 32 if err := json.Unmarshal(b, &alias); err != nil { 33 return errors.NewCommonEdgeX(errors.KindContractInvalid, "Failed to unmarshal request body as JSON.", err) 34 } 35 36 *m = AddManufacturerRequest(alias) 37 38 // validate AddManufacturerRequest DTO 39 if err := m.Validate(); err != nil { 40 return err 41 } 42 return nil 43 } 44 45 func AddManufacturerReqToModel(addRequest []AddManufacturerRequest) (manufacturers []models.Manufacturer) { 46 for _, req := range addRequest { 47 m := dtos.ToManufacturerModel(req.Manufacturer) 48 manufacturers = append(manufacturers, m) 49 } 50 return manufacturers 51 } 52 53 type UpdateManufacturerRequest struct { 54 dtoCommon.BaseRequest `json:",inline"` 55 Manufacturer dtos.UpdateManufacturer `json:"manufacturer"` 56 } 57 58 func (dm UpdateManufacturerRequest) Validate() error { 59 return common.Validate(dm) 60 } 61 62 // UnmarshalJSON implements the Unmarshaler interface for the AddManufacturerRequest type 63 func (m *UpdateManufacturerRequest) UnmarshalJSON(b []byte) error { 64 var alias struct { 65 dtoCommon.BaseRequest 66 Manufacturer dtos.UpdateManufacturer 67 } 68 if err := json.Unmarshal(b, &alias); err != nil { 69 return errors.NewCommonEdgeX(errors.KindContractInvalid, "Failed to unmarshal request body as JSON.", err) 70 } 71 72 *m = UpdateManufacturerRequest(alias) 73 74 // validate AddManufacturerRequest DTO 75 if err := m.Validate(); err != nil { 76 return err 77 } 78 return nil 79 } 80 81 func ReplaceManufacturerModelFieldsWithDTO(manufacturer *models.Manufacturer, patch dtos.UpdateManufacturer) { 82 if patch.Name != nil { 83 manufacturer.Name = *patch.Name 84 } 85 if patch.Description != nil { 86 manufacturer.Description = *patch.Description 87 } 88 if patch.TechnicalReference != nil { 89 manufacturer.TechnicalReference = *patch.TechnicalReference 90 } 91 if patch.AdministrativeReference != nil { 92 manufacturer.AdministrativeReference = *patch.AdministrativeReference 93 } 94 if patch.Address != nil { 95 manufacturer.Address = *patch.Address 96 } 97 if patch.Contacts != nil { 98 manufacturer.Contacts = *patch.Contacts 99 } 100 }