Decentralised Art Server
High-performance C++ backend that exposes HTML interface and a secure REST API for managing Performative Transactions entities
 
Loading...
Searching...
No Matches
api.hpp File Reference
#include <ranges>
#include <spdlog/spdlog.h>
#include "async.hpp"
#include "utils.hpp"
#include "config.hpp"
#include "route.hpp"
#include "parser.hpp"
#include "pt.hpp"
#include "auth.hpp"
#include "chain.hpp"
#include "evm.hpp"
#include "version.hpp"
#include "loader.hpp"
#include "events.hpp"

Go to the source code of this file.

Namespaces

namespace  dcn
 

Functions

asio::awaitable< std::expected< chain::Address, auth::AuthError > > dcn::authenticate (const http::Request &request, const auth::AuthManager &auth_manager)
 Helper function to handle authentication.
 
asio::awaitable< http::Responsedcn::GET_version (const http::Request &request, std::vector< server::RouteArg > route_args, server::QueryArgsList query_args, const std::string &build_timestamp)
 Handles GET requests for the version endpoint.
 
asio::awaitable< http::Responsedcn::HEAD_serveFile (const http::Request &request, std::vector< server::RouteArg > route_args, server::QueryArgsList query_args)
 Handles HEAD requests for a file.
 
asio::awaitable< http::Responsedcn::OPTIONS_serveFile (const http::Request &request, std::vector< server::RouteArg > route_args, server::QueryArgsList query_args)
 Handles OPTIONS requests for a file by returning a response with CORS headers.
 
asio::awaitable< http::Responsedcn::GET_serveFile (const http::Request &request, std::vector< server::RouteArg > route_args, server::QueryArgsList query_args, const std::string mime_type, const std::string &file_content)
 Handles GET requests for a file.
 
asio::awaitable< http::Responsedcn::GET_serveBinaryFile (const http::Request &request, std::vector< server::RouteArg > route_args, server::QueryArgsList query_args, const std::string mime_type, const std::vector< std::byte > &file_content)
 Handles GET requests for a binary file.
 
asio::awaitable< http::Responsedcn::GET_nonce (const http::Request &request, std::vector< server::RouteArg > route_args, server::QueryArgsList query_args, auth::AuthManager &auth_manager)
 Handle a GET request to /auth/nonce.
 
asio::awaitable< http::Responsedcn::OPTIONS_auth (const http::Request &request, std::vector< server::RouteArg > route_args, server::QueryArgsList query_args)
 Handles a OPTIONS request to /auth.
 
asio::awaitable< http::Responsedcn::POST_auth (const http::Request &request, std::vector< server::RouteArg > route_args, server::QueryArgsList query_args, auth::AuthManager &auth_manager)
 Handles a POST request to /auth.
 
asio::awaitable< http::Responsedcn::OPTIONS_accountInfo (const http::Request &request, std::vector< server::RouteArg > route_args, server::QueryArgsList query_args)
 Handles a OPTIONS request to /account.
 
asio::awaitable< http::Responsedcn::GET_accountInfo (const http::Request &request, std::vector< server::RouteArg > route_args, server::QueryArgsList query_args, registry::Registry &registry)
 Handles a GET request to /account.
 
asio::awaitable< http::Responsedcn::OPTIONS_formats (const http::Request &request, std::vector< server::RouteArg > route_args, server::QueryArgsList query_args)
 Handles a OPTIONS request to /formats?limit=<uint>&after=<~string>
 
asio::awaitable< http::Responsedcn::HEAD_formats (const http::Request &request, std::vector< server::RouteArg > route_args, server::QueryArgsList query_args, registry::Registry &registry)
 Handles a HEAD request to /formats?limit=<uint>&after=<~string>
 
asio::awaitable< http::Responsedcn::GET_formats (const http::Request &request, std::vector< server::RouteArg > route_args, server::QueryArgsList query_args, registry::Registry &registry)
 Handles a GET request to /formats?limit=<uint>&after=<~string>
 
asio::awaitable< http::Responsedcn::OPTIONS_format (const http::Request &request, std::vector< server::RouteArg > route_args, server::QueryArgsList query_args)
 Handles a OPTIONS request to /format/<hash>?limit=<uint>&after=<~string>
 
asio::awaitable< http::Responsedcn::GET_format (const http::Request &request, std::vector< server::RouteArg > route_args, server::QueryArgsList query_args, registry::Registry &registry)
 Handles a GET request to /format/<hash>?limit=<uint>&after=<~string>
 
asio::awaitable< http::Responsedcn::OPTIONS_accounts (const http::Request &request, std::vector< server::RouteArg > route_args, server::QueryArgsList query_args)
 Handles a OPTIONS request to /accounts?limit=<uint>&after=<~string>
 
asio::awaitable< http::Responsedcn::HEAD_accounts (const http::Request &request, std::vector< server::RouteArg > route_args, server::QueryArgsList query_args, registry::Registry &registry)
 Handles a HEAD request to /accounts?limit=<uint>&after=<~string>
 
asio::awaitable< http::Responsedcn::GET_accounts (const http::Request &request, std::vector< server::RouteArg > route_args, server::QueryArgsList query_args, registry::Registry &registry)
 Handles a GET request to /accounts?limit=<uint>&after=<~string>
 
asio::awaitable< http::Responsedcn::OPTIONS_feed (const http::Request &request, std::vector< server::RouteArg > route_args, server::QueryArgsList query_args)
 Handles OPTIONS requests to /feed?limit=<uint>&before=<~string>&type=<~string>&include_unfinalized=<~uint>
 
asio::awaitable< http::Responsedcn::GET_feed (const http::Request &request, std::vector< server::RouteArg > route_args, server::QueryArgsList query_args, events::EventRuntime &events_runtime)
 Handles GET requests to /feed?limit=<uint>&before=<~string>&type=<~string>&include_unfinalized=<~uint>
 
asio::awaitable< http::Responsedcn::OPTIONS_feedStream (const http::Request &request, std::vector< server::RouteArg > route_args, server::QueryArgsList query_args)
 Handles OPTIONS requests to /feed/stream?since_seq=<~uint>&limit=<~uint>
 
std::string dcn::buildFeedStreamSseReplay (events::EventRuntime &events_runtime, const events::StreamQuery &query)
 Builds the SSE replay body for /feed/stream.
 
asio::awaitable< void > dcn::GET_feedStream (asio::ip::tcp::socket &sock, const http::Request &request, std::vector< server::RouteArg > route_args, server::QueryArgsList query_args, std::chrono::steady_clock::time_point &deadline, events::EventRuntime &events_runtime)
 Handles GET requests to /feed/stream?since_seq=<~uint>&limit=<~uint>
 
asio::awaitable< http::Responsedcn::HEAD_connector (const http::Request &request, std::vector< server::RouteArg > route_args, server::QueryArgsList query_args, registry::Registry &registry)
 Handles HEAD requests for the connector endpoint.
 
asio::awaitable< http::Responsedcn::OPTIONS_connector (const http::Request &request, std::vector< server::RouteArg > route_args, server::QueryArgsList query_args)
 Handles OPTIONS requests by returning a response with CORS headers.
 
asio::awaitable< http::Responsedcn::GET_connector (const http::Request &request, std::vector< server::RouteArg > route_args, server::QueryArgsList query_args, registry::Registry &registry)
 Handle a GET request to /connectors.
 
asio::awaitable< http::Responsedcn::POST_connector (const http::Request &request, std::vector< server::RouteArg > route_args, server::QueryArgsList query_args, auth::AuthManager &auth_manager, registry::Registry &registry, evm::EVM &evm, const config::Config &config)
 Handle a POST request to /connectors.
 
asio::awaitable< http::Responsedcn::HEAD_transformation (const http::Request &request, std::vector< server::RouteArg > route_args, server::QueryArgsList query_args, registry::Registry &registry)
 Handles HEAD requests for the transformation endpoint.
 
asio::awaitable< http::Responsedcn::OPTIONS_transformation (const http::Request &request, std::vector< server::RouteArg > route_args, server::QueryArgsList query_args)
 Handles OPTIONS requests for the transformation endpoint by returning a response with CORS headers.
 
asio::awaitable< http::Responsedcn::GET_transformation (const http::Request &request, std::vector< server::RouteArg > route_args, server::QueryArgsList query_args, registry::Registry &registry)
 Handles GET requests for the transformation endpoint.
 
asio::awaitable< http::Responsedcn::POST_transformation (const http::Request &request, std::vector< server::RouteArg > route_args, server::QueryArgsList query_args, auth::AuthManager &auth_manager, registry::Registry &registry, evm::EVM &evm, const config::Config &config)
 Handles POST requests for the transformation endpoint.
 
asio::awaitable< http::Responsedcn::HEAD_condition (const http::Request &request, std::vector< server::RouteArg > route_args, server::QueryArgsList query_args, registry::Registry &registry)
 Handles HEAD requests for the condition endpoint.
 
asio::awaitable< http::Responsedcn::OPTIONS_condition (const http::Request &request, std::vector< server::RouteArg > route_args, server::QueryArgsList query_args)
 Handles OPTIONS requests for the condition endpoint by returning a response with CORS headers.
 
asio::awaitable< http::Responsedcn::GET_condition (const http::Request &request, std::vector< server::RouteArg > route_args, server::QueryArgsList query_args, registry::Registry &registry)
 Handles GET requests for the condition endpoint.
 
asio::awaitable< http::Responsedcn::POST_condition (const http::Request &request, std::vector< server::RouteArg > route_args, server::QueryArgsList query_args, auth::AuthManager &auth_manager, registry::Registry &registry, evm::EVM &evm, const config::Config &config)
 Handles POST requests for the condition endpoint.
 
asio::awaitable< http::Responsedcn::OPTIONS_execute (const http::Request &request, std::vector< server::RouteArg > route_args, server::QueryArgsList query_args)
 Handles OPTIONS requests for the execute endpoint by returning a response with CORS headers.
 
asio::awaitable< http::Responsedcn::POST_execute (const http::Request &request, std::vector< server::RouteArg > route_args, server::QueryArgsList query_args, const auth::AuthManager &auth_manager, registry::Registry &registry, evm::EVM &evm, const config::Config &config)
 Handles POST requests for the execute endpoint.