43 lines
1.2 KiB
D
43 lines
1.2 KiB
D
module requests.writenumber;
|
||
|
||
import vibe.vibe;
|
||
import response;
|
||
import structures;
|
||
import data;
|
||
import singlog;
|
||
|
||
import std.regex;
|
||
|
||
void writeNumber(HTTPServerRequest req, HTTPServerResponse res) {
|
||
NumberDB number = deserializeJson!NumberDB(req.json);
|
||
|
||
// const string pattern_number = r"^\+7\d{10}$";
|
||
// auto regular_number = regex(r"^\+7\d{10}$", "g");
|
||
|
||
if (!number.number.matchFirst(regex(r"^\+7\d{10}$", "g"))) {
|
||
res.send(true, "Номер не соответствует формату +7XXXXXXXXXX");
|
||
return;
|
||
}
|
||
|
||
if (number.all_cc < 0) {
|
||
res.send(true, "Общее количество звонков не может быть отрицательным");
|
||
return;
|
||
}
|
||
|
||
if (number.white_cc < 0) {
|
||
res.send(true, "Белое количество звонков не может быть отрицательным");
|
||
return;
|
||
}
|
||
|
||
if (number.black_cc < 0) {
|
||
res.send(true, "Черное количество звонков не может быть отрицательным");
|
||
return;
|
||
}
|
||
|
||
if (!sqlInsertNumber(number)) {
|
||
res.send(true, "Не удалось записать номер");
|
||
return;
|
||
}
|
||
res.send();
|
||
}
|