v0.0.6
+ Запросы объеденины в соответствующие модули + Оптимизация кода
This commit is contained in:
parent
ab4b8c6bad
commit
2ba510adac
23 changed files with 462 additions and 530 deletions
|
@ -16,17 +16,8 @@ import verinfo;
|
|||
import pgdb;
|
||||
import structures;
|
||||
|
||||
import requests.listsgroups;
|
||||
import requests.groupnumbers;
|
||||
import requests.editnumber;
|
||||
import requests.updatenumber;
|
||||
import requests.addnumber;
|
||||
import requests.delnumber;
|
||||
import requests.writenumber;
|
||||
import requests.smsnumbers;
|
||||
import requests.listsms;
|
||||
import requests.viewsms;
|
||||
import requests.delsms;
|
||||
import requests.numbers;
|
||||
import requests.sms;
|
||||
|
||||
static ServerInfo serverInfo;
|
||||
|
||||
|
@ -82,15 +73,16 @@ int main(string[] args) {
|
|||
}
|
||||
|
||||
rc.read(flagSettings);
|
||||
rcAsteriskDB();
|
||||
auto webHost = rcWebHost();
|
||||
|
||||
auto webHost = rcWebHost();
|
||||
serverInfo = ServerInfo(webHost.title);
|
||||
|
||||
if (webHost.loglevel != -1) log.level(webHost.loglevel);
|
||||
if (webHost.logoutput) log.output(webHost.logoutput);
|
||||
if (webHost.logfile.length) log.file(webHost.logfile);
|
||||
|
||||
rcAsteriskDB();
|
||||
|
||||
auto router = new URLRouter;
|
||||
router.post("/", &postReq);
|
||||
router.get("/", &getReq);
|
||||
|
@ -176,45 +168,47 @@ void postReq(HTTPServerRequest req, HTTPServerResponse res) {
|
|||
// return;
|
||||
// }
|
||||
|
||||
log.d("json request: " ~ jsr.to!string);
|
||||
|
||||
switch (query) {
|
||||
case "listsgroups":
|
||||
listsGroups(req, res);
|
||||
break;
|
||||
case "groupnumbers":
|
||||
groupNumbers(req, res);
|
||||
break;
|
||||
// case "authorization":
|
||||
// authorization(req, res);
|
||||
// break;
|
||||
// case "logout":
|
||||
// logout(req, res);
|
||||
// break;
|
||||
case "listnumbergroups":
|
||||
getListNumberGroups(req, res);
|
||||
break;
|
||||
case "listgroupnumbers":
|
||||
getListGroupNumbers(req, res);
|
||||
break;
|
||||
case "viewnumber":
|
||||
getViewNumber(req, res);
|
||||
break;
|
||||
case "addnumber":
|
||||
addNumber(req, res);
|
||||
getAddNumber(req, res);
|
||||
break;
|
||||
case "writenumber":
|
||||
writeNumber(req, res);
|
||||
break;
|
||||
case "editnumber":
|
||||
editNumber(req, res);
|
||||
sendWriteNumber(req, res);
|
||||
break;
|
||||
case "updatenumber":
|
||||
updateNumber(req, res);
|
||||
sendUpdateNumber(req, res);
|
||||
break;
|
||||
case "delnumber":
|
||||
delNumber(req, res);
|
||||
sendDelNumber(req, res);
|
||||
break;
|
||||
case "smsnumbers":
|
||||
smsNumbers(req, res);
|
||||
case "listsmsgroups":
|
||||
getListSMSGroups(req, res);
|
||||
break;
|
||||
case "listsms":
|
||||
listSMS(req, res);
|
||||
case "listgroupsms":
|
||||
getListGroupSMS(req, res);
|
||||
break;
|
||||
case "viewsms":
|
||||
viewSMS(req, res);
|
||||
getViewSMS(req, res);
|
||||
break;
|
||||
case "delsms":
|
||||
delSMS(req, res);
|
||||
sendDelSMS(req, res);
|
||||
break;
|
||||
default:
|
||||
res.redirect("/");
|
||||
|
@ -260,7 +254,7 @@ void rcAsteriskDB() {
|
|||
" password=" ~ asteriskDB["password"]
|
||||
);
|
||||
} catch (Exception e) {
|
||||
log.c(e);
|
||||
log.c(e.msg);
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,18 +0,0 @@
|
|||
module requests.addnumber;
|
||||
|
||||
import vibe.vibe;
|
||||
import response;
|
||||
import structures;
|
||||
import data;
|
||||
import singlog;
|
||||
|
||||
void addNumber(HTTPServerRequest req, HTTPServerResponse res) {
|
||||
auto jsr = req.json;
|
||||
bool edit = false;
|
||||
NumberDB dataNumber;
|
||||
dataNumber.group = jsr["group"].get!string;
|
||||
// auto dataNumber = sqlGetDataNumber(jsr["number"].get!string);
|
||||
auto groups = sqlGetGroups();
|
||||
auto lists = sqlGetLists();
|
||||
render!("edit-number.dt", edit, dataNumber, groups, lists)(res);
|
||||
}
|
|
@ -1,24 +0,0 @@
|
|||
module requests.delnumber;
|
||||
|
||||
import vibe.vibe;
|
||||
import response;
|
||||
import structures;
|
||||
import data;
|
||||
import singlog;
|
||||
|
||||
void delNumber(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();
|
||||
}
|
|
@ -1,19 +0,0 @@
|
|||
module requests.delsms;
|
||||
|
||||
import vibe.vibe;
|
||||
import response;
|
||||
import structures;
|
||||
import data;
|
||||
import singlog;
|
||||
|
||||
void delSMS(HTTPServerRequest req, HTTPServerResponse res) {
|
||||
auto jsr = req.json;
|
||||
int idsms = jsr["id"].get!int;
|
||||
|
||||
if (!sqlDeleteSMS(idsms)) {
|
||||
res.send(true, "Не удалось удалить SMS");
|
||||
return;
|
||||
}
|
||||
|
||||
res.send();
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
module requests.editnumber;
|
||||
|
||||
import vibe.vibe;
|
||||
import response;
|
||||
import data;
|
||||
import singlog;
|
||||
|
||||
void editNumber(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!("edit-number.dt", edit, dataNumber, groups, lists)(res);
|
||||
}
|
|
@ -1,11 +0,0 @@
|
|||
module requests.groupnumbers;
|
||||
|
||||
import vibe.vibe;
|
||||
import response;
|
||||
import data;
|
||||
import singlog;
|
||||
|
||||
void groupNumbers(HTTPServerRequest req, HTTPServerResponse res) {
|
||||
auto jsr = req.json;
|
||||
res.writeJsonBody(sqlGetListNumbers(jsr["group"].get!string).serializeToJson());
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
module requests.listsgroups;
|
||||
|
||||
import vibe.vibe;
|
||||
import response;
|
||||
import data;
|
||||
|
||||
void listsGroups(HTTPServerRequest req, HTTPServerResponse res) {
|
||||
auto listGroups = sqlGetListGroups();
|
||||
render!("group-numbers-list.dt", listGroups)(res);
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
module requests.listsms;
|
||||
|
||||
import vibe.vibe;
|
||||
import response;
|
||||
import data;
|
||||
|
||||
void listSMS(HTTPServerRequest req, HTTPServerResponse res) {
|
||||
auto jsr = req.json;
|
||||
res.writeJsonBody(sqlGetListSMS(jsr["to"].get!string).serializeToJson());
|
||||
}
|
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;
|
||||
}
|
39
source/requests/sms.d
Normal file
39
source/requests/sms.d
Normal file
|
@ -0,0 +1,39 @@
|
|||
module requests.sms;
|
||||
|
||||
import vibe.vibe;
|
||||
import response;
|
||||
import structures;
|
||||
import sql;
|
||||
import singlog;
|
||||
|
||||
// Получить список всех групп SMS
|
||||
void getListSMSGroups(HTTPServerRequest req, HTTPServerResponse res) {
|
||||
auto numbers = sqlGetSMSNumbers();
|
||||
render!("list_sms_groups.dt", numbers)(res);
|
||||
}
|
||||
|
||||
// Получить список SMS конкретной группы
|
||||
void getListGroupSMS(HTTPServerRequest req, HTTPServerResponse res) {
|
||||
auto jsr = req.json;
|
||||
res.writeJsonBody(sqlGetListSMS(jsr["to"].get!string).serializeToJson());
|
||||
}
|
||||
|
||||
// Просмотр SMS
|
||||
void getViewSMS(HTTPServerRequest req, HTTPServerResponse res) {
|
||||
auto jsr = req.json;
|
||||
auto dataSMS = sqlGetSMS(jsr["id"].to!int);
|
||||
render!("sms.dt", dataSMS)(res);
|
||||
}
|
||||
|
||||
// Удалить SMS
|
||||
void sendDelSMS(HTTPServerRequest req, HTTPServerResponse res) {
|
||||
auto jsr = req.json;
|
||||
int idsms = jsr["id"].get!int;
|
||||
|
||||
if (!sqlDeleteSMS(idsms)) {
|
||||
res.send(true, "Не удалось удалить SMS");
|
||||
return;
|
||||
}
|
||||
|
||||
res.send();
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
module requests.smsnumbers;
|
||||
|
||||
import vibe.vibe;
|
||||
import response;
|
||||
import data;
|
||||
import singlog;
|
||||
|
||||
void smsNumbers(HTTPServerRequest req, HTTPServerResponse res) {
|
||||
// auto jsr = req.json;
|
||||
// bool edit = true;
|
||||
// auto dataNumber = sqlGetDataNumber(jsr["number"].get!string);
|
||||
// auto groups = sqlGetGroups();
|
||||
auto numbers = sqlGetSMSNumbers();
|
||||
render!("sms-numbers.dt", numbers)(res);
|
||||
}
|
|
@ -1,42 +0,0 @@
|
|||
module requests.updatenumber;
|
||||
|
||||
import vibe.vibe;
|
||||
import response;
|
||||
import data;
|
||||
import singlog;
|
||||
import structures;
|
||||
|
||||
import std.regex;
|
||||
|
||||
void updateNumber(HTTPServerRequest req, HTTPServerResponse res) {
|
||||
NumberDB number = deserializeJson!NumberDB(req.json);
|
||||
|
||||
// const string pattern_number = r"^\+7\d{10}$";
|
||||
// auto regular_number = regex(pattern_number, "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 (!sqlUpdateNumber(number)) {
|
||||
res.send(true, "Не удалось обновить номер");
|
||||
return;
|
||||
}
|
||||
res.send();
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
module requests.viewsms;
|
||||
|
||||
import vibe.vibe;
|
||||
import response;
|
||||
import data;
|
||||
import singlog;
|
||||
|
||||
void viewSMS(HTTPServerRequest req, HTTPServerResponse res) {
|
||||
auto jsr = req.json;
|
||||
auto dataSMS = sqlGetSMS(jsr["id"].to!int);
|
||||
render!("view-sms.dt", dataSMS)(res);
|
||||
}
|
|
@ -1,42 +0,0 @@
|
|||
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();
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
module data;
|
||||
module sql;
|
||||
|
||||
import pgdb;
|
||||
import singlog;
|
|
@ -1,3 +1,3 @@
|
|||
module version_;
|
||||
|
||||
enum dasterVersion = "v0.0.5";
|
||||
enum dasterVersion = "v0.0.6";
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue