@@ -131,23 +131,24 @@ func Find(parentID int32, name string, client *client.LMSdkGo) (*models.DeviceGr
131131 return deviceGroup , nil
132132}
133133
134- // FindDeviceGroupByID searches for a device group by ID.
135- func FindDeviceGroupByID (groupID int32 , client * client.LMSdkGo ) (* models.DeviceGroup , error ) {
136- params := lm .NewGetDeviceGroupByIDParams ()
137- params .SetID (groupID )
134+ // FindDeviceGroupByName searches for a device group by name.
135+ func FindDeviceGroupByName (name string , client * client.LMSdkGo ) ([]* models.DeviceGroup , error ) {
136+ params := lm .NewGetDeviceGroupListParams ()
138137 fields := "name,id,parentId,subGroups"
139138 params .SetFields (& fields )
140- restResponse , err := client .LM .GetDeviceGroupByID (params )
139+ filter := fmt .Sprintf ("name:\" %s\" " , name )
140+ params .SetFilter (& filter )
141+ restResponse , err := client .LM .GetDeviceGroupList (params )
141142 if err != nil {
142- return nil , fmt .Errorf ("failed to get device group (id =%v): %v" , groupID , err )
143+ return nil , fmt .Errorf ("failed to get device group (name =%v): %v" , name , err )
143144 }
144145
145- var deviceGroup * models.DeviceGroup
146+ var deviceGroups [] * models.DeviceGroup
146147 if restResponse != nil && restResponse .Payload != nil {
147- deviceGroup = restResponse .Payload
148+ deviceGroups = restResponse .Payload . Items
148149 }
149150
150- return deviceGroup , nil
151+ return deviceGroups , nil
151152}
152153
153154// Exists returns true if the specified device group exists in the account
@@ -205,6 +206,19 @@ func DeleteSubGroup(deviceGroup *models.DeviceGroup, name string, client *client
205206 return nil
206207}
207208
209+ // DeleteGroup deletes a device group with the specified deviceGroupID.
210+ func DeleteGroup (deviceGroup * models.DeviceGroup , client * client.LMSdkGo ) error {
211+ params := lm .NewDeleteDeviceGroupByIDParams ()
212+ params .ID = deviceGroup .ID
213+ deleteChildren := true
214+ params .SetDeleteChildren (& deleteChildren )
215+ deleteHard := true
216+ params .SetDeleteHard (& deleteHard )
217+ log .Infof ("Deleting deviceGroup:\" %s\" ID:\" %d\" ParentID:\" %d\" " , * deviceGroup .Name , deviceGroup .ID , deviceGroup .ParentID )
218+ _ , err := client .LM .DeleteDeviceGroupByID (params )
219+ return err
220+ }
221+
208222func create (name , appliesTo string , disableAlerting bool , parentID int32 , client * client.LMSdkGo ) (* models.DeviceGroup , error ) {
209223 params := lm .NewAddDeviceGroupParams ()
210224 params .SetBody (& models.DeviceGroup {
0 commit comments