-
Notifications
You must be signed in to change notification settings - Fork 18
Expand file tree
/
Copy pathDatabases.hpp
More file actions
68 lines (56 loc) · 5.58 KB
/
Databases.hpp
File metadata and controls
68 lines (56 loc) · 5.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#ifndef DATABASES_HPP
#define DATABASES_HPP
#include <string>
#include "Utils.hpp"
#include "json.hpp"
#include "exceptions/AppwriteException.hpp"
#include "enums/HttpStatus.hpp"
using json = nlohmann::json;
class Databases {
public:
Databases(const std::string& projectId, const std::string& apiKey);
// Database
std::string list();
std::string get(const std::string& databaseId);
std::string create(const std::string& databaseId, const std::string& name, bool enabled);
std::string update(const std::string& databaseId, const std::string& name, bool enabled);
std::string getDatabaseUsage(const std::string& databaseId, const std::string& range);
std::string getCollectionUsage(const std::string& databaseId, const std::string& collectionId, const std::string& range);
// collections
std::string listCollection(const std::string& databaseId);
std::string createCollection(const std::string& databaseId, const std::string& collectionId, const std::string& name, bool enabled);
std::string getCollection(const std::string& databaseId, const std::string& collectionId);
std::string updateCollection(const std::string& databaseId,const std::string& collectionId, const std::string& name, bool enabled);
std::string deleteCollection(const std::string& databaseId, const std::string& collectionId);
//attribute
std::string listAttributes(const std::string& databaseId, const std::string& collectionId);
std::string createBooleanAttribute(const std::string& databaseId, const std::string& collectionId, const std::string& attributeId, bool defaultValue, bool required);
std::string createEmailAttribute(const std::string& databaseId, const std::string& collectionId, const std::string& attributeId, bool required, const std::string& defaultValue);
std::string createEnumAttribute(const std::string& databaseId, const std::string& collectionId, const std::string& attributeId, bool required, const std::string& defaultValue, const std::vector<std::string>& elements );
std::string createFloatAttribute(const std::string& databaseId, const std::string& collectionId, const std::string& attributeId, bool required, double min, double max, const std::string& defaultValue);
std::string createIntegerAttribute(const std::string& databaseId, const std::string& collectionId, const std::string& attributeId, bool required, int min, int max, const std::string& defaultValue);
std::string createIPaddressAttribute(const std::string& databaseId, const std::string& collectionId, const std::string& attributeId, bool required, const std::string& defaultValue);
std::string createStringAttribute(const std::string& databaseId, const std::string& collectionId, const std::string& attributeId, bool required, const std::string& defaultValue, const std::vector<std::string>& elements, int size);
std::string updateBooleanAttribute(const std::string& databaseId, const std::string& collectionId, const std::string& attributeId, bool defaultValue, bool required, const std::string& new_key);
std::string updateEmailAttribute(const std::string& databaseId, const std::string& collectionId, const std::string& attributeId, bool required, const std::string& defaultValue, std::string& new_key);
std::string updateEnumAttribute(const std::string& databaseId, const std::string& collectionId, const std::string& attributeId, bool required, const std::string& defaultValue, const std::vector<std::string>& elements, std::string& new_key);
std::string updateFloatAttribute(const std::string& databaseId, const std::string& collectionId, const std::string& attributeId, bool required, double min, double max, const std::string& defaultValue, std::string& new_key);
std::string updateIntegerAttribute(const std::string& databaseId, const std::string& collectionId, const std::string& attributeId, bool required, int min, int max, const std::string& defaultValue, std::string& new_key);
std::string updateIPaddressAttribute(const std::string& databaseId, const std::string& collectionId, const std::string& attributeId, bool required, const std::string& defaultValue, const std::string& new_key);
std::string updateStringAttribute(const std::string& databaseId, const std::string& collectionId, const std::string& attributeId, bool required, const std::string& defaultValue, const std::vector<std::string>& elements, int size, std::string& new_key);
// document
std::string createDocument(const std::string& databaseId, const std::string& collectionId, const std::string& documentId, const json& data);
std::string listDocument(const std::string& databaseId, const std::string& collectionId);
std::string deleteDocument(const std::string& databaseId, const std::string& collectionId, const std::string& documentId);
std::string getDocument(const std::string& databaseId, const std::string& collectionId, const std::string& documentId);
std::string updateDocument(const std::string& databaseId, const std::string& collectionId, const std::string& documentId, const json& data);
//indexes
std::string listIndexes(const std::string& databaseId, const std::string& collectionId);
std::string createIndexes(const std::string& databaseId, const std::string& collectionId, const std::string& key, const std::string& type, const std::vector<std::string> &attributes);
std::string deleteIndexes(const std::string& databaseId, const std::string& collectionId, const std::string& key);
std::string getIndexes(const std::string& databaseId, const std::string& collectionId, const std::string& key);
private:
std::string apiKey;
std::string projectId;
};
#endif