Rewrote Frontend
This commit is contained in:
@@ -30,6 +30,16 @@ namespace dto {
|
||||
db::UserRole role;
|
||||
};
|
||||
|
||||
struct GetNodeEntry {
|
||||
explicit GetNodeEntry(const db::INode& node) : id(node.getValueOfId()), name(node.getValueOfName()), is_file(node.getValueOfIsFile() != 0), has_preview(node.getValueOfHasPreview() != 0), parent(node.getParentId()) {
|
||||
if (node.getValueOfIsFile() != 0) size = node.getValueOfSize();
|
||||
}
|
||||
uint64_t id, size;
|
||||
std::string name;
|
||||
bool is_file, has_preview;
|
||||
std::shared_ptr<uint64_t> parent;
|
||||
};
|
||||
|
||||
drogon::HttpResponsePtr get_error_res(drogon::HttpStatusCode, const std::string &msg);
|
||||
drogon::HttpResponsePtr get_success_res();
|
||||
drogon::HttpResponsePtr get_success_res(Json::Value &);
|
||||
@@ -46,10 +56,13 @@ namespace dto {
|
||||
drogon::HttpResponsePtr get_admin_users_res(const std::vector<GetUsersEntry>& users);
|
||||
|
||||
drogon::HttpResponsePtr get_root_res(uint64_t root);
|
||||
drogon::HttpResponsePtr get_node_folder_res(uint64_t id, const std::string& name, const std::shared_ptr<uint64_t>& parent, const std::vector<uint64_t>& children);
|
||||
drogon::HttpResponsePtr get_node_file_res(uint64_t id, const std::string& name, const std::shared_ptr<uint64_t>& parent, uint64_t size);
|
||||
drogon::HttpResponsePtr get_path_res(const std::string& path);
|
||||
drogon::HttpResponsePtr get_node_res(const GetNodeEntry& node, const std::vector<GetNodeEntry>& children);
|
||||
drogon::HttpResponsePtr get_new_node_res(uint64_t id);
|
||||
drogon::HttpResponsePtr get_node_exists_res(uint64_t id, bool file);
|
||||
drogon::HttpResponsePtr get_download_base64_res(const std::string& data);
|
||||
drogon::HttpResponsePtr get_type_res(const std::string& type);
|
||||
drogon::HttpResponsePtr get_create_zip_done_res();
|
||||
drogon::HttpResponsePtr get_create_zip_done_res(uint64_t progress, uint64_t total);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -63,30 +63,24 @@ namespace dto::Responses {
|
||||
return get_success_res(json);
|
||||
}
|
||||
|
||||
drogon::HttpResponsePtr get_node_folder_res(uint64_t id, const std::string &name, const std::shared_ptr<uint64_t> &parent, const std::vector<uint64_t> &children) {
|
||||
Json::Value parse_node(const GetNodeEntry& node) {
|
||||
Json::Value json;
|
||||
json["id"] = id;
|
||||
json["name"] = name;
|
||||
json["isFile"] = false;
|
||||
json["parent"] = (parent != nullptr) ? *parent : Json::Value::nullSingleton();
|
||||
for (uint64_t child : children)
|
||||
json["children"].append(child);
|
||||
return get_success_res(json);
|
||||
json["id"] = node.id;
|
||||
json["name"] = node.name;
|
||||
json["isFile"] = node.is_file;
|
||||
json["preview"] = node.has_preview;
|
||||
json["parent"] = (node.parent != nullptr) ? *node.parent : Json::Value::nullSingleton();
|
||||
if (node.is_file) json["size"] = node.size;
|
||||
return json;
|
||||
}
|
||||
|
||||
drogon::HttpResponsePtr get_node_file_res(uint64_t id, const std::string &name, const std::shared_ptr<uint64_t> &parent, uint64_t size) {
|
||||
Json::Value json;
|
||||
json["id"] = id;
|
||||
json["name"] = name;
|
||||
json["isFile"] = true;
|
||||
json["parent"] = (parent != nullptr) ? *parent : Json::Value::nullSingleton();
|
||||
json["size"] = size;
|
||||
return get_success_res(json);
|
||||
}
|
||||
|
||||
drogon::HttpResponsePtr get_path_res(const std::string& path) {
|
||||
Json::Value json;
|
||||
json["path"] = path;
|
||||
drogon::HttpResponsePtr get_node_res(const GetNodeEntry& node, const std::vector<GetNodeEntry>& children) {
|
||||
Json::Value json = parse_node(node);
|
||||
if (!node.is_file) {
|
||||
json["children"] = Json::Value(Json::arrayValue);
|
||||
for (const GetNodeEntry& child : children)
|
||||
json["children"].append(parse_node(child));
|
||||
}
|
||||
return get_success_res(json);
|
||||
}
|
||||
|
||||
@@ -95,4 +89,38 @@ namespace dto::Responses {
|
||||
json["id"] = id;
|
||||
return get_success_res(json);
|
||||
}
|
||||
|
||||
drogon::HttpResponsePtr get_node_exists_res(uint64_t id, bool file) {
|
||||
Json::Value json;
|
||||
json["id"] = id;
|
||||
json["exists"] = true;
|
||||
json["isFile"] = file;
|
||||
return get_success_res(json);
|
||||
}
|
||||
|
||||
drogon::HttpResponsePtr get_download_base64_res(const std::string &data) {
|
||||
Json::Value json;
|
||||
json["data"] = data;
|
||||
return get_success_res(json);
|
||||
}
|
||||
|
||||
drogon::HttpResponsePtr get_type_res(const std::string &type) {
|
||||
Json::Value json;
|
||||
json["type"] = type;
|
||||
return get_success_res(json);
|
||||
}
|
||||
|
||||
drogon::HttpResponsePtr get_create_zip_done_res() {
|
||||
Json::Value json;
|
||||
json["done"] = true;
|
||||
return get_success_res(json);
|
||||
}
|
||||
|
||||
drogon::HttpResponsePtr get_create_zip_done_res(uint64_t progress, uint64_t total) {
|
||||
Json::Value json;
|
||||
json["done"] = false;
|
||||
json["progress"] = progress;
|
||||
json["total"] = total;
|
||||
return get_success_res(json);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user