From a6d188960fcfa189ae4f92d1f5f6e6627f856dd1 Mon Sep 17 00:00:00 2001 From: marcelb Date: Sun, 21 May 2023 09:10:54 +0200 Subject: [PATCH] Tested --- .vscode/settings.json | 21 ++++++++++ lib/api.hpp | 42 ++++++++++++++++++++ src/api.cpp | 87 ++++++++++++++++++++++++++++++++++++++++++ test/compile.sh | 1 + test/test.cpp | 25 ++++++++++++ test/test.o | Bin 0 -> 143104 bytes 6 files changed, 176 insertions(+) create mode 100644 .vscode/settings.json create mode 100644 lib/api.hpp create mode 100644 src/api.cpp create mode 100644 test/compile.sh create mode 100644 test/test.cpp create mode 100755 test/test.o diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..fe45693 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,21 @@ +{ + "files.associations": { + "string": "cpp", + "string_view": "cpp", + "array": "cpp", + "atomic": "cpp", + "cwchar": "cpp", + "exception": "cpp", + "functional": "cpp", + "random": "cpp", + "initializer_list": "cpp", + "iosfwd": "cpp", + "istream": "cpp", + "new": "cpp", + "ostream": "cpp", + "streambuf": "cpp", + "tuple": "cpp", + "type_traits": "cpp", + "utility": "cpp" + } +} \ No newline at end of file diff --git a/lib/api.hpp b/lib/api.hpp new file mode 100644 index 0000000..b118e9e --- /dev/null +++ b/lib/api.hpp @@ -0,0 +1,42 @@ +#ifndef _API_ +#define _API_ + +#include +#include +#include +#include + +using namespace std; + +class defapi { + public: + vector options; + vector keys; + + map> val_matrix; + + defapi(const vector _options, const vector _keys); + void necessary(const string _option, const vector _keys); + +}; + +class api { + public: + defapi *def; + + string option; + map object; + string body; + + api(defapi *_def, const string _option, const map _object); + api(defapi *_def, const string _body); + + private: + bool validate(); + void parse(); // čitaj api + void format(); // šalji api + + // ~api(); +}; + +#endif diff --git a/src/api.cpp b/src/api.cpp new file mode 100644 index 0000000..b354080 --- /dev/null +++ b/src/api.cpp @@ -0,0 +1,87 @@ +#include "../lib/api.hpp" + +defapi::defapi(const vector _options, const vector _keys) { + options = _options; + keys = _keys; +} + +void defapi::necessary(const string _option, const vector _keys) { + val_matrix[_option].insert( val_matrix[_option].end(), _keys.begin(), _keys.end()); +} + +api::api(defapi *_def, const string _option, const map _object) { + def = _def; + object = _object; + option = _option; + + if (!validate()) { + cout << "Validate API error" << endl; + } + format(); + +} + +api::api(defapi *_def, const string _body) { + def = _def; + body = _body; + + parse(); + if (!validate()) { + cout << "Validate API error" << endl; + } + +} + +bool api::validate() { + bool isValidate = true; + + for (uint i=0; ival_matrix[option].size(); i++) { + def->val_matrix[option][i]; + if (object[def->val_matrix[option][i]].empty()) { + isValidate = false; + break; + } + } + + return isValidate; +} + +void api::parse() { + + for (uint i=0; ioptions.size(); i++) { + if (body.find("/"+def->options[i]+"/") < body.length()) { + option = def->options[i]; + } + } + + for (uint i=0; ikeys.size(); i++) { + string key = def->keys[i]+"="; + string value; + if (body.find(key) < body.length()) { + value = body.substr(body.find(key)+key.length(), body.find('&',body.find(key)+key.length())-body.find(key)-key.length() < body.find(' ',body.find(key)+key.length())-body.find(key)-key.length() ? body.find('&',body.find(key)+key.length())-body.find(key)-key.length() : body.find(' ',body.find(key)+key.length())-body.find(key)-key.length()); + } + object[def->keys[i]] = value; + } + +} + +void api::format() { + + body = "GET /"; + + if (!option.empty()) { + body += option + '/'; + } + + body += '?'; + + for (uint i=0; ikeys.size(); i++) { + if (!object[def->keys[i]].empty()) { + body += def->keys[i] + "=" + object[def->keys[i]] + "&"; + } + } + + body.pop_back(); + body += " HTTP/1.1"; + +} \ No newline at end of file diff --git a/test/compile.sh b/test/compile.sh new file mode 100644 index 0000000..9a28838 --- /dev/null +++ b/test/compile.sh @@ -0,0 +1 @@ +g++ test.cpp ../src/* -o test.o \ No newline at end of file diff --git a/test/test.cpp b/test/test.cpp new file mode 100644 index 0000000..a050777 --- /dev/null +++ b/test/test.cpp @@ -0,0 +1,25 @@ +#include + +#include "../lib/api.hpp" + +using namespace std; + +int main() { + + defapi myDef({"add", "delete", "update"}, {"id", "key", "value"}); + + // cout << myDef.keys[2]; + + myDef.necessary("add", {"id", "key", "value"}); + myDef.necessary("delete", {"id"}); + myDef.necessary("update", {"id"}); + myDef.necessary("update", {"value"}); + + // cout << myDef.val_matrix["delete"].empty(); + + api myApi(&myDef, "GET /update/?id=1&value=true HTTP/1.1"); + + cout << myApi.object["value"]; + + +} \ No newline at end of file diff --git a/test/test.o b/test/test.o new file mode 100755 index 0000000000000000000000000000000000000000..2896458d8a938a5e5d3a45504288b07f2762196a GIT binary patch literal 143104 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 bk0zAcYC@jZ;rRz&&aFC2H&h<7zB>OO=ZsM3 literal 0 HcmV?d00001