Mantis App v0.1.13
Loading...
Searching...
No Matches
mantis::SysTablesUnit Class Referencefinal

Class to manage tables metadata like access rules, name, etc. More...

#include <sys_tables.h>

Inheritance diagram for mantis::SysTablesUnit:
Collaboration diagram for mantis::SysTablesUnit:

Public Member Functions

 SysTablesUnit (const std::string &tableName, const std::string &tableId, const std::string &tableType="auth")
 
 ~SysTablesUnit () override=default
 
bool setupRoutes () override
 
void fetchRecord (const Request &req, Response &res, Context &ctx) override
 
void fetchRecords (const Request &req, Response &res, Context &ctx) override
 
void createRecord (const Request &req, Response &res, Context &ctx) override
 
void updateRecord (const Request &req, Response &res, Context &ctx) override
 
void deleteRecord (const Request &req, Response &res, Context &ctx) override
 
void authWithEmailAndPassword (const Request &req, Response &res, Context &ctx) override
 
bool hasAccess (const Request &req, Response &res, Context &ctx) override
 
json create (const json &entity, const json &opts) override
 
std::optional< jsonread (const std::string &id, const json &opts) override
 
json update (const std::string &id, const json &entity, const json &opts) override
 
bool remove (const std::string &id, const json &opts) override
 
std::vector< jsonlist (const json &opts) override
 
- Public Member Functions inherited from mantis::TableUnit
 TableUnit (std::string tableName, std::string tableId, std::string tableType="base")
 
 TableUnit (const json &schema=json::object())
 
virtual ~TableUnit () override=default
 
virtual void resetPassword (const Request &req, Response &res, Context &ctx)
 
void setRouteDisplayName (const std::string &routeName)
 
std::string tableName ()
 
void setTableName (const std::string &name)
 
std::string tableId ()
 
void setTableId (const std::string &id)
 
std::string tableType ()
 
void fromJson (const json &j)
 
std::vector< jsonfields () const
 
void setFields (const std::vector< json > &fields)
 
bool isSystem () const
 
void setIsSystemTable (bool isSystemTable)
 
Rule listRule ()
 
void setListRule (const Rule &rule)
 
Rule getRule ()
 
void setGetRule (const Rule &rule)
 
Rule addRule ()
 
void setAddRule (const Rule &rule)
 
Rule updateRule ()
 
void setUpdateRule (const Rule &rule)
 
Rule deleteRule ()
 
void setDeleteRule (const Rule &rule)
 
json create (const json &entity, const json &opts) override
 
std::optional< jsonread (const std::string &id, const json &opts) override
 
json update (const std::string &id, const json &entity, const json &opts) override
 
bool remove (const std::string &id, const json &opts) override
 
std::vector< jsonlist (const json &opts) override
 
std::string getColTypeFromName (const std::string &col, const std::vector< json > &fields) const
 
json parseDbRowToJson (const soci::row &row) const
 
std::optional< jsonvalidateRequestBody (const json &body) const
 
std::optional< jsonvalidateUpdateRequestBody (const json &body) const
 
bool recordExists (const std::string &id) const
 
std::optional< jsonfindFieldByKey (const std::string &key) const
 
json checkValueInColumns (const std::string &value, const std::vector< std::string > &columns) const
 
- Public Member Functions inherited from mantis::CrudInterface< json >
virtual ~CrudInterface ()=default
 

Additional Inherited Members

- Static Public Member Functions inherited from mantis::TableUnit
static bool getAuthToken (const Request &req, Response &res, Context &ctx)
 
static std::string generateTableId (const std::string &tablename)
 
- Public Attributes inherited from mantis::TableUnit
const std::string __class_name__ = "TableUnit"
 
- Protected Attributes inherited from mantis::TableUnit
std::string m_tableName
 
std::string m_tableId
 
std::string m_tableType
 
std::string m_routeName
 
bool m_isSystem = false
 
std::vector< jsonm_fields = {}
 
Rule m_listRule
 
Rule m_getRule
 
Rule m_addRule
 
Rule m_updateRule
 
Rule m_deleteRule
 

Detailed Description

Class to manage tables metadata like access rules, name, etc.

Allows for table tracking, provisioning of API access and managing cache for created tables for centralized admin management.

Constructor & Destructor Documentation

◆ SysTablesUnit()

mantis::SysTablesUnit::SysTablesUnit ( const std::string &  tableName,
const std::string &  tableId,
const std::string &  tableType = "auth" 
)

◆ ~SysTablesUnit()

mantis::SysTablesUnit::~SysTablesUnit ( )
overridedefault

Member Function Documentation

◆ authWithEmailAndPassword()

void mantis::SysTablesUnit::authWithEmailAndPassword ( const Request req,
Response res,
Context ctx 
)
overridevirtual

Reimplemented from mantis::TableUnit.

◆ create()

json mantis::SysTablesUnit::create ( const json entity,
const json opts 
)
overridevirtual

◆ createRecord()

void mantis::SysTablesUnit::createRecord ( const Request req,
Response res,
Context ctx 
)
overridevirtual

Reimplemented from mantis::TableUnit.

◆ deleteRecord()

void mantis::SysTablesUnit::deleteRecord ( const Request req,
Response res,
Context ctx 
)
overridevirtual

Reimplemented from mantis::TableUnit.

◆ fetchRecord()

void mantis::SysTablesUnit::fetchRecord ( const Request req,
Response res,
Context ctx 
)
overridevirtual

Reimplemented from mantis::TableUnit.

◆ fetchRecords()

void mantis::SysTablesUnit::fetchRecords ( const Request req,
Response res,
Context ctx 
)
overridevirtual

Reimplemented from mantis::TableUnit.

◆ hasAccess()

bool mantis::SysTablesUnit::hasAccess ( const Request req,
Response res,
Context ctx 
)
overridevirtual

Reimplemented from mantis::TableUnit.

◆ list()

std::vector< json > mantis::SysTablesUnit::list ( const json opts)
overridevirtual

◆ read()

std::optional< json > mantis::SysTablesUnit::read ( const std::string &  id,
const json opts 
)
overridevirtual

◆ remove()

bool mantis::SysTablesUnit::remove ( const std::string &  id,
const json opts 
)
overridevirtual

◆ setupRoutes()

bool mantis::SysTablesUnit::setupRoutes ( )
overridevirtual

Reimplemented from mantis::TableUnit.

◆ update()

json mantis::SysTablesUnit::update ( const std::string &  id,
const json entity,
const json opts 
)
overridevirtual

◆ updateRecord()

void mantis::SysTablesUnit::updateRecord ( const Request req,
Response res,
Context ctx 
)
overridevirtual

Reimplemented from mantis::TableUnit.


The documentation for this class was generated from the following files: