aboutsummaryrefslogtreecommitdiff
path: root/src/server/ApiManagers/UtilManager.ts
diff options
context:
space:
mode:
authorEleanor Eng <eleanor.eng5@gmail.com>2019-11-16 16:37:36 -0500
committerEleanor Eng <eleanor.eng5@gmail.com>2019-11-16 16:37:36 -0500
commitb5111d4f4c44b845b7dd324e4332bcdc12eda0b8 (patch)
tree3c8ecc0af2accd5a49d6ff3ba1e46e7dab82858d /src/server/ApiManagers/UtilManager.ts
parentc24c16efbf798eac1003811f6c0ed98bfc65f48e (diff)
parentab285371f6fb2a4f1e64888bafbc84b602f23416 (diff)
merge
Diffstat (limited to 'src/server/ApiManagers/UtilManager.ts')
-rw-r--r--src/server/ApiManagers/UtilManager.ts55
1 files changed, 34 insertions, 21 deletions
diff --git a/src/server/ApiManagers/UtilManager.ts b/src/server/ApiManagers/UtilManager.ts
index 79b904e8a..c1234be6c 100644
--- a/src/server/ApiManagers/UtilManager.ts
+++ b/src/server/ApiManagers/UtilManager.ts
@@ -1,50 +1,63 @@
-import ApiManager from "./ApiManager";
-import RouteManager, { Method } from "../RouteManager";
+import ApiManager, { Registration } from "./ApiManager";
+import { Method } from "../RouteManager";
import { exec } from 'child_process';
import { command_line } from "../ActionUtilities";
+import RouteSubscriber from "../RouteSubscriber";
export default class UtilManager extends ApiManager {
- public register(router: RouteManager): void {
+ protected initialize(register: Registration): void {
- router.addSupervisedRoute({
+ register({
+ method: Method.GET,
+ subscription: new RouteSubscriber("environment").add("key"),
+ onValidation: ({ req, res }) => res.send(process.env[req.params.key])
+ });
+
+ register({
method: Method.GET,
subscription: "/pull",
- onValidation: ({ res }) => {
- exec('"C:\\Program Files\\Git\\git-bash.exe" -c "git pull"', err => {
- if (err) {
- res.send(err.message);
- return;
- }
- res.redirect("/");
+ onValidation: async ({ res }) => {
+ return new Promise<void>(resolve => {
+ exec('"C:\\Program Files\\Git\\git-bash.exe" -c "git pull"', err => {
+ if (err) {
+ res.send(err.message);
+ return;
+ }
+ res.redirect("/");
+ resolve();
+ });
});
}
});
- router.addSupervisedRoute({
+ register({
method: Method.GET,
subscription: "/buxton",
- onValidation: ({ res }) => {
+ onValidation: async ({ res }) => {
let cwd = '../scraping/buxton';
let onResolved = (stdout: string) => { console.log(stdout); res.redirect("/"); };
let onRejected = (err: any) => { console.error(err.message); res.send(err); };
let tryPython3 = () => command_line('python3 scraper.py', cwd).then(onResolved, onRejected);
- command_line('python scraper.py', cwd).then(onResolved, tryPython3);
+ return command_line('python scraper.py', cwd).then(onResolved, tryPython3);
},
});
- router.addSupervisedRoute({
+ register({
method: Method.GET,
subscription: "/version",
onValidation: ({ res }) => {
- exec('"C:\\Program Files\\Git\\bin\\git.exe" rev-parse HEAD', (err, stdout) => {
- if (err) {
- res.send(err.message);
- return;
- }
- res.send(stdout);
+ return new Promise<void>(resolve => {
+ exec('"C:\\Program Files\\Git\\bin\\git.exe" rev-parse HEAD', (err, stdout) => {
+ if (err) {
+ res.send(err.message);
+ return;
+ }
+ res.send(stdout);
+ });
+ resolve();
});
}
});