Added level history to graphql #246
This commit is contained in:
parent
5df0501505
commit
325a17b5a8
27
kdb-bot/src/bot_data/abc/history_table_abc.py
Normal file
27
kdb-bot/src/bot_data/abc/history_table_abc.py
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
from abc import ABC, abstractmethod
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
|
||||||
|
class HistoryTableABC(ABC):
|
||||||
|
@abstractmethod
|
||||||
|
def __init__(self):
|
||||||
|
self._id = 0
|
||||||
|
self._deleted = False
|
||||||
|
self._date_from = datetime.now().isoformat()
|
||||||
|
self._date_to = datetime.now().isoformat()
|
||||||
|
|
||||||
|
@property
|
||||||
|
def id(self) -> int:
|
||||||
|
return self._id
|
||||||
|
|
||||||
|
@property
|
||||||
|
def deleted(self) -> bool:
|
||||||
|
return self._deleted
|
||||||
|
|
||||||
|
@property
|
||||||
|
def date_from(self) -> str:
|
||||||
|
return self._date_from
|
||||||
|
|
||||||
|
@property
|
||||||
|
def date_to(self) -> str:
|
||||||
|
return self._date_to
|
15
kdb-bot/src/bot_data/abc/table_with_id_abc.py
Normal file
15
kdb-bot/src/bot_data/abc/table_with_id_abc.py
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
from abc import abstractmethod
|
||||||
|
|
||||||
|
from cpl_core.database import TableABC
|
||||||
|
|
||||||
|
|
||||||
|
class TableWithIdABC(TableABC):
|
||||||
|
@abstractmethod
|
||||||
|
def __init__(self):
|
||||||
|
self.__init__()
|
||||||
|
|
||||||
|
self._id = 0
|
||||||
|
|
||||||
|
@property
|
||||||
|
def id(self) -> int:
|
||||||
|
return self._id
|
@ -9,7 +9,7 @@ ALTER TABLE `AutoRoleRules`
|
|||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `AutoRoleRulesHistory`
|
CREATE TABLE IF NOT EXISTS `AutoRoleRulesHistory`
|
||||||
(
|
(
|
||||||
`AutoRoleRuleId` BIGINT(20) NOT NULL,
|
`Id` BIGINT(20) NOT NULL,
|
||||||
`AutoRoleId` BIGINT(20) DEFAULT NULL,
|
`AutoRoleId` BIGINT(20) DEFAULT NULL,
|
||||||
`DiscordEmojiName` VARCHAR(64) DEFAULT NULL,
|
`DiscordEmojiName` VARCHAR(64) DEFAULT NULL,
|
||||||
`DiscordRoleId` BIGINT(20) NOT NULL,
|
`DiscordRoleId` BIGINT(20) NOT NULL,
|
||||||
@ -26,7 +26,7 @@ CREATE TRIGGER `TR_AutoRoleRulesUpdate`
|
|||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
BEGIN
|
BEGIN
|
||||||
INSERT INTO `AutoRoleRulesHistory` (
|
INSERT INTO `AutoRoleRulesHistory` (
|
||||||
`AutoRoleRuleId`, `AutoRoleId`, `DiscordEmojiName`, `DiscordRoleId`, `DateFrom`, `DateTo`
|
`Id`, `AutoRoleId`, `DiscordEmojiName`, `DiscordRoleId`, `DateFrom`, `DateTo`
|
||||||
)
|
)
|
||||||
VALUES (
|
VALUES (
|
||||||
OLD.AutoRoleRuleId, OLD.AutoRoleId, OLD.DiscordEmojiName, OLD.DiscordRoleId, OLD.LastModifiedAt, CURRENT_TIMESTAMP(6)
|
OLD.AutoRoleRuleId, OLD.AutoRoleId, OLD.DiscordEmojiName, OLD.DiscordRoleId, OLD.LastModifiedAt, CURRENT_TIMESTAMP(6)
|
||||||
@ -41,7 +41,7 @@ CREATE TRIGGER `TR_AutoRoleRulesDelete`
|
|||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
BEGIN
|
BEGIN
|
||||||
INSERT INTO `AutoRoleRulesHistory` (
|
INSERT INTO `AutoRoleRulesHistory` (
|
||||||
`AutoRoleRuleId`, `AutoRoleId`, `DiscordEmojiName`, `DiscordRoleId`, `Deleted`, `DateFrom`, `DateTo`
|
`Id`, `AutoRoleId`, `DiscordEmojiName`, `DiscordRoleId`, `Deleted`, `DateFrom`, `DateTo`
|
||||||
)
|
)
|
||||||
VALUES (
|
VALUES (
|
||||||
OLD.AutoRoleRuleId, OLD.AutoRoleId, OLD.DiscordEmojiName, OLD.DiscordRoleId, TRUE, OLD.LastModifiedAt, CURRENT_TIMESTAMP(6)
|
OLD.AutoRoleRuleId, OLD.AutoRoleId, OLD.DiscordEmojiName, OLD.DiscordRoleId, TRUE, OLD.LastModifiedAt, CURRENT_TIMESTAMP(6)
|
||||||
|
@ -9,7 +9,7 @@ ALTER TABLE `AutoRoles`
|
|||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `AutoRolesHistory`
|
CREATE TABLE IF NOT EXISTS `AutoRolesHistory`
|
||||||
(
|
(
|
||||||
`AutoRoleId` BIGINT(20) NOT NULL,
|
`Id` BIGINT(20) NOT NULL,
|
||||||
`ServerId` BIGINT(20) DEFAULT NULL,
|
`ServerId` BIGINT(20) DEFAULT NULL,
|
||||||
`DiscordChannelId` BIGINT(20) NOT NULL,
|
`DiscordChannelId` BIGINT(20) NOT NULL,
|
||||||
`DiscordMessageId` BIGINT(20) NOT NULL,
|
`DiscordMessageId` BIGINT(20) NOT NULL,
|
||||||
@ -26,7 +26,7 @@ CREATE TRIGGER `TR_AutoRolesUpdate`
|
|||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
BEGIN
|
BEGIN
|
||||||
INSERT INTO `AutoRolesHistory` (
|
INSERT INTO `AutoRolesHistory` (
|
||||||
`AutoRoleId`, `ServerId`, `DiscordChannelId`, `DiscordMessageId`, `DateFrom`, `DateTo`
|
`Id`, `ServerId`, `DiscordChannelId`, `DiscordMessageId`, `DateFrom`, `DateTo`
|
||||||
)
|
)
|
||||||
VALUES (
|
VALUES (
|
||||||
OLD.AutoRoleId, OLD.ServerId, OLD.DiscordChannelId, OLD.DiscordMessageId, OLD.LastModifiedAt,
|
OLD.AutoRoleId, OLD.ServerId, OLD.DiscordChannelId, OLD.DiscordMessageId, OLD.LastModifiedAt,
|
||||||
@ -42,7 +42,7 @@ CREATE TRIGGER `TR_AutoRolesDelete`
|
|||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
BEGIN
|
BEGIN
|
||||||
INSERT INTO `AutoRolesHistory` (
|
INSERT INTO `AutoRolesHistory` (
|
||||||
`AutoRoleId`, `ServerId`, `DiscordChannelId`, `DiscordMessageId`, `Deleted`, `DateFrom`, `DateTo`
|
`Id`, `ServerId`, `DiscordChannelId`, `DiscordMessageId`, `Deleted`, `DateFrom`, `DateTo`
|
||||||
)
|
)
|
||||||
VALUES (
|
VALUES (
|
||||||
OLD.AutoRoleId, OLD.ServerId, OLD.DiscordChannelId, OLD.DiscordMessageId, TRUE, OLD.LastModifiedAt,
|
OLD.AutoRoleId, OLD.ServerId, OLD.DiscordChannelId, OLD.DiscordMessageId, TRUE, OLD.LastModifiedAt,
|
||||||
|
@ -9,8 +9,8 @@ ALTER TABLE `Clients`
|
|||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `ClientsHistory`
|
CREATE TABLE IF NOT EXISTS `ClientsHistory`
|
||||||
(
|
(
|
||||||
`ClientId` BIGINT(20) NOT NULL,
|
`Id` BIGINT(20) NOT NULL,
|
||||||
`DiscordClientId` BIGINT(20) NOT NULL,
|
`DiscordId` BIGINT(20) NOT NULL,
|
||||||
`SentMessageCount` BIGINT(20) NOT NULL DEFAULT 0,
|
`SentMessageCount` BIGINT(20) NOT NULL DEFAULT 0,
|
||||||
`ReceivedMessageCount` BIGINT(20) NOT NULL DEFAULT 0,
|
`ReceivedMessageCount` BIGINT(20) NOT NULL DEFAULT 0,
|
||||||
`DeletedMessageCount` BIGINT(20) NOT NULL DEFAULT 0,
|
`DeletedMessageCount` BIGINT(20) NOT NULL DEFAULT 0,
|
||||||
@ -30,7 +30,7 @@ CREATE TRIGGER `TR_ClientsUpdate`
|
|||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
BEGIN
|
BEGIN
|
||||||
INSERT INTO `ClientsHistory` (
|
INSERT INTO `ClientsHistory` (
|
||||||
`ClientId`, `DiscordClientId`, `SentMessageCount`, `ReceivedMessageCount`, `DeletedMessageCount`,
|
`Id`, `DiscordId`, `SentMessageCount`, `ReceivedMessageCount`, `DeletedMessageCount`,
|
||||||
`ReceivedCommandsCount`, `MovedUsersCount`, `ServerId`, `DateFrom`, `DateTo`
|
`ReceivedCommandsCount`, `MovedUsersCount`, `ServerId`, `DateFrom`, `DateTo`
|
||||||
)
|
)
|
||||||
VALUES (
|
VALUES (
|
||||||
@ -47,7 +47,7 @@ CREATE TRIGGER `TR_ClientsDelete`
|
|||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
BEGIN
|
BEGIN
|
||||||
INSERT INTO `ClientsHistory` (
|
INSERT INTO `ClientsHistory` (
|
||||||
`ClientId`, `DiscordClientId`, `SentMessageCount`, `ReceivedMessageCount`, `DeletedMessageCount`,
|
`Id`, `DiscordId`, `SentMessageCount`, `ReceivedMessageCount`, `DeletedMessageCount`,
|
||||||
`ReceivedCommandsCount`, `MovedUsersCount`, `ServerId`, `Deleted`, `DateFrom`, `DateTo`
|
`ReceivedCommandsCount`, `MovedUsersCount`, `ServerId`, `Deleted`, `DateFrom`, `DateTo`
|
||||||
)
|
)
|
||||||
VALUES (
|
VALUES (
|
||||||
|
@ -9,7 +9,7 @@ ALTER TABLE `KnownUsers`
|
|||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `KnownUsersHistory`
|
CREATE TABLE IF NOT EXISTS `KnownUsersHistory`
|
||||||
(
|
(
|
||||||
`KnownUserId` BIGINT(20) NOT NULL,
|
`Id` BIGINT(20) NOT NULL,
|
||||||
`DiscordId` BIGINT(20) NOT NULL,
|
`DiscordId` BIGINT(20) NOT NULL,
|
||||||
`Deleted` BOOL DEFAULT FALSE,
|
`Deleted` BOOL DEFAULT FALSE,
|
||||||
`DateFrom` DATETIME(6) NOT NULL,
|
`DateFrom` DATETIME(6) NOT NULL,
|
||||||
@ -24,7 +24,7 @@ CREATE TRIGGER `TR_KnownUsersUpdate`
|
|||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
BEGIN
|
BEGIN
|
||||||
INSERT INTO `KnownUsersHistory` (
|
INSERT INTO `KnownUsersHistory` (
|
||||||
`KnownUserId`, `DiscordId`, `DateFrom`, `DateTo`
|
`Id`, `DiscordId`, `DateFrom`, `DateTo`
|
||||||
)
|
)
|
||||||
VALUES (
|
VALUES (
|
||||||
OLD.KnownUserId, OLD.DiscordId, OLD.LastModifiedAt, CURRENT_TIMESTAMP(6)
|
OLD.KnownUserId, OLD.DiscordId, OLD.LastModifiedAt, CURRENT_TIMESTAMP(6)
|
||||||
@ -39,7 +39,7 @@ CREATE TRIGGER `TR_KnownUsersDelete`
|
|||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
BEGIN
|
BEGIN
|
||||||
INSERT INTO `KnownUsersHistory` (
|
INSERT INTO `KnownUsersHistory` (
|
||||||
`KnownUserId`, `DiscordId`, `Deleted`, `DateFrom`, `DateTo`
|
`Id`, `DiscordId`, `Deleted`, `DateFrom`, `DateTo`
|
||||||
)
|
)
|
||||||
VALUES (
|
VALUES (
|
||||||
OLD.KnownUserId, OLD.DiscordId, TRUE, OLD.LastModifiedAt, CURRENT_TIMESTAMP(6)
|
OLD.KnownUserId, OLD.DiscordId, TRUE, OLD.LastModifiedAt, CURRENT_TIMESTAMP(6)
|
||||||
|
@ -9,8 +9,8 @@ ALTER TABLE `Servers`
|
|||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `ServersHistory`
|
CREATE TABLE IF NOT EXISTS `ServersHistory`
|
||||||
(
|
(
|
||||||
`ServerId` BIGINT(20) NOT NULL,
|
`Id` BIGINT(20) NOT NULL,
|
||||||
`DiscordServerId` BIGINT(20) NOT NULL,
|
`DiscordId` BIGINT(20) NOT NULL,
|
||||||
`Deleted` BOOL DEFAULT FALSE,
|
`Deleted` BOOL DEFAULT FALSE,
|
||||||
`DateFrom` DATETIME(6) NOT NULL,
|
`DateFrom` DATETIME(6) NOT NULL,
|
||||||
`DateTo` DATETIME(6) NOT NULL
|
`DateTo` DATETIME(6) NOT NULL
|
||||||
@ -24,7 +24,7 @@ CREATE TRIGGER `TR_ServersUpdate`
|
|||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
BEGIN
|
BEGIN
|
||||||
INSERT INTO `ServersHistory` (
|
INSERT INTO `ServersHistory` (
|
||||||
`ServerId`, `DiscordServerId`, `DateFrom`, `DateTo`
|
`Id`, `DiscordId`, `DateFrom`, `DateTo`
|
||||||
)
|
)
|
||||||
VALUES (
|
VALUES (
|
||||||
OLD.ServerId, OLD.DiscordServerId, OLD.LastModifiedAt, CURRENT_TIMESTAMP(6)
|
OLD.ServerId, OLD.DiscordServerId, OLD.LastModifiedAt, CURRENT_TIMESTAMP(6)
|
||||||
@ -39,7 +39,7 @@ CREATE TRIGGER `TR_ServersDelete`
|
|||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
BEGIN
|
BEGIN
|
||||||
INSERT INTO `ServersHistory` (
|
INSERT INTO `ServersHistory` (
|
||||||
`ServerId`, `DiscordServerId`, `Deleted`, `DateFrom`, `DateTo`
|
`Id`, `DiscordId`, `Deleted`, `DateFrom`, `DateTo`
|
||||||
)
|
)
|
||||||
VALUES (
|
VALUES (
|
||||||
OLD.ServerId, OLD.DiscordServerId, TRUE, OLD.LastModifiedAt, CURRENT_TIMESTAMP(6)
|
OLD.ServerId, OLD.DiscordServerId, TRUE, OLD.LastModifiedAt, CURRENT_TIMESTAMP(6)
|
||||||
|
@ -9,7 +9,7 @@ ALTER TABLE `UserJoinedServers`
|
|||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `UserJoinedServersHistory`
|
CREATE TABLE IF NOT EXISTS `UserJoinedServersHistory`
|
||||||
(
|
(
|
||||||
`JoinId` BIGINT(20) NOT NULL,
|
`Id` BIGINT(20) NOT NULL,
|
||||||
`UserId` BIGINT(20) NOT NULL,
|
`UserId` BIGINT(20) NOT NULL,
|
||||||
`JoinedOn` DATETIME(6) NOT NULL,
|
`JoinedOn` DATETIME(6) NOT NULL,
|
||||||
`LeavedOn` DATETIME(6) DEFAULT NULL,
|
`LeavedOn` DATETIME(6) DEFAULT NULL,
|
||||||
@ -26,7 +26,7 @@ CREATE TRIGGER `TR_UserJoinedServersUpdate`
|
|||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
BEGIN
|
BEGIN
|
||||||
INSERT INTO `UserJoinedServersHistory` (
|
INSERT INTO `UserJoinedServersHistory` (
|
||||||
`JoinId`, `UserId`, `JoinedOn`, `LeavedOn`, `DateFrom`, `DateTo`
|
`Id`, `UserId`, `JoinedOn`, `LeavedOn`, `DateFrom`, `DateTo`
|
||||||
)
|
)
|
||||||
VALUES (
|
VALUES (
|
||||||
OLD.JoinId, OLD.UserId, OLD.JoinedOn, OLD.LeavedOn, OLD.LastModifiedAt, CURRENT_TIMESTAMP(6)
|
OLD.JoinId, OLD.UserId, OLD.JoinedOn, OLD.LeavedOn, OLD.LastModifiedAt, CURRENT_TIMESTAMP(6)
|
||||||
@ -41,7 +41,7 @@ CREATE TRIGGER `TR_UserJoinedServersDelete`
|
|||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
BEGIN
|
BEGIN
|
||||||
INSERT INTO `UserJoinedServersHistory` (
|
INSERT INTO `UserJoinedServersHistory` (
|
||||||
`JoinId`, `UserId`, `JoinedOn`, `LeavedOn`, `Deleted`, `DateFrom`, `DateTo`
|
`Id`, `UserId`, `JoinedOn`, `LeavedOn`, `Deleted`, `DateFrom`, `DateTo`
|
||||||
)
|
)
|
||||||
VALUES (
|
VALUES (
|
||||||
OLD.JoinId, OLD.UserId, OLD.JoinedOn, OLD.LeavedOn, TRUE, OLD.LastModifiedAt, CURRENT_TIMESTAMP(6)
|
OLD.JoinId, OLD.UserId, OLD.JoinedOn, OLD.LeavedOn, TRUE, OLD.LastModifiedAt, CURRENT_TIMESTAMP(6)
|
||||||
|
@ -9,7 +9,7 @@ ALTER TABLE `UserJoinedVoiceChannel`
|
|||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `UserJoinedVoiceChannelHistory`
|
CREATE TABLE IF NOT EXISTS `UserJoinedVoiceChannelHistory`
|
||||||
(
|
(
|
||||||
`JoinId` BIGINT(20) NOT NULL,
|
`Id` BIGINT(20) NOT NULL,
|
||||||
`UserId` BIGINT(20) NOT NULL,
|
`UserId` BIGINT(20) NOT NULL,
|
||||||
`DiscordChannelId` BIGINT(20) NOT NULL,
|
`DiscordChannelId` BIGINT(20) NOT NULL,
|
||||||
`JoinedOn` DATETIME(6) NOT NULL,
|
`JoinedOn` DATETIME(6) NOT NULL,
|
||||||
@ -27,7 +27,7 @@ CREATE TRIGGER `TR_UserJoinedVoiceChannelUpdate`
|
|||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
BEGIN
|
BEGIN
|
||||||
INSERT INTO `UserJoinedVoiceChannelHistory` (
|
INSERT INTO `UserJoinedVoiceChannelHistory` (
|
||||||
`JoinId`, `UserId`, `DiscordChannelId`, `JoinedOn`, `LeavedOn`, `DateFrom`, `DateTo`
|
`Id`, `UserId`, `DiscordChannelId`, `JoinedOn`, `LeavedOn`, `DateFrom`, `DateTo`
|
||||||
)
|
)
|
||||||
VALUES (
|
VALUES (
|
||||||
OLD.JoinId, OLD.UserId, OLD.DiscordChannelId, OLD.JoinedOn, OLD.LeavedOn, OLD.LastModifiedAt,
|
OLD.JoinId, OLD.UserId, OLD.DiscordChannelId, OLD.JoinedOn, OLD.LeavedOn, OLD.LastModifiedAt,
|
||||||
@ -43,7 +43,7 @@ CREATE TRIGGER `TR_UserJoinedVoiceChannelDelete`
|
|||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
BEGIN
|
BEGIN
|
||||||
INSERT INTO `UserJoinedVoiceChannelHistory` (
|
INSERT INTO `UserJoinedVoiceChannelHistory` (
|
||||||
`JoinId`, `UserId`, `DiscordChannelId`, `JoinedOn`, `LeavedOn`, `Deleted`, `DateFrom`, `DateTo`
|
`Id`, `UserId`, `DiscordChannelId`, `JoinedOn`, `LeavedOn`, `Deleted`, `DateFrom`, `DateTo`
|
||||||
)
|
)
|
||||||
VALUES (
|
VALUES (
|
||||||
OLD.JoinId, OLD.UserId, OLD.DiscordChannelId, OLD.JoinedOn, OLD.LeavedOn, TRUE, OLD.LastModifiedAt,
|
OLD.JoinId, OLD.UserId, OLD.DiscordChannelId, OLD.JoinedOn, OLD.LeavedOn, TRUE, OLD.LastModifiedAt,
|
||||||
|
@ -9,7 +9,7 @@ ALTER TABLE `Users`
|
|||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `UsersHistory`
|
CREATE TABLE IF NOT EXISTS `UsersHistory`
|
||||||
(
|
(
|
||||||
`UserId` BIGINT(20) NOT NULL,
|
`Id` BIGINT(20) NOT NULL,
|
||||||
`DiscordId` BIGINT(20) NOT NULL,
|
`DiscordId` BIGINT(20) NOT NULL,
|
||||||
`XP` BIGINT(20) NOT NULL DEFAULT 0,
|
`XP` BIGINT(20) NOT NULL DEFAULT 0,
|
||||||
`ServerId` BIGINT(20) DEFAULT NULL,
|
`ServerId` BIGINT(20) DEFAULT NULL,
|
||||||
@ -26,7 +26,7 @@ CREATE TRIGGER `TR_UsersUpdate`
|
|||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
BEGIN
|
BEGIN
|
||||||
INSERT INTO `UsersHistory` (
|
INSERT INTO `UsersHistory` (
|
||||||
`UserId`, `DiscordId`, `XP`, `ServerId`, `DateFrom`, `DateTo`
|
`Id`, `DiscordId`, `XP`, `ServerId`, `DateFrom`, `DateTo`
|
||||||
)
|
)
|
||||||
VALUES (
|
VALUES (
|
||||||
OLD.UserId, OLD.DiscordId, OLD.XP, OLD.ServerId, OLD.LastModifiedAt, CURRENT_TIMESTAMP(6)
|
OLD.UserId, OLD.DiscordId, OLD.XP, OLD.ServerId, OLD.LastModifiedAt, CURRENT_TIMESTAMP(6)
|
||||||
@ -41,7 +41,7 @@ CREATE TRIGGER `TR_UsersDelete`
|
|||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
BEGIN
|
BEGIN
|
||||||
INSERT INTO `UsersHistory` (
|
INSERT INTO `UsersHistory` (
|
||||||
`UserId`, `DiscordId`, `XP`, `ServerId`, `Deleted`, `DateFrom`, `DateTo`
|
`Id`, `DiscordId`, `XP`, `ServerId`, `Deleted`, `DateFrom`, `DateTo`
|
||||||
)
|
)
|
||||||
VALUES (
|
VALUES (
|
||||||
OLD.UserId, OLD.DiscordId, OLD.XP, OLD.ServerId, TRUE, OLD.LastModifiedAt, CURRENT_TIMESTAMP(6)
|
OLD.UserId, OLD.DiscordId, OLD.XP, OLD.ServerId, TRUE, OLD.LastModifiedAt, CURRENT_TIMESTAMP(6)
|
||||||
|
54
kdb-bot/src/bot_data/model/level_history.py
Normal file
54
kdb-bot/src/bot_data/model/level_history.py
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
from typing import Optional
|
||||||
|
|
||||||
|
from bot_data.abc.history_table_abc import HistoryTableABC
|
||||||
|
from bot_data.model.server import Server
|
||||||
|
|
||||||
|
|
||||||
|
class LevelHistory(HistoryTableABC):
|
||||||
|
def __init__(
|
||||||
|
self,
|
||||||
|
name: str,
|
||||||
|
color: str,
|
||||||
|
min_xp: int,
|
||||||
|
permissions: int,
|
||||||
|
server: Optional[Server],
|
||||||
|
deleted: bool,
|
||||||
|
date_from: str,
|
||||||
|
date_to: str,
|
||||||
|
id=0,
|
||||||
|
):
|
||||||
|
HistoryTableABC.__init__(self)
|
||||||
|
|
||||||
|
self._id = id
|
||||||
|
self._name = name
|
||||||
|
self._color = color
|
||||||
|
self._min_xp = min_xp
|
||||||
|
self._permissions = permissions
|
||||||
|
self._server = server
|
||||||
|
self._deleted = deleted
|
||||||
|
self._date_from = date_from
|
||||||
|
self._date_to = date_to
|
||||||
|
|
||||||
|
@property
|
||||||
|
def id(self) -> int:
|
||||||
|
return self._id
|
||||||
|
|
||||||
|
@property
|
||||||
|
def name(self) -> str:
|
||||||
|
return self._name
|
||||||
|
|
||||||
|
@property
|
||||||
|
def color(self) -> str:
|
||||||
|
return self._color
|
||||||
|
|
||||||
|
@property
|
||||||
|
def min_xp(self) -> int:
|
||||||
|
return self._min_xp
|
||||||
|
|
||||||
|
@property
|
||||||
|
def permissions(self) -> int:
|
||||||
|
return self._permissions
|
||||||
|
|
||||||
|
@property
|
||||||
|
def server(self) -> Server:
|
||||||
|
return self._server
|
41
kdb-bot/src/bot_graphql/abc/data_query_with_history_abc.py
Normal file
41
kdb-bot/src/bot_graphql/abc/data_query_with_history_abc.py
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
from typing import Type
|
||||||
|
|
||||||
|
from cpl_core.database.context import DatabaseContextABC
|
||||||
|
from cpl_query.extension import List
|
||||||
|
|
||||||
|
from bot_data.abc.history_table_abc import HistoryTableABC
|
||||||
|
from bot_data.abc.table_with_id_abc import TableWithIdABC
|
||||||
|
from bot_graphql.abc.data_query_abc import DataQueryABC
|
||||||
|
|
||||||
|
|
||||||
|
class DataQueryWithHistoryABC(DataQueryABC):
|
||||||
|
def __init__(
|
||||||
|
self,
|
||||||
|
name: str,
|
||||||
|
table_name: str,
|
||||||
|
history_type: Type[HistoryTableABC],
|
||||||
|
db: DatabaseContextABC,
|
||||||
|
):
|
||||||
|
self._table_name = table_name
|
||||||
|
self._history_type = history_type
|
||||||
|
self._db = db
|
||||||
|
|
||||||
|
DataQueryABC.__init__(self, name)
|
||||||
|
|
||||||
|
self.set_field("history", self.resolve_history)
|
||||||
|
|
||||||
|
def resolve_history(self, entry: TableWithIdABC, *_):
|
||||||
|
history = List(self._history_type)
|
||||||
|
|
||||||
|
results = self._db.select(
|
||||||
|
f"""
|
||||||
|
SELECT *
|
||||||
|
FROM {self._table_name}
|
||||||
|
WHERE Id = {entry.id};
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
|
||||||
|
for result in results:
|
||||||
|
history.add(self._history_type(*result[1:], result[0]))
|
||||||
|
|
||||||
|
return history
|
@ -28,6 +28,7 @@ from bot_graphql.queries.auto_role_query import AutoRoleQuery
|
|||||||
from bot_graphql.queries.auto_role_rule_query import AutoRoleRuleQuery
|
from bot_graphql.queries.auto_role_rule_query import AutoRoleRuleQuery
|
||||||
from bot_graphql.queries.client_query import ClientQuery
|
from bot_graphql.queries.client_query import ClientQuery
|
||||||
from bot_graphql.queries.known_user_query import KnownUserQuery
|
from bot_graphql.queries.known_user_query import KnownUserQuery
|
||||||
|
from bot_graphql.queries.level_history_query import LevelHistoryQuery
|
||||||
from bot_graphql.queries.level_query import LevelQuery
|
from bot_graphql.queries.level_query import LevelQuery
|
||||||
from bot_graphql.queries.server_query import ServerQuery
|
from bot_graphql.queries.server_query import ServerQuery
|
||||||
from bot_graphql.queries.user_joined_game_server_query import UserJoinedGameServerQuery
|
from bot_graphql.queries.user_joined_game_server_query import UserJoinedGameServerQuery
|
||||||
@ -57,6 +58,7 @@ class GraphQLModule(ModuleABC):
|
|||||||
services.add_transient(QueryABC, ClientQuery)
|
services.add_transient(QueryABC, ClientQuery)
|
||||||
services.add_transient(QueryABC, KnownUserQuery)
|
services.add_transient(QueryABC, KnownUserQuery)
|
||||||
services.add_transient(QueryABC, LevelQuery)
|
services.add_transient(QueryABC, LevelQuery)
|
||||||
|
services.add_transient(QueryABC, LevelHistoryQuery)
|
||||||
services.add_transient(QueryABC, ServerQuery)
|
services.add_transient(QueryABC, ServerQuery)
|
||||||
services.add_transient(QueryABC, UserQuery)
|
services.add_transient(QueryABC, UserQuery)
|
||||||
services.add_transient(QueryABC, UserJoinedServerQuery)
|
services.add_transient(QueryABC, UserJoinedServerQuery)
|
||||||
|
@ -3,6 +3,18 @@ interface TableQuery {
|
|||||||
modifiedAt: String
|
modifiedAt: String
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface TableWithHistoryQuery {
|
||||||
|
createdAt: String
|
||||||
|
modifiedAt: String
|
||||||
|
history: [HistoryTableQuery]
|
||||||
|
}
|
||||||
|
|
||||||
|
interface HistoryTableQuery {
|
||||||
|
deleted: Boolean
|
||||||
|
dateFrom: String
|
||||||
|
dateTo: String
|
||||||
|
}
|
||||||
|
|
||||||
input Page {
|
input Page {
|
||||||
pageIndex: Int
|
pageIndex: Int
|
||||||
pageSize: Int
|
pageSize: Int
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
type Level implements TableQuery {
|
type Level implements TableWithHistoryQuery {
|
||||||
id: ID
|
id: ID
|
||||||
name: String
|
name: String
|
||||||
color: String
|
color: String
|
||||||
@ -9,6 +9,22 @@ type Level implements TableQuery {
|
|||||||
|
|
||||||
createdAt: String
|
createdAt: String
|
||||||
modifiedAt: String
|
modifiedAt: String
|
||||||
|
|
||||||
|
history: [LevelHistory]
|
||||||
|
}
|
||||||
|
|
||||||
|
type LevelHistory implements HistoryTableQuery {
|
||||||
|
id: ID
|
||||||
|
name: String
|
||||||
|
color: String
|
||||||
|
minXp: Int
|
||||||
|
permissions: String
|
||||||
|
|
||||||
|
server: Server
|
||||||
|
|
||||||
|
deleted: Boolean
|
||||||
|
dateFrom: String
|
||||||
|
dateTo: String
|
||||||
}
|
}
|
||||||
|
|
||||||
input LevelFilter {
|
input LevelFilter {
|
||||||
|
54
kdb-bot/src/bot_graphql/queries/level_history_query.py
Normal file
54
kdb-bot/src/bot_graphql/queries/level_history_query.py
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
from bot_data.abc.history_table_abc import HistoryTableABC
|
||||||
|
from bot_data.model.level import Level
|
||||||
|
from bot_graphql.abc.query_abc import QueryABC
|
||||||
|
|
||||||
|
|
||||||
|
class LevelHistoryQuery(QueryABC):
|
||||||
|
def __init__(self):
|
||||||
|
QueryABC.__init__(self, "LevelHistory")
|
||||||
|
|
||||||
|
self.set_field("id", self.resolve_id)
|
||||||
|
self.set_field("name", self.resolve_name)
|
||||||
|
self.set_field("color", self.resolve_color)
|
||||||
|
self.set_field("minXp", self.resolve_min_xp)
|
||||||
|
self.set_field("permissions", self.resolve_permissions)
|
||||||
|
self.set_field("server", self.resolve_server)
|
||||||
|
self.set_field("deleted", self.resolve_deleted)
|
||||||
|
self.set_field("dateFrom", self.resolve_date_from)
|
||||||
|
self.set_field("dateTo", self.resolve_date_to)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def resolve_id(level: Level, *_):
|
||||||
|
return level.id
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def resolve_name(level: Level, *_):
|
||||||
|
return level.name
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def resolve_color(level: Level, *_):
|
||||||
|
return level.color
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def resolve_min_xp(level: Level, *_):
|
||||||
|
return level.min_xp
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def resolve_permissions(level: Level, *_):
|
||||||
|
return level.permissions
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def resolve_server(level: Level, *_):
|
||||||
|
return level.server
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def resolve_deleted(entry: HistoryTableABC, *_):
|
||||||
|
return entry.deleted
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def resolve_date_from(entry: HistoryTableABC, *_):
|
||||||
|
return entry.date_from
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def resolve_date_to(entry: HistoryTableABC, *_):
|
||||||
|
return entry.date_to
|
@ -1,10 +1,13 @@
|
|||||||
|
from cpl_core.database.context import DatabaseContextABC
|
||||||
|
|
||||||
from bot_data.model.level import Level
|
from bot_data.model.level import Level
|
||||||
from bot_graphql.abc.data_query_abc import DataQueryABC
|
from bot_data.model.level_history import LevelHistory
|
||||||
|
from bot_graphql.abc.data_query_with_history_abc import DataQueryWithHistoryABC
|
||||||
|
|
||||||
|
|
||||||
class LevelQuery(DataQueryABC):
|
class LevelQuery(DataQueryWithHistoryABC):
|
||||||
def __init__(self):
|
def __init__(self, db: DatabaseContextABC):
|
||||||
DataQueryABC.__init__(self, "Level")
|
DataQueryWithHistoryABC.__init__(self, "Level", "LevelsHistory", LevelHistory, db)
|
||||||
|
|
||||||
self.set_field("id", self.resolve_id)
|
self.set_field("id", self.resolve_id)
|
||||||
self.set_field("name", self.resolve_name)
|
self.set_field("name", self.resolve_name)
|
||||||
|
Loading…
Reference in New Issue
Block a user