v0.0.8
+ Реализовано: просмотр параметров сервера и возможность редактирования
This commit is contained in:
parent
69ab43a4ec
commit
7a71bb7e01
13 changed files with 247 additions and 63 deletions
|
@ -19,6 +19,7 @@ import structures;
|
|||
import requests.numbers;
|
||||
import requests.sms;
|
||||
import requests.ussd;
|
||||
import requests.server;
|
||||
|
||||
static ServerInfo serverInfo;
|
||||
|
||||
|
@ -223,6 +224,12 @@ void postReq(HTTPServerRequest req, HTTPServerResponse res) {
|
|||
case "delussd":
|
||||
sendDelUSSD(req, res);
|
||||
break;
|
||||
case "serverinfo":
|
||||
getServerInfo(req, res);
|
||||
break;
|
||||
case "writeserverinfo":
|
||||
sendWriteServerInfo(req, res);
|
||||
break;
|
||||
default:
|
||||
res.redirect("/");
|
||||
}
|
||||
|
|
30
source/requests/server.d
Normal file
30
source/requests/server.d
Normal file
|
@ -0,0 +1,30 @@
|
|||
module requests.server;
|
||||
|
||||
import vibe.vibe;
|
||||
import response;
|
||||
import structures;
|
||||
import sql;
|
||||
import singlog;
|
||||
|
||||
import std.regex;
|
||||
|
||||
// Получить информацию о сервере
|
||||
void getServerInfo(HTTPServerRequest req, HTTPServerResponse res) {
|
||||
auto dataServer = sqlGetServerInfo();
|
||||
render!("server.dt", dataServer)(res);
|
||||
}
|
||||
|
||||
void sendWriteServerInfo(HTTPServerRequest req, HTTPServerResponse res) {
|
||||
ServerDB server = deserializeJson!ServerDB(req.json);
|
||||
|
||||
if (!server.external_number.matchFirst(regex(r"^\+7\d{10}$", "g"))) {
|
||||
res.send(true, "Внешний номер не соответствует формату +7XXXXXXXXXX");
|
||||
return;
|
||||
}
|
||||
|
||||
if (!sqlUpdateServerInfo(server)) {
|
||||
res.send(true, "Не удалось записать параметры сервера");
|
||||
return;
|
||||
}
|
||||
res.send();
|
||||
}
|
74
source/sql.d
74
source/sql.d
|
@ -6,11 +6,9 @@ import structures;
|
|||
|
||||
import std.conv;
|
||||
|
||||
/*
|
||||
|
||||
Запросы для таблицы номеров телефонов
|
||||
|
||||
*/
|
||||
/***********************************************************
|
||||
Запросы для таблицы номеров телефонов
|
||||
***********************************************************/
|
||||
|
||||
GroupDB[] sqlGetListGroups() {
|
||||
GroupDB[] groups;
|
||||
|
@ -207,11 +205,9 @@ bool sqlInsertNumber(NumberDB number) {
|
|||
return true;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
Запросы для таблицы SMS
|
||||
|
||||
*/
|
||||
/***********************************************************
|
||||
Запросы для таблицы SMS
|
||||
***********************************************************/
|
||||
|
||||
SMSDB[] sqlGetSMSNumbers() {
|
||||
SMSDB[] numbers;
|
||||
|
@ -306,11 +302,9 @@ bool sqlDeleteSMS(int idsms) {
|
|||
return true;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
Запросы для таблицы USSD
|
||||
|
||||
*/
|
||||
/***********************************************************
|
||||
Запросы для таблицы USSD
|
||||
***********************************************************/
|
||||
|
||||
USSDDB[] sqlGetUSSDNumbers() {
|
||||
USSDDB[] numbers;
|
||||
|
@ -408,3 +402,53 @@ bool sqlDeleteUSSD(int idussd) {
|
|||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/***********************************************************
|
||||
Запросы для таблицы информации о сервере
|
||||
***********************************************************/
|
||||
|
||||
ServerDB sqlGetServerInfo() {
|
||||
ServerDB server;
|
||||
try {
|
||||
auto queryResult = pgsql.sql(
|
||||
"select
|
||||
case when da_transparent_mode then 1 else 0 end da_transparent_mode,
|
||||
da_internal_number,
|
||||
da_external_number,
|
||||
case when da_external_number_on then 1 else 0 end da_external_number_on
|
||||
from da_server
|
||||
where da_id = 1"
|
||||
);
|
||||
foreach (row; queryResult) {
|
||||
server.transparent_mode = row["da_transparent_mode"].to!int.to!bool;
|
||||
server.internal_number = row["da_internal_number"];
|
||||
server.external_number = row["da_external_number"];
|
||||
server.external_number_on = row["da_external_number_on"].to!int.to!bool;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.e("Не удалось выполнить запрос к БД. " ~ e.msg);
|
||||
}
|
||||
|
||||
return server;
|
||||
}
|
||||
|
||||
bool sqlUpdateServerInfo(ServerDB server) {
|
||||
try {
|
||||
pgsql.sql(
|
||||
"update da_server set
|
||||
da_transparent_mode = ?,
|
||||
da_internal_number = ?,
|
||||
da_external_number = ?,
|
||||
da_external_number_on = ?
|
||||
where da_id = 1",
|
||||
server.transparent_mode,
|
||||
server.internal_number,
|
||||
server.external_number,
|
||||
server.external_number_on
|
||||
);
|
||||
} catch (Exception e) {
|
||||
log.e("Ошибка обновления параметров сервера в БД. " ~ e.msg);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -53,3 +53,10 @@ struct USSDDB {
|
|||
string type_comment;
|
||||
string text;
|
||||
}
|
||||
|
||||
struct ServerDB {
|
||||
bool transparent_mode;
|
||||
string internal_number;
|
||||
string external_number;
|
||||
bool external_number_on;
|
||||
}
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
module version_;
|
||||
|
||||
enum dasterVersion = "v0.0.6";
|
||||
enum dasterVersion = "v0.0.8";
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue