2022-02-23 03:55:48 +08:00
|
|
|
type ExpressRequest = import("express").Request;
|
|
|
|
|
|
|
|
declare namespace MonkeyTypes {
|
|
|
|
interface Configuration {
|
|
|
|
maintenance: boolean;
|
|
|
|
quoteReport: {
|
|
|
|
enabled: boolean;
|
|
|
|
maxReports: number;
|
|
|
|
contentReportLimit: number;
|
|
|
|
};
|
|
|
|
quoteSubmit: {
|
|
|
|
enabled: boolean;
|
|
|
|
};
|
|
|
|
resultObjectHashCheck: {
|
|
|
|
enabled: boolean;
|
|
|
|
};
|
2022-02-28 19:37:05 +08:00
|
|
|
apeKeys: {
|
|
|
|
endpointsEnabled: boolean;
|
|
|
|
acceptKeys: boolean;
|
|
|
|
maxKeysPerUser: number;
|
2022-02-23 03:55:48 +08:00
|
|
|
};
|
2022-02-23 06:02:37 +08:00
|
|
|
enableSavingResults: {
|
|
|
|
enabled: boolean;
|
|
|
|
};
|
2022-02-23 03:55:48 +08:00
|
|
|
}
|
2022-02-28 19:37:05 +08:00
|
|
|
|
2022-02-23 23:03:38 +08:00
|
|
|
interface DecodedToken {
|
|
|
|
uid?: string;
|
|
|
|
email?: string;
|
|
|
|
}
|
|
|
|
|
2022-02-23 03:55:48 +08:00
|
|
|
interface Context {
|
|
|
|
configuration: Configuration;
|
2022-02-23 23:03:38 +08:00
|
|
|
decodedToken: DecodedToken;
|
2022-02-23 03:55:48 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
interface Request extends ExpressRequest {
|
2022-02-23 23:03:38 +08:00
|
|
|
ctx: Readonly<Context>;
|
2022-02-23 03:55:48 +08:00
|
|
|
}
|
2022-02-28 01:37:51 +08:00
|
|
|
|
|
|
|
// Data Model
|
|
|
|
|
|
|
|
interface User {
|
|
|
|
// TODO, Complete the typings for the user model
|
|
|
|
addedAt: number;
|
|
|
|
bananas: number;
|
|
|
|
completedTests: number;
|
|
|
|
discordId?: string;
|
|
|
|
email: string;
|
|
|
|
lastNameChange: number;
|
|
|
|
lbMemory: object;
|
|
|
|
lbPersonalBests: object;
|
|
|
|
name: string;
|
|
|
|
personalBests: object;
|
2022-03-02 00:11:01 +08:00
|
|
|
quoteRatings?: Record<string, Record<string, number>>;
|
2022-02-28 01:37:51 +08:00
|
|
|
startedTests: number;
|
|
|
|
tags: object[];
|
|
|
|
timeTyping: number;
|
|
|
|
uid: string;
|
2022-03-02 00:11:01 +08:00
|
|
|
quoteMod?: boolean;
|
|
|
|
cannotReport?: boolean;
|
|
|
|
apeKeys?: Record<string, ApeKey>;
|
2022-02-28 01:37:51 +08:00
|
|
|
}
|
2022-02-28 19:37:05 +08:00
|
|
|
|
|
|
|
interface ApeKey {
|
|
|
|
name: string;
|
|
|
|
hash: string;
|
|
|
|
createdOn: number;
|
|
|
|
modifiedOn: number;
|
|
|
|
enabled: boolean;
|
|
|
|
}
|
2022-02-23 03:55:48 +08:00
|
|
|
}
|