203 lines
5.2 KiB
D
203 lines
5.2 KiB
D
module data;
|
||
|
||
import pgdb;
|
||
import singlog;
|
||
import structures;
|
||
|
||
import std.conv;
|
||
|
||
GroupDB[] sqlGetListGroups() {
|
||
GroupDB[] groups;
|
||
try {
|
||
auto queryResult = pgsql.sql(
|
||
"select distinct
|
||
dan.da_group,
|
||
dag.da_comment
|
||
from da_numbers dan
|
||
left join da_groups dag ON dag.da_name = dan.da_group"
|
||
);
|
||
foreach (row; queryResult) {
|
||
GroupDB data;
|
||
|
||
data.name = row["da_group"];
|
||
data.comment = row["da_comment"];
|
||
|
||
groups ~= data;
|
||
}
|
||
} catch (Exception e) {
|
||
log.e("Не удалось выполнить запрос к БД. " ~ e.msg);
|
||
}
|
||
|
||
return groups;
|
||
}
|
||
|
||
NumberDB[] sqlGetListNumbers(string group) {
|
||
NumberDB[] numbers;
|
||
try {
|
||
auto queryResult = pgsql.sql(
|
||
"select
|
||
dan.da_number,
|
||
dal.da_comment da_list,
|
||
dan.da_all_cc,
|
||
dan.da_white_cc,
|
||
dan.da_black_cc,
|
||
dan.da_comment
|
||
from da_numbers dan
|
||
left join da_lists dal on dal.da_name = dan.da_list
|
||
where dan.da_group = ?
|
||
order by dan.da_number",
|
||
group
|
||
);
|
||
foreach (row; queryResult) {
|
||
NumberDB data;
|
||
|
||
data.number = row["da_number"];
|
||
data.list = row["da_list"];
|
||
data.all_cc = row["da_all_cc"].to!int;
|
||
data.white_cc = row["da_white_cc"].to!int;
|
||
data.black_cc = row["da_black_cc"].to!int;
|
||
data.comment = row["da_comment"];
|
||
|
||
numbers ~= data;
|
||
}
|
||
} catch (Exception e) {
|
||
log.e("Не удалось выполнить запрос к БД. " ~ e.msg);
|
||
}
|
||
|
||
return numbers;
|
||
}
|
||
|
||
NumberDB sqlGetDataNumber(string number) {
|
||
NumberDB data;
|
||
try {
|
||
auto queryResult = pgsql.sql(
|
||
"select
|
||
da_number,
|
||
da_group,
|
||
da_list,
|
||
da_all_cc,
|
||
da_white_cc,
|
||
da_black_cc,
|
||
da_comment
|
||
from da_numbers
|
||
where da_number = ?",
|
||
number
|
||
);
|
||
foreach (row; queryResult) {
|
||
data.number = row["da_number"];
|
||
data.group = row["da_group"];
|
||
data.list = row["da_list"];
|
||
data.all_cc = row["da_all_cc"].to!int;
|
||
data.white_cc = row["da_white_cc"].to!int;
|
||
data.black_cc = row["da_black_cc"].to!int;
|
||
data.comment = row["da_comment"];
|
||
}
|
||
} catch (Exception e) {
|
||
log.e("Не удалось выполнить запрос к БД. " ~ e.msg);
|
||
}
|
||
|
||
return data;
|
||
}
|
||
|
||
GroupDB[] sqlGetGroups() {
|
||
GroupDB[] groups;
|
||
try {
|
||
auto queryResult = pgsql.sql(
|
||
"select da_name, da_comment from da_groups"
|
||
);
|
||
foreach (row; queryResult) {
|
||
GroupDB data;
|
||
|
||
data.name = row["da_name"];
|
||
data.comment = row["da_comment"];
|
||
|
||
groups ~= data;
|
||
}
|
||
} catch (Exception e) {
|
||
log.e("Не удалось выполнить запрос к БД. " ~ e.msg);
|
||
}
|
||
|
||
return groups;
|
||
}
|
||
|
||
ListDB[] sqlGetLists() {
|
||
ListDB[] lists;
|
||
try {
|
||
auto queryResult = pgsql.sql(
|
||
"select da_name, da_comment from da_lists"
|
||
);
|
||
foreach (row; queryResult) {
|
||
ListDB data;
|
||
|
||
data.name = row["da_name"];
|
||
data.comment = row["da_comment"];
|
||
|
||
lists ~= data;
|
||
}
|
||
} catch (Exception e) {
|
||
log.e("Не удалось выполнить запрос к БД. " ~ e.msg);
|
||
}
|
||
|
||
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;
|
||
}
|