Mantis App v0.1.13
Loading...
Searching...
No Matches
crud.h
Go to the documentation of this file.
1//
2// Created by allan on 18/05/2025.
3//
4
5#ifndef CRUD_H
6#define CRUD_H
7
8#include <optional>
9#include <vector>
10#include <nlohmann/json.hpp>
11
12namespace mantis
13{
14 using json = nlohmann::json;
15
16 template <typename T>
18 public:
19 virtual ~CrudInterface() = default;
20
21 // Create/read/list/update/delete record(s), use opts to config optional params
22 virtual T create(const T& entity, [[maybe_unused]] const json& opts) = 0;
23 virtual std::optional<T> read(const std::string& id, [[maybe_unused]] const json& opts) = 0;
24 virtual T update(const std::string& id, const T& entity, [[maybe_unused]] const json& opts) = 0;
25 virtual bool remove(const std::string& id, [[maybe_unused]] const json& opts) = 0;
26 virtual std::vector<T> list([[maybe_unused]] const json& opts) = 0;
27 };
28}
29#endif //CRUD_H
Definition crud.h:17
virtual T create(const T &entity, const json &opts)=0
virtual bool remove(const std::string &id, const json &opts)=0
virtual ~CrudInterface()=default
virtual std::optional< T > read(const std::string &id, const json &opts)=0
virtual std::vector< T > list(const json &opts)=0
virtual T update(const std::string &id, const T &entity, const json &opts)=0
router.h
Definition app.h:30
nlohmann::json json
Shorten JSON namespace.
Definition crud.h:14