monkeytype/backend/types/types.d.ts
Bruce Berrios 182d0b6b22
Add ape keys routing and configuration (#2599)
* Add ape keys routing and configuration

* Fix

* Add 404 route
2022-02-28 12:37:05 +01:00

74 lines
1.4 KiB
TypeScript

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;
};
apeKeys: {
endpointsEnabled: boolean;
acceptKeys: boolean;
maxKeysPerUser: number;
};
enableSavingResults: {
enabled: boolean;
};
}
interface DecodedToken {
uid?: string;
email?: string;
}
interface Context {
configuration: Configuration;
decodedToken: DecodedToken;
}
interface Request extends ExpressRequest {
ctx: Readonly<Context>;
}
// Data Model
interface User {
// TODO, Complete the typings for the user model
_id: string;
addedAt: number;
bananas: number;
completedTests: number;
discordId?: string;
email: string;
lastNameChange: number;
lbMemory: object;
lbPersonalBests: object;
name: string;
personalBests: object;
quoteRatings: Record<string, Record<string, number>>;
startedTests: number;
tags: object[];
timeTyping: number;
uid: string;
quoteMod: boolean;
cannotReport: boolean;
}
interface ApeKey {
_id: string;
name: string;
hash: string;
uid: string;
createdOn: number;
modifiedOn: number;
enabled: boolean;
}
}