Skip to content

Commit

Permalink
Support linking of resources and configs through POST request. (#5)
Browse files Browse the repository at this point in the history
Signed-off-by: Adam Capparelli <[email protected]>
Co-authored-by: Adam Capparelli <[email protected]>
  • Loading branch information
Adam Capparelli authored and Ivan Chvets committed Mar 19, 2024
1 parent 4ded899 commit 2575fa6
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 0 deletions.
15 changes: 15 additions & 0 deletions src/RESTAPI/RESTAPI_configurations_handler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,22 @@ namespace OpenWifi {
return BadRequest(RESTAPI::Errors::ConfigBlockInvalid);
}

Types::UUIDvec_t ToVariables;
if (RawObject->has("variables")) {
for (const auto &i : NewObject.variables) {
if (!i.empty() && !StorageService()->VariablesDB().Exists("id", i)) {
return BadRequest(RESTAPI::Errors::VariableMustExist);
}
}
for (const auto &i : NewObject.variables)
ToVariables.emplace_back(i);

ToVariables = NewObject.variables;
}

if (DB_.CreateRecord(NewObject)) {
AddMembership(StorageService()->VariablesDB(),
&ProvObjects::VariableBlock::configurations, ToVariables, NewObject.info.id);
MoveUsage(StorageService()->PolicyDB(), DB_, "", NewObject.managementPolicy,
NewObject.info.id);
AddMembership(StorageService()->VenueDB(), &ProvObjects::Venue::configurations,
Expand Down
7 changes: 7 additions & 0 deletions src/RESTAPI/RESTAPI_db_helpers.h
Original file line number Diff line number Diff line change
Expand Up @@ -389,6 +389,13 @@ namespace OpenWifi {
DB.ManipulateVectorMember(T, "id", Obj, Id, true);
}

template <typename db_type, typename Member>
void AddMembership(db_type &DB, Member T, const Types::UUIDvec_t &Obj, const std::string &Id) {
for (const auto &i : Obj) {
AddMembership(DB, T, i, Id);
}
}

template <typename db_type, typename Member>
void ManageMembership(db_type &DB, Member T, const std::string &From, const std::string &To,
const std::string &Id) {
Expand Down

0 comments on commit 2575fa6

Please sign in to comment.