v0.0.4
+ Реализовано: обновление/добавление/удаление номера + Добавлена кнопка обновления активной вкладки - Доработать проверки на обновление/добавление/удаление номера
This commit is contained in:
		
							parent
							
								
									c0290cd753
								
							
						
					
					
						commit
						de17e88d37
					
				
					 13 changed files with 283 additions and 56 deletions
				
			
		| 
						 | 
				
			
			@ -19,6 +19,10 @@ import structures;
 | 
			
		|||
import requests.listsgroups;
 | 
			
		||||
import requests.groupnumbers;
 | 
			
		||||
import requests.editnumber;
 | 
			
		||||
import requests.updatenumber;
 | 
			
		||||
import requests.addnumber;
 | 
			
		||||
import requests.delnumber;
 | 
			
		||||
import requests.writenumber;
 | 
			
		||||
 | 
			
		||||
static ServerInfo serverInfo;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -181,24 +185,21 @@ void postReq(HTTPServerRequest req, HTTPServerResponse res) {
 | 
			
		|||
    //     case "logout":
 | 
			
		||||
    //         logout(req, res);
 | 
			
		||||
    //         break;
 | 
			
		||||
    //     case "numbers":
 | 
			
		||||
    //         numbers(req, res);
 | 
			
		||||
    //         break;
 | 
			
		||||
    //     case "add":
 | 
			
		||||
    //         addNumber(req, res);
 | 
			
		||||
    //         break;
 | 
			
		||||
    //     case "write":
 | 
			
		||||
    //         writeNumber(req, res);
 | 
			
		||||
    //         break;
 | 
			
		||||
        case "addnumber":
 | 
			
		||||
            addNumber(req, res);
 | 
			
		||||
            break;
 | 
			
		||||
        case "writenumber":
 | 
			
		||||
            writeNumber(req, res);
 | 
			
		||||
            break;
 | 
			
		||||
        case "editnumber":
 | 
			
		||||
            editNumber(req, res);
 | 
			
		||||
            break;
 | 
			
		||||
    //     case "update":
 | 
			
		||||
    //         updateNumber(req, res);
 | 
			
		||||
    //         break;
 | 
			
		||||
    //     case "remove":
 | 
			
		||||
    //         removeNumber(req, res);
 | 
			
		||||
    //         break;
 | 
			
		||||
        case "updatenumber":
 | 
			
		||||
            updateNumber(req, res);
 | 
			
		||||
            break;
 | 
			
		||||
        case "delnumber":
 | 
			
		||||
            delNumber(req, res);
 | 
			
		||||
            break;
 | 
			
		||||
        default:
 | 
			
		||||
            res.redirect("/");
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,7 +6,7 @@ import structures;
 | 
			
		|||
 | 
			
		||||
import std.conv;
 | 
			
		||||
 | 
			
		||||
GroupDB[] getListGroups() {
 | 
			
		||||
GroupDB[] sqlGetListGroups() {
 | 
			
		||||
    GroupDB[] groups;
 | 
			
		||||
    try {
 | 
			
		||||
        auto queryResult = pgsql.sql(
 | 
			
		||||
| 
						 | 
				
			
			@ -31,7 +31,7 @@ GroupDB[] getListGroups() {
 | 
			
		|||
    return groups;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
NumberDB[] getListNumbers(string group) {
 | 
			
		||||
NumberDB[] sqlGetListNumbers(string group) {
 | 
			
		||||
    NumberDB[] numbers;
 | 
			
		||||
    try {
 | 
			
		||||
        auto queryResult = pgsql.sql(
 | 
			
		||||
| 
						 | 
				
			
			@ -44,7 +44,8 @@ NumberDB[] getListNumbers(string group) {
 | 
			
		|||
                dan.da_comment
 | 
			
		||||
            from da_numbers dan
 | 
			
		||||
            left join da_lists dal on dal.da_name = dan.da_list
 | 
			
		||||
            where dan.da_group = ?",
 | 
			
		||||
            where dan.da_group = ?
 | 
			
		||||
            order by dan.da_number",
 | 
			
		||||
            group
 | 
			
		||||
        );
 | 
			
		||||
        foreach (row; queryResult) {
 | 
			
		||||
| 
						 | 
				
			
			@ -66,7 +67,7 @@ NumberDB[] getListNumbers(string group) {
 | 
			
		|||
    return numbers;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
NumberDB getDataNumber(string number) {
 | 
			
		||||
NumberDB sqlGetDataNumber(string number) {
 | 
			
		||||
    NumberDB data;
 | 
			
		||||
    try {
 | 
			
		||||
        auto queryResult = pgsql.sql(
 | 
			
		||||
| 
						 | 
				
			
			@ -98,7 +99,7 @@ NumberDB getDataNumber(string number) {
 | 
			
		|||
    return data;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
GroupDB[] getGroups() {
 | 
			
		||||
GroupDB[] sqlGetGroups() {
 | 
			
		||||
    GroupDB[] groups;
 | 
			
		||||
    try {
 | 
			
		||||
        auto queryResult = pgsql.sql(
 | 
			
		||||
| 
						 | 
				
			
			@ -119,7 +120,7 @@ GroupDB[] getGroups() {
 | 
			
		|||
    return groups;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ListDB[] getLists() {
 | 
			
		||||
ListDB[] sqlGetLists() {
 | 
			
		||||
    ListDB[] lists;
 | 
			
		||||
    try {
 | 
			
		||||
        auto queryResult = pgsql.sql(
 | 
			
		||||
| 
						 | 
				
			
			@ -139,3 +140,63 @@ ListDB[] getLists() {
 | 
			
		|||
 | 
			
		||||
    return lists;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool sqlUpdateNumber(NumberDB number) {
 | 
			
		||||
    try {
 | 
			
		||||
        pgsql.sql(
 | 
			
		||||
            "update da_numbers set
 | 
			
		||||
                da_group = ?,
 | 
			
		||||
                da_list = ?,
 | 
			
		||||
                da_all_cc = ?,
 | 
			
		||||
                da_white_cc = ?,
 | 
			
		||||
                da_black_cc = ?,
 | 
			
		||||
                da_comment = ?
 | 
			
		||||
            where da_number = ?",
 | 
			
		||||
            number.group,
 | 
			
		||||
            number.list,
 | 
			
		||||
            number.all_cc,
 | 
			
		||||
            number.white_cc,
 | 
			
		||||
            number.black_cc,
 | 
			
		||||
            number.comment,
 | 
			
		||||
            number.number
 | 
			
		||||
        );
 | 
			
		||||
    } catch (Exception e) {
 | 
			
		||||
        log.e("Ошибка обновления номера в БД. " ~ e.msg);
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
    return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool sqlDeleteNumber(string number) {
 | 
			
		||||
    try {
 | 
			
		||||
        pgsql.sql(
 | 
			
		||||
            "delete from da_numbers where da_number = ?", number
 | 
			
		||||
        );
 | 
			
		||||
    } catch (Exception e) {
 | 
			
		||||
        log.e("Ошибка удаления номера в БД. " ~ e.msg);
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
    return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool sqlInsertNumber(NumberDB number) {
 | 
			
		||||
    try {
 | 
			
		||||
        pgsql.sql(
 | 
			
		||||
            "insert into da_numbers
 | 
			
		||||
                (da_number, da_group, da_list, da_all_cc, da_white_cc, da_black_cc, da_comment)
 | 
			
		||||
            values
 | 
			
		||||
                (?, ?, ?, ?, ?, ?, ?)",
 | 
			
		||||
            number.number,
 | 
			
		||||
            number.group,
 | 
			
		||||
            number.list,
 | 
			
		||||
            number.all_cc,
 | 
			
		||||
            number.white_cc,
 | 
			
		||||
            number.black_cc,
 | 
			
		||||
            number.comment
 | 
			
		||||
        );
 | 
			
		||||
    } catch (Exception e) {
 | 
			
		||||
        log.error("Ошибка добавления номера телефона в БД. " ~ e.msg);
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
    return true;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										18
									
								
								source/requests/addnumber.d
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								source/requests/addnumber.d
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,18 @@
 | 
			
		|||
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);
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										24
									
								
								source/requests/delnumber.d
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								source/requests/delnumber.d
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,24 @@
 | 
			
		|||
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();
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -8,8 +8,8 @@ import singlog;
 | 
			
		|||
void editNumber(HTTPServerRequest req, HTTPServerResponse res) {
 | 
			
		||||
    auto jsr = req.json;
 | 
			
		||||
    bool edit = true;
 | 
			
		||||
    auto dataNumber = getDataNumber(jsr["number"].get!string);
 | 
			
		||||
    auto groups = getGroups();
 | 
			
		||||
    auto lists = getLists();
 | 
			
		||||
    auto dataNumber = sqlGetDataNumber(jsr["number"].get!string);
 | 
			
		||||
    auto groups = sqlGetGroups();
 | 
			
		||||
    auto lists = sqlGetLists();
 | 
			
		||||
    render!("edit-number.dt", edit, dataNumber, groups, lists)(res);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -7,5 +7,5 @@ import singlog;
 | 
			
		|||
 | 
			
		||||
void groupNumbers(HTTPServerRequest req, HTTPServerResponse res) {
 | 
			
		||||
    auto jsr = req.json;
 | 
			
		||||
    res.writeJsonBody(getListNumbers(jsr["group"].get!string).serializeToJson());
 | 
			
		||||
    res.writeJsonBody(sqlGetListNumbers(jsr["group"].get!string).serializeToJson());
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,6 +5,6 @@ import response;
 | 
			
		|||
import data;
 | 
			
		||||
 | 
			
		||||
void listsGroups(HTTPServerRequest req, HTTPServerResponse res) {
 | 
			
		||||
    auto listGroups = getListGroups();
 | 
			
		||||
    auto listGroups = sqlGetListGroups();
 | 
			
		||||
    render!("group-numbers-list.dt", listGroups)(res);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										16
									
								
								source/requests/updatenumber.d
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								source/requests/updatenumber.d
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,16 @@
 | 
			
		|||
module requests.updatenumber;
 | 
			
		||||
 | 
			
		||||
import vibe.vibe;
 | 
			
		||||
import response;
 | 
			
		||||
import data;
 | 
			
		||||
import singlog;
 | 
			
		||||
import structures;
 | 
			
		||||
 | 
			
		||||
void updateNumber(HTTPServerRequest req, HTTPServerResponse res) {
 | 
			
		||||
    NumberDB number = deserializeJson!NumberDB(req.json);
 | 
			
		||||
    if (!sqlUpdateNumber(number)) {
 | 
			
		||||
        res.send(true, "Не удалось обновить номер");
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
    res.send();
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										16
									
								
								source/requests/writenumber.d
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								source/requests/writenumber.d
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,16 @@
 | 
			
		|||
module requests.writenumber;
 | 
			
		||||
 | 
			
		||||
import vibe.vibe;
 | 
			
		||||
import response;
 | 
			
		||||
import structures;
 | 
			
		||||
import data;
 | 
			
		||||
import singlog;
 | 
			
		||||
 | 
			
		||||
void writeNumber(HTTPServerRequest req, HTTPServerResponse res) {
 | 
			
		||||
    NumberDB number = deserializeJson!NumberDB(req.json);
 | 
			
		||||
    if (!sqlInsertNumber(number)) {
 | 
			
		||||
        res.send(true, "Не удалось записать номер");
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
    res.send();
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,3 +1,3 @@
 | 
			
		|||
module version_;
 | 
			
		||||
 | 
			
		||||
enum dasterVersion = "v0.0.2";
 | 
			
		||||
enum dasterVersion = "v0.0.4";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue