|
|
|
@ -127,17 +127,22 @@ namespace Bk::Json |
|
|
|
|
if (f_list.exists()) |
|
|
|
|
{ |
|
|
|
|
auto ls = Parser(f_list).parse(); |
|
|
|
|
int i = id - get_page(id) * config->get_object()["page_size"]->get_int(); |
|
|
|
|
auto node = ls->get_p_list()->at(i); |
|
|
|
|
ls->get_p_list()->at(i)->set_object(object); |
|
|
|
|
write(f_list, ls); |
|
|
|
|
return true; |
|
|
|
|
for (int i = 0; i < ls->get_list().size(); i++) |
|
|
|
|
{ |
|
|
|
|
auto node = ls->get_p_list()->at(i); |
|
|
|
|
if (Json::as_key("id", node->get_object()) && node->get_object()["id"]->get_int() == id) |
|
|
|
|
{ |
|
|
|
|
ls->get_p_list()->at(i)->set_object(object); |
|
|
|
|
write(f_list, ls); |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}
|
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void FsManager::remove(int id) |
|
|
|
|
bool FsManager::remove(int id) |
|
|
|
|
{ |
|
|
|
|
auto f_path = Tools::string_format("%s/%d.json", path, get_page(id)); |
|
|
|
|
auto f_list = File(f_path); |
|
|
|
@ -147,16 +152,15 @@ namespace Bk::Json |
|
|
|
|
for (int i = 0; i < ls->get_list().size(); i++) |
|
|
|
|
{ |
|
|
|
|
auto node = ls->get_p_list()->at(i); |
|
|
|
|
if (node->get_object().find("id") != node->get_object().end()) |
|
|
|
|
if (Json::as_key("id", node->get_object()) && node->get_object()["id"]->get_int() == id) |
|
|
|
|
{ |
|
|
|
|
if (node->get_object()["id"]->get_int() == id) |
|
|
|
|
{ |
|
|
|
|
ls->get_p_list()->erase(ls->get_p_list()->begin() + i); |
|
|
|
|
} |
|
|
|
|
ls->get_p_list()->erase(ls->get_p_list()->begin() + i); |
|
|
|
|
write(f_list, ls); |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
write(f_list, ls); |
|
|
|
|
} |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Pointer FsManager::findby_id(int id) |
|
|
|
@ -168,11 +172,42 @@ namespace Bk::Json |
|
|
|
|
if (f_list.exists()) |
|
|
|
|
{ |
|
|
|
|
auto ls = Parser(f_list).parse(); |
|
|
|
|
int i = id - get_page(id) * config->get_object()["page_size"]->get_int(); |
|
|
|
|
auto node = ls->get_p_list()->at(i); |
|
|
|
|
auto node_id = Json::find_key("id", node->get_object()); |
|
|
|
|
if (!node_id->is_null() && node_id->is_type(Node::Type::NUMBER) && node_id->get_int() == id) return node; |
|
|
|
|
for (int i = 0; i < ls->get_list().size(); i++) |
|
|
|
|
{ |
|
|
|
|
auto node = ls->get_p_list()->at(i); |
|
|
|
|
if (Json::as_key("id", node->get_object())) |
|
|
|
|
{ |
|
|
|
|
if (node->get_object()["id"]->get_int() == id) |
|
|
|
|
{ |
|
|
|
|
return node; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
Pointer node(new Node); |
|
|
|
|
node->set_null(); |
|
|
|
|
return node; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Pointer FsManager::find_all() |
|
|
|
|
{ |
|
|
|
|
if (!config->is_null())
|
|
|
|
|
{ |
|
|
|
|
Pointer full_list(new Node); |
|
|
|
|
full_list->set_list(new List); |
|
|
|
|
int max_page = get_page(config->get_object()["id_count"]->get_int()); |
|
|
|
|
for (int i = 0; i <= max_page; i++) |
|
|
|
|
{ |
|
|
|
|
auto f_path = Tools::string_format("%s/%d.json", path, i); |
|
|
|
|
auto f_list = File(f_path); |
|
|
|
|
if (f_list.exists()) |
|
|
|
|
{ |
|
|
|
|
auto ls = Parser(f_list).parse(); |
|
|
|
|
full_list = Json::concat(full_list->get_list(), ls->get_list()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return full_list; |
|
|
|
|
} |
|
|
|
|
Pointer node(new Node); |
|
|
|
|
node->set_null(); |
|
|
|
|