Skip to content

Commit 3037cb2

Browse files
committed
Feat: Delete and Get Document
1 parent be791cf commit 3037cb2

File tree

7 files changed

+97
-2
lines changed

7 files changed

+97
-2
lines changed

Makefile

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,10 @@ createDocument: $(SRCS) $(EXAMPLES_DIR)/database/collection/document/createDocum
7373
$(CXX) $(CXXFLAGS) -o tests/document/createDocument $(SRCS) $(EXAMPLES_DIR)/database/collection/document/createDocument.cpp $(LDFLAGS)
7474
listDocument: $(SRCS) $(EXAMPLES_DIR)/database/collection/document/listDocument.cpp
7575
$(CXX) $(CXXFLAGS) -o tests/document/listDocument $(SRCS) $(EXAMPLES_DIR)/database/collection/document/listDocument.cpp $(LDFLAGS)
76+
deleteDocument: $(SRCS) $(EXAMPLES_DIR)/database/collection/document/deleteDocument.cpp
77+
$(CXX) $(CXXFLAGS) -o tests/document/deleteDocument $(SRCS) $(EXAMPLES_DIR)/database/collection/document/deleteDocument.cpp $(LDFLAGS)
78+
getDocument: $(SRCS) $(EXAMPLES_DIR)/database/collection/document/getDocument.cpp
79+
$(CXX) $(CXXFLAGS) -o tests/document/getDocument $(SRCS) $(EXAMPLES_DIR)/database/collection/document/getDocument.cpp $(LDFLAGS)
7680

7781
#Collection-Attribute
7882
listAttributes: $(SRCS) $(EXAMPLES_DIR)/database/collection/attribute/listAttributes.cpp
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#include "Appwrite.hpp"
2+
#include <iostream>
3+
4+
int main() {
5+
std::string projectId = "66fbb5a100070a3a1d19";
6+
std::string apiKey = "";
7+
std::string databaseId = "database123";
8+
std::string collectionId = "test1234";
9+
std::string documentId = "document1234";
10+
11+
Appwrite appwrite(projectId);
12+
Databases& databases = appwrite.getDatabases();
13+
14+
databases.setup(apiKey, projectId);
15+
16+
try {
17+
std::string response = databases.deleteDocument(databaseId, collectionId, documentId);
18+
std::cout << "document deleted successfully! \nResponse: " << response << std::endl;
19+
} catch (const AppwriteException& ex) {
20+
std::cerr << "Exception: " << ex.what() << std::endl;
21+
}
22+
23+
return 0;
24+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#include "Appwrite.hpp"
2+
#include <iostream>
3+
4+
int main() {
5+
std::string projectId = "66fbb5a100070a3a1d19";
6+
std::string apiKey = "";
7+
std::string databaseId = "database123";
8+
std::string collectionId = "test1234";
9+
std::string documentId = "document123";
10+
11+
Appwrite appwrite(projectId);
12+
Databases& databases = appwrite.getDatabases();
13+
14+
databases.setup(apiKey, projectId);
15+
16+
try {
17+
std::string response = databases.getDocument(databaseId, collectionId, documentId);
18+
std::cout << "Document fetched successfully! \nResponse: " << response << std::endl;
19+
} catch (const AppwriteException& ex) {
20+
std::cerr << "Exception: " << ex.what() << std::endl;
21+
}
22+
23+
return 0;
24+
}

include/classes/Databases.hpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,9 @@ class Databases {
4747
// document
4848
std::string createDocument(const std::string& databaseId, const std::string& collectionId, const std::string& documentId, const json& data);
4949
std::string listDocument(const std::string& databaseId, const std::string& collectionId);
50-
50+
std::string deleteDocument(const std::string& databaseId, const std::string& collectionId, const std::string& documentId);
51+
std::string getDocument(const std::string& databaseId, const std::string& collectionId, const std::string& documentId);
52+
5153
private:
5254
std::string apiKey;
5355
std::string projectId;

src/services/Databases.cpp

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -646,7 +646,7 @@ std::string Databases::createDocument(const std::string& databaseId, const std::
646646
std::string Databases::listDocument(const std::string& databaseId, const std::string& collectionId){
647647
Validator::validateDatabaseParams(databaseId, collectionId);
648648

649-
std::string url = Config::API_BASE_URL + "/databases/" + databaseId + "/collections/" + collectionId + "/documentss";
649+
std::string url = Config::API_BASE_URL + "/databases/" + databaseId + "/collections/" + collectionId + "/documents";
650650

651651
std::vector<std::string> headers = Config::getHeaders(projectId);
652652
headers.push_back("X-Appwrite-Key: " + apiKey);
@@ -660,3 +660,44 @@ std::string Databases::listDocument(const std::string& databaseId, const std::st
660660
throw AppwriteException("Error fetching documents. Status code: " + std::to_string(statusCode) + "\n\nResponse: " + response);
661661
}
662662
}
663+
664+
std::string Databases::deleteDocument(const std::string& databaseId, const std::string& collectionId, const std::string& documentId) {
665+
std::string url = Config::API_BASE_URL + "/databases/" + databaseId + "/collections/" + collectionId + "/documents/" + documentId;
666+
667+
std::vector<std::string> headers = Config::getHeaders(projectId);
668+
headers.push_back("X-Appwrite-Key: " + apiKey);
669+
670+
std::string response;
671+
672+
int statusCode = Utils::deleteRequest(url, headers, response);
673+
674+
if (statusCode == HttpStatus::DELETED) {
675+
return response;
676+
} else {
677+
throw AppwriteException("Error deleting document. Status code: " + std::to_string(statusCode) + "\n\nResponse: " + response);
678+
}
679+
}
680+
681+
std::string Databases::getDocument(const std::string& databaseId, const std::string& collectionId, const std::string& documentId) {
682+
683+
if (databaseId.empty()) {
684+
throw AppwriteException("Missing required parameter: 'documentId'");
685+
}
686+
687+
std::string url = Config::API_BASE_URL + "/databases/" + databaseId + "/collections/" + collectionId + "/documents/" + documentId;
688+
689+
std::vector<std::string> headers = Config::getHeaders(projectId);
690+
headers.push_back("X-Appwrite-Key: " + apiKey);
691+
692+
std::string response;
693+
694+
int statusCode = Utils::getRequest(url, headers, response);
695+
696+
if (statusCode == HttpStatus::OK) {
697+
return response;
698+
}
699+
else {
700+
throw AppwriteException("Error fetching document. Status code: " + std::to_string(statusCode) + "\n\nResponse: " + response);
701+
}
702+
703+
}

tests/document/deleteDocument

1.3 MB
Binary file not shown.

tests/document/getDocument

1.31 MB
Binary file not shown.

0 commit comments

Comments
 (0)