|
|
|
|
@ -43,14 +43,15 @@ void data::create_data_directory() {
|
|
|
|
|
fs::path data::get_store_path() { return get_data_path() / "store.json"; } |
|
|
|
|
|
|
|
|
|
json data::process(const json &input) { |
|
|
|
|
if (!validate(input)) { |
|
|
|
|
return nullptr; |
|
|
|
|
const auto errors = validate(input); |
|
|
|
|
if (errors.size() != 0) { |
|
|
|
|
return errors; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return input; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
bool data::validate(const json &input) { |
|
|
|
|
json data::validate(const json &input) { |
|
|
|
|
const std::string name = input.value("name", ""); |
|
|
|
|
const std::string address = input.value("address", ""); |
|
|
|
|
const std::string phone = input.value("phone", ""); |
|
|
|
|
@ -59,14 +60,16 @@ bool data::validate(const json &input) {
|
|
|
|
|
const std::unordered_map<std::string, std::string> strings{ |
|
|
|
|
{"name", name}, {"address", address}, {"phone", phone}, {"email", email}}; |
|
|
|
|
|
|
|
|
|
json errors = json::array(); |
|
|
|
|
|
|
|
|
|
for (const auto &f : strings) { |
|
|
|
|
if (f.second.size() == 0) { |
|
|
|
|
return false; |
|
|
|
|
errors.push_back({{f.first, "Missing name."}}); |
|
|
|
|
} |
|
|
|
|
if (f.second.size() >= 255) { |
|
|
|
|
return false; |
|
|
|
|
errors.push_back({{f.first, "Name is to long."}}); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return true; |
|
|
|
|
return errors; |
|
|
|
|
} |
|
|
|
|
|