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