import ApiManager, { Registration } from "./ApiManager"; import { Method, _permission_denied, PublicHandler } from "../RouteManager"; import { WebSocket } from "../Websocket/Websocket"; import { Database } from "../database"; export default class DeleteManager extends ApiManager { protected initialize(register: Registration): void { register({ method: Method.GET, subscription: "/delete", secureHandler: async ({ res, isRelease }) => { if (isRelease) { return _permission_denied(res, deletionPermissionError); } await WebSocket.deleteFields(); res.redirect("/home"); } }); register({ method: Method.GET, subscription: "/deleteAll", secureHandler: async ({ res, isRelease }) => { if (isRelease) { return _permission_denied(res, deletionPermissionError); } await WebSocket.deleteAll(); res.redirect("/home"); } }); const hi: PublicHandler = async ({ res, isRelease }) => { if (isRelease) { return _permission_denied(res, deletionPermissionError); } await Database.Instance.deleteAll('users'); res.redirect("/home"); }; // register({ // method: Method.GET, // subscription: "/deleteUsers", // onValidation: hi, // onUnauthenticated: hi // }); register({ method: Method.GET, subscription: "/deleteWithAux", secureHandler: async ({ res, isRelease }) => { if (isRelease) { return _permission_denied(res, deletionPermissionError); } await Database.Auxiliary.DeleteAll(); res.redirect("/delete"); } }); register({ method: Method.GET, subscription: "/deleteWithGoogleCredentials", secureHandler: async ({ res, isRelease }) => { if (isRelease) { return _permission_denied(res, deletionPermissionError); } await Database.Auxiliary.GoogleAuthenticationToken.DeleteAll(); res.redirect("/delete"); } }); } } const deletionPermissionError = "Cannot perform a delete operation outside of the development environment!";