feat: implement full CRUD and administrative management endpoints for WAP servers in the sysadmin API
This commit is contained in:
@@ -7,6 +7,7 @@ export type FindWapServerParams = {
|
||||
description?: string;
|
||||
countBots?: number;
|
||||
maxBots?: number;
|
||||
port?: number;
|
||||
active?: boolean;
|
||||
countBotsFrom?: number;
|
||||
countBotsTo?: number;
|
||||
@@ -100,9 +101,19 @@ export interface IWapServer {
|
||||
ipv6: string;
|
||||
countBots: number;
|
||||
maxBots: number;
|
||||
port: number;
|
||||
active: boolean;
|
||||
}
|
||||
|
||||
export type UpdateWapServerParams = {
|
||||
serverId: string;
|
||||
name?: string;
|
||||
ipv4?: string;
|
||||
port?: number;
|
||||
maxBots?: number;
|
||||
active?: boolean;
|
||||
};
|
||||
|
||||
export type PaginateWapServerParams = FindWapServerParams & {
|
||||
page: number;
|
||||
limit: number;
|
||||
@@ -114,13 +125,111 @@ export type PaginateWapServerResults = {
|
||||
pages: number;
|
||||
};
|
||||
|
||||
export type SysAdminWapServerByIdParams = {
|
||||
serverId: string;
|
||||
};
|
||||
|
||||
export type SysAdminWapServerAuditParams = SysAdminWapServerByIdParams;
|
||||
|
||||
export type SysAdminWapServerRecalculateCountParams = SysAdminWapServerByIdParams;
|
||||
|
||||
export type SysAdminDeleteWapServerParams = SysAdminWapServerByIdParams;
|
||||
|
||||
export type SysAdminDeleteWapServerResult = {
|
||||
serverId: string;
|
||||
deleted: true;
|
||||
};
|
||||
|
||||
export type SysAdminWapServerOrganizationActionParams = SysAdminWapServerByIdParams & {
|
||||
organizationId: string;
|
||||
};
|
||||
|
||||
export type SysAdminWapServerQrResult = {
|
||||
serverId: string;
|
||||
organizationId: string;
|
||||
qr: string;
|
||||
};
|
||||
|
||||
export type SysAdminWapServerDetachResult = {
|
||||
serverId: string;
|
||||
organizationId: string;
|
||||
botDeleted: boolean;
|
||||
botAlreadyMissing: boolean;
|
||||
before: number;
|
||||
after: number;
|
||||
};
|
||||
|
||||
export type SysAdminWapServerDeleteBotResult = {
|
||||
serverId: string;
|
||||
organizationId: string;
|
||||
assignmentRemains: true;
|
||||
before: number;
|
||||
after: number;
|
||||
};
|
||||
|
||||
export type SysAdminWapAssignedOrganization = {
|
||||
id: string;
|
||||
name?: string;
|
||||
};
|
||||
|
||||
export type SysAdminWapContainerDto = {
|
||||
id?: string;
|
||||
name?: string;
|
||||
organizationId?: string;
|
||||
image?: string;
|
||||
state?: string;
|
||||
status?: string;
|
||||
ports?: unknown[];
|
||||
created?: number;
|
||||
};
|
||||
|
||||
export type SysAdminWapServerAuditResult = {
|
||||
serverId: string;
|
||||
assignedOrganizations: SysAdminWapAssignedOrganization[];
|
||||
detectedBots: SysAdminWapContainerDto[];
|
||||
validBots: SysAdminWapContainerDto[];
|
||||
ghostBots: SysAdminWapContainerDto[];
|
||||
missingBots: SysAdminWapAssignedOrganization[];
|
||||
expectedCountBots: number;
|
||||
storedCountBots: number;
|
||||
runtimeCountBots: number;
|
||||
countMismatch: boolean;
|
||||
};
|
||||
|
||||
export type SysAdminWapServerRecalculateCountResult = {
|
||||
serverId: string;
|
||||
before: number;
|
||||
after: number;
|
||||
};
|
||||
|
||||
export type SysAdminGetWapServerParams = PaginateWapServerParams & {
|
||||
payload: IPayload;
|
||||
};
|
||||
|
||||
export type SysAdminUpdateWapServerParams = UpdateWapServerParams & {
|
||||
payload: IPayload;
|
||||
};
|
||||
|
||||
export type SysAdminAuditWapServerParams = SysAdminWapServerAuditParams & {
|
||||
payload: IPayload;
|
||||
};
|
||||
|
||||
export type SysAdminRecalculateWapServerCountParams = SysAdminWapServerRecalculateCountParams & {
|
||||
payload: IPayload;
|
||||
};
|
||||
|
||||
export type SysAdminDeleteWapServerRequest = SysAdminDeleteWapServerParams & {
|
||||
payload: IPayload;
|
||||
};
|
||||
|
||||
export type SysAdminWapServerOrganizationActionRequest = SysAdminWapServerOrganizationActionParams & {
|
||||
payload: IPayload;
|
||||
};
|
||||
|
||||
export interface IWapServerAdapter {
|
||||
find(data: FindWapServerParams): Promise<IWapServer[]>;
|
||||
findOne(data: FindWapServerParams): Promise<IWapServerDocument | null>;
|
||||
delete(id: string): Promise<void>;
|
||||
paginate(filters: PaginateWapServerParams): Promise<PaginateWapServerResults>;
|
||||
}
|
||||
|
||||
@@ -140,4 +249,14 @@ export interface IWapServerManager {
|
||||
getQr(data: BotEventParams): Promise<string>;
|
||||
sendMessage(data: SendBotMessageParams): Promise<void>;
|
||||
sysAdminGetWapServers(data: PaginateWapServerParams): Promise<PaginateWapServerResults>;
|
||||
sysAdminUpdateWapServer(data: UpdateWapServerParams): Promise<IWapServer>;
|
||||
sysAdminAuditWapServer(data: SysAdminWapServerAuditParams): Promise<SysAdminWapServerAuditResult>;
|
||||
sysAdminRecalculateWapServerCount(data: SysAdminWapServerRecalculateCountParams): Promise<SysAdminWapServerRecalculateCountResult>;
|
||||
sysAdminDeleteWapServer(data: SysAdminDeleteWapServerParams): Promise<SysAdminDeleteWapServerResult>;
|
||||
sysAdminStartBot(data: SysAdminWapServerOrganizationActionParams): Promise<void>;
|
||||
sysAdminStopBot(data: SysAdminWapServerOrganizationActionParams): Promise<void>;
|
||||
sysAdminRestartBot(data: SysAdminWapServerOrganizationActionParams): Promise<void>;
|
||||
sysAdminGetQr(data: SysAdminWapServerOrganizationActionParams): Promise<SysAdminWapServerQrResult>;
|
||||
sysAdminDeleteBot(data: SysAdminWapServerOrganizationActionParams): Promise<SysAdminWapServerDeleteBotResult>;
|
||||
sysAdminDetachOrganizationServer(data: SysAdminWapServerOrganizationActionParams): Promise<SysAdminWapServerDetachResult>;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user