v0.0.6
+ Запросы объеденины в соответствующие модули + Оптимизация кода
This commit is contained in:
parent
ab4b8c6bad
commit
2ba510adac
23 changed files with 462 additions and 530 deletions
113
source/requests/numbers.d
Normal file
113
source/requests/numbers.d
Normal file
|
|
@ -0,0 +1,113 @@
|
|||
module requests.numbers;
|
||||
|
||||
import vibe.vibe;
|
||||
import response;
|
||||
import structures;
|
||||
import sql;
|
||||
import singlog;
|
||||
|
||||
import std.regex;
|
||||
|
||||
// Получить список всех групп номеров
|
||||
void getListNumberGroups(HTTPServerRequest req, HTTPServerResponse res) {
|
||||
auto listGroups = sqlGetListGroups();
|
||||
render!("list_number_groups.dt", listGroups)(res);
|
||||
}
|
||||
|
||||
// Получить список номеров конкретной группы
|
||||
void getListGroupNumbers(HTTPServerRequest req, HTTPServerResponse res) {
|
||||
auto jsr = req.json;
|
||||
res.writeJsonBody(sqlGetListNumbers(jsr["group"].get!string).serializeToJson());
|
||||
}
|
||||
|
||||
// Добавление номера телефона
|
||||
void getAddNumber(HTTPServerRequest req, HTTPServerResponse res) {
|
||||
auto jsr = req.json;
|
||||
bool edit = false;
|
||||
NumberDB dataNumber;
|
||||
dataNumber.group = jsr["group"].get!string;
|
||||
auto groups = sqlGetGroups();
|
||||
auto lists = sqlGetLists();
|
||||
render!("number.dt", edit, dataNumber, groups, lists)(res);
|
||||
}
|
||||
|
||||
// Просмотр номера телефона
|
||||
void getViewNumber(HTTPServerRequest req, HTTPServerResponse res) {
|
||||
auto jsr = req.json;
|
||||
bool edit = true;
|
||||
auto dataNumber = sqlGetDataNumber(jsr["number"].get!string);
|
||||
auto groups = sqlGetGroups();
|
||||
auto lists = sqlGetLists();
|
||||
render!("number.dt", edit, dataNumber, groups, lists)(res);
|
||||
}
|
||||
|
||||
// Обновить номер телефона
|
||||
void sendUpdateNumber(HTTPServerRequest req, HTTPServerResponse res) {
|
||||
NumberDB number = deserializeJson!NumberDB(req.json);
|
||||
|
||||
if (!checkNumber(number, res))
|
||||
return;
|
||||
|
||||
if (!sqlUpdateNumber(number)) {
|
||||
res.send(true, "Не удалось обновить номер");
|
||||
return;
|
||||
}
|
||||
res.send();
|
||||
}
|
||||
|
||||
// Записать номер телефона
|
||||
void sendWriteNumber(HTTPServerRequest req, HTTPServerResponse res) {
|
||||
NumberDB number = deserializeJson!NumberDB(req.json);
|
||||
|
||||
if (!checkNumber(number, res))
|
||||
return;
|
||||
|
||||
if (!sqlInsertNumber(number)) {
|
||||
res.send(true, "Не удалось записать номер");
|
||||
return;
|
||||
}
|
||||
res.send();
|
||||
}
|
||||
|
||||
// Удалить номера телефона
|
||||
void sendDelNumber(HTTPServerRequest req, HTTPServerResponse res) {
|
||||
auto jsr = req.json;
|
||||
string number = jsr["number"].get!string;
|
||||
|
||||
if (!number.length) {
|
||||
res.send(true, "Номер не может быть пуст");
|
||||
return;
|
||||
}
|
||||
|
||||
if (!sqlDeleteNumber(number)) {
|
||||
res.send(true, "Не удалось удалить номер");
|
||||
return;
|
||||
}
|
||||
|
||||
res.send();
|
||||
}
|
||||
|
||||
// Проверка номера перед изменением
|
||||
bool checkNumber(NumberDB number, HTTPServerResponse res) {
|
||||
if (!number.number.matchFirst(regex(r"^\+7\d{10}$", "g"))) {
|
||||
res.send(true, "Номер не соответствует формату +7XXXXXXXXXX");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (number.all_cc < 0) {
|
||||
res.send(true, "Общее количество звонков не может быть отрицательным");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (number.white_cc < 0) {
|
||||
res.send(true, "Белое количество звонков не может быть отрицательным");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (number.black_cc < 0) {
|
||||
res.send(true, "Черное количество звонков не может быть отрицательным");
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue