From 87811418b181c06f3a7e2a8b2ec7c1d848022130 Mon Sep 17 00:00:00 2001 From: zv0n Date: Sat, 12 Mar 2022 22:54:01 +0100 Subject: [PATCH] Add get_library_pattern endpoint --- functions.cpp | 1 + library.hpp | 1 + main.cpp | 35 +++++++++++++++++++++++++++++++++++ rename_library.hpp | 1 + 4 files changed, 38 insertions(+) diff --git a/functions.cpp b/functions.cpp index 778d064..36a6f21 100644 --- a/functions.cpp +++ b/functions.cpp @@ -55,6 +55,7 @@ std::vector< RenameLibrary > getLibraries(const std::vector= libraries.size() ) { + return ""; + } + return libraries[library_id].choiceDisplay(); +} + std::string getCustomKeysJson( size_t library_id ) { std::ostringstream res; res << "{\n \"custom_keys\": [\n"; @@ -229,6 +236,13 @@ std::string getFieldDefaultJson( size_t library_id, const std::string &field ) { return res.str(); } +std::string getLibraryPatternJson( size_t library_id ) { + std::ostringstream res; + res << "{\n \"pattern\": \"" << getLibraryPattern( library_id ) + << "\"}"; + return res.str(); +} + void getCustomKeysRest( const std::shared_ptr< restbed::Session > &session, rapidjson::GenericDocument< rapidjson::UTF8<> > &doc ) { if ( doc.FindMember( "library_id" ) == doc.MemberEnd() || @@ -276,6 +290,18 @@ void getFieldDefaultRest( sendResponse( getFieldDefaultJson( library_id, field ), 200, session ); } +void getLibraryPatternRest( + const std::shared_ptr< restbed::Session > &session, + rapidjson::GenericDocument< rapidjson::UTF8<> > &doc ) { + if ( doc.FindMember( "library_id" ) == doc.MemberEnd() || + !doc["library_id"].IsUint64() ) { + sendResponse( "ERROR: Invalid library_id!", 401, session ); + return; + } + auto library_id = doc["library_id"].GetUint64(); + sendResponse( getLibraryPatternJson( library_id ), 200, session ); +} + std::pair< bool, std::string > renamePath( std::string path, const RenameObject &renamer ) { if ( renamer.getLibraryId() >= libraries.size() ) { @@ -620,6 +646,10 @@ void getFieldDefaultCall( const std::shared_ptr< restbed::Session > &session ) { performPostFunc( session, getFieldDefaultRest ); } +void getLibraryPatternCall( const std::shared_ptr< restbed::Session > &session ) { + performPostFunc( session, getLibraryPatternRest ); +} + void renameCall( const std::shared_ptr< restbed::Session > &session ) { performPostFunc( session, renamePathRest ); } @@ -684,6 +714,11 @@ int main( int argc, char **argv ) { field_default->set_method_handler( "POST", getFieldDefaultCall ); service.publish( field_default ); + auto library_pattern = std::make_shared< restbed::Resource >(); + library_pattern->set_path( "/get_library_pattern" ); + library_pattern->set_method_handler( "POST", getLibraryPatternCall ); + service.publish( library_pattern ); + auto rename_path = std::make_shared< restbed::Resource >(); rename_path->set_path( "/rename" ); rename_path->set_method_handler( "POST", renameCall ); diff --git a/rename_library.hpp b/rename_library.hpp index f2c7515..c068ff4 100644 --- a/rename_library.hpp +++ b/rename_library.hpp @@ -15,6 +15,7 @@ struct RenameLibrary { const std::string ( *getName )(); const bool ( *canRenameMultipleFiles )(); const bool ( *shouldPerformSearch )(); + const std::string ( *choiceDisplay )(); void *libhndl; std::string name; std::string config;