Added bulk deletion for an OUI

This commit is contained in:
stephb9959
2021-11-06 10:17:26 -07:00
parent 5664dbef6d
commit 57c11d9a09
2 changed files with 33 additions and 2 deletions

View File

@@ -41,9 +41,40 @@ namespace OpenWifi {
return BadRequest(RESTAPI::Errors::MissingSerialNumber);
}
if (StorageService()->DeleteDevice(SerialNumber)) {
std::string Arg;
if(HasParameter("oui",Arg) && Arg=="true" && SerialNumber.size()==6) {
std::set<std::string> Set;
std::vector<GWObjects::Device> Devices;
bool Done = false;
uint64_t Offset=0;
while(!Done) {
StorageService()->GetDevices(Offset,500,Devices);
for(const auto &i:Devices) {
if(i.SerialNumber.substr(0,6) == SerialNumber) {
Set.insert(i.SerialNumber);
}
}
if(Devices.size()<500)
Done=true;
Offset += Devices.size();
}
for(auto &i:Set) {
std::string SNum{i};
StorageService()->DeleteDevice(SNum);
}
return OK();
} else if (StorageService()->DeleteDevice(SerialNumber)) {
return OK();
}
NotFound();
}