MCPcopy Create free account
hub / github.com/Restream/reindexer / PostDatabase

Method PostDatabase

cpp_src/server/httpserver.cc:434–457  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

432}
433
434int HTTPServer::PostDatabase(http::Context& ctx) {
435 const std::string newDbName = getNameFromJson(ctx.body->Read());
436
437 auto dbs = dbMgr_.EnumDatabases();
438 for (auto& db : dbs) {
439 if (db == newDbName) {
440 return status(ctx, http::HttpStatus(http::StatusBadRequest, "Database already exists"));
441 }
442 }
443
444 AuthContext dummyCtx;
445 AuthContext* actx = &dummyCtx;
446 if (!dbMgr_.IsNoSecurity()) {
447 auto clientData = dynamic_cast<HTTPClientData*>(ctx.clientData.get());
448 assertrx(clientData);
449 actx = &clientData->auth; // -V522
450 }
451
452 const auto err = dbMgr_.OpenDatabase(newDbName, *actx, true);
453 if (!err.ok()) {
454 return status(ctx, http::HttpStatus(err));
455 }
456 return status(ctx);
457}
458
459int HTTPServer::DeleteDatabase(http::Context& ctx) {
460 const std::string dbName = urldecode2(ctx.request->urlParams[0]);

Callers

nothing calls this directly

Calls 7

HttpStatusClass · 0.85
IsNoSecurityMethod · 0.80
okMethod · 0.80
ReadMethod · 0.45
EnumDatabasesMethod · 0.45
getMethod · 0.45
OpenDatabaseMethod · 0.45

Tested by

no test coverage detected