aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
Diffstat (limited to 'src/server')
-rw-r--r--src/server/ApiManagers/DeleteManager.ts13
-rw-r--r--src/server/ApiManagers/ExportManager.ts5
-rw-r--r--src/server/ApiManagers/PDFManager.ts2
-rw-r--r--src/server/ApiManagers/UploadManager.ts15
-rw-r--r--src/server/ApiManagers/UserManager.ts7
-rw-r--r--src/server/ApiManagers/UtilManager.ts7
-rw-r--r--src/server/Initialization.ts28
-rw-r--r--src/server/RouteManager.ts5
-rw-r--r--src/server/RouteStore.ts45
-rw-r--r--src/server/RouteSubscriber.ts2
-rw-r--r--src/server/authentication/config/passport.ts5
-rw-r--r--src/server/authentication/controllers/user_controller.ts32
-rw-r--r--src/server/authentication/models/current_user_utils.ts7
-rw-r--r--src/server/index.ts26
14 files changed, 73 insertions, 126 deletions
diff --git a/src/server/ApiManagers/DeleteManager.ts b/src/server/ApiManagers/DeleteManager.ts
index bbf1d0425..f58a28ce5 100644
--- a/src/server/ApiManagers/DeleteManager.ts
+++ b/src/server/ApiManagers/DeleteManager.ts
@@ -1,6 +1,5 @@
import ApiManager, { Registration } from "./ApiManager";
import { Method, _permission_denied } from "../RouteManager";
-import { RouteStore } from "../RouteStore";
import { WebSocket } from "../Websocket/Websocket";
import { Database } from "../database";
@@ -10,25 +9,25 @@ export default class DeleteManager extends ApiManager {
register({
method: Method.GET,
- subscription: RouteStore.delete,
+ subscription: "/delete",
onValidation: async ({ res, isRelease }) => {
if (isRelease) {
return _permission_denied(res, deletionPermissionError);
}
await WebSocket.deleteFields();
- res.redirect(RouteStore.home);
+ res.redirect("/home");
}
});
register({
method: Method.GET,
- subscription: RouteStore.deleteAll,
+ subscription: "/deleteAll",
onValidation: async ({ res, isRelease }) => {
if (isRelease) {
return _permission_denied(res, deletionPermissionError);
}
await WebSocket.deleteAll();
- res.redirect(RouteStore.home);
+ res.redirect("/home");
}
});
@@ -41,7 +40,7 @@ export default class DeleteManager extends ApiManager {
return _permission_denied(res, deletionPermissionError);
}
await Database.Auxiliary.DeleteAll();
- res.redirect(RouteStore.delete);
+ res.redirect("/delete");
}
});
@@ -53,7 +52,7 @@ export default class DeleteManager extends ApiManager {
return _permission_denied(res, deletionPermissionError);
}
await Database.Auxiliary.GoogleAuthenticationToken.DeleteAll();
- res.redirect(RouteStore.delete);
+ res.redirect("/delete");
}
});
diff --git a/src/server/ApiManagers/ExportManager.ts b/src/server/ApiManagers/ExportManager.ts
index d42db1056..fc6ba0d22 100644
--- a/src/server/ApiManagers/ExportManager.ts
+++ b/src/server/ApiManagers/ExportManager.ts
@@ -1,7 +1,6 @@
import ApiManager, { Registration } from "./ApiManager";
import { Method } from "../RouteManager";
import RouteSubscriber from "../RouteSubscriber";
-import { RouteStore } from "../RouteStore";
import * as Archiver from 'archiver';
import * as express from 'express';
import { Database } from "../database";
@@ -32,7 +31,7 @@ export default class DownloadManager extends ApiManager {
*/
register({
method: Method.GET,
- subscription: new RouteSubscriber(RouteStore.imageHierarchyExport).add('docId'),
+ subscription: new RouteSubscriber("imageHierarchyExport").add('docId'),
onValidation: async ({ req, res }) => {
const id = req.params.docId;
const hierarchy: Hierarchy = {};
@@ -43,7 +42,7 @@ export default class DownloadManager extends ApiManager {
register({
method: Method.GET,
- subscription: new RouteSubscriber("/downloadId").add("docId"),
+ subscription: new RouteSubscriber("downloadId").add("docId"),
onValidation: async ({ req, res }) => {
return BuildAndDispatchZip(res, async zip => {
const { id, docs, files } = await getDocs(req.params.docId);
diff --git a/src/server/ApiManagers/PDFManager.ts b/src/server/ApiManagers/PDFManager.ts
index f328557b4..632b4965a 100644
--- a/src/server/ApiManagers/PDFManager.ts
+++ b/src/server/ApiManagers/PDFManager.ts
@@ -15,7 +15,7 @@ export default class PDFManager extends ApiManager {
register({
method: Method.GET,
- subscription: new RouteSubscriber("/thumbnail").add("filename"),
+ subscription: new RouteSubscriber("thumbnail").add("filename"),
onValidation: ({ req, res }) => {
let filename = req.params.filename;
let noExt = filename.substring(0, filename.length - ".png".length);
diff --git a/src/server/ApiManagers/UploadManager.ts b/src/server/ApiManagers/UploadManager.ts
index 38635eda5..01abdab54 100644
--- a/src/server/ApiManagers/UploadManager.ts
+++ b/src/server/ApiManagers/UploadManager.ts
@@ -6,7 +6,6 @@ var AdmZip = require('adm-zip');
import * as path from 'path';
import { createReadStream, createWriteStream, unlink, readFileSync } from "fs";
import { publicDirectory, filesDirectory, Partitions } from "..";
-import { RouteStore } from "../RouteStore";
import { Database } from "../database";
import { DashUploadUtils } from "../DashUploadUtils";
import { Opt } from "../../new_fields/Doc";
@@ -85,12 +84,8 @@ export default class UploadManager extends ApiManager {
let dirname = path.dirname(entry.entryName) + "/";
let extname = path.extname(entry.entryName);
let basename = path.basename(entry.entryName).split(".")[0];
- // zip.extractEntryTo(dirname + basename + "_o" + extname, __dirname + RouteStore.public, true, false);
- // zip.extractEntryTo(dirname + basename + "_s" + extname, __dirname + RouteStore.public, true, false);
- // zip.extractEntryTo(dirname + basename + "_m" + extname, __dirname + RouteStore.public, true, false);
- // zip.extractEntryTo(dirname + basename + "_l" + extname, __dirname + RouteStore.public, true, false);
try {
- zip.extractEntryTo(entry.entryName, __dirname + RouteStore.public, true, false);
+ zip.extractEntryTo(entry.entryName, publicDirectory, true, false);
dirname = "/" + dirname;
createReadStream(publicDirectory + dirname + basename + extname).pipe(createWriteStream(publicDirectory + dirname + basename + "_o" + extname));
@@ -131,7 +126,7 @@ export default class UploadManager extends ApiManager {
register({
method: Method.POST,
- subscription: RouteStore.upload,
+ subscription: "/upload",
onValidation: async ({ req, res }) => {
let form = new formidable.IncomingForm();
form.uploadDir = filesDirectory;
@@ -147,7 +142,7 @@ export default class UploadManager extends ApiManager {
let dataBuffer = readFileSync(filesDirectory + filename);
const result: ParsedPDF = await pdf(dataBuffer);
await new Promise<void>((resolve, reject) => {
- const path = filesDirectory + Partitions.PdfText + "/" + filename.substring(0, filename.length - ".pdf".length) + ".txt";
+ const path = filesDirectory + Partitions.pdf_text + "/" + filename.substring(0, filename.length - ".pdf".length) + ".txt";
createWriteStream(path).write(result.text, error => {
if (!error) {
resolve();
@@ -171,7 +166,7 @@ export default class UploadManager extends ApiManager {
register({
method: Method.POST,
- subscription: RouteStore.inspectImage,
+ subscription: "/inspectImage",
onValidation: async ({ req, res }) => {
const { source } = req.body;
if (typeof source === "string") {
@@ -184,7 +179,7 @@ export default class UploadManager extends ApiManager {
register({
method: Method.POST,
- subscription: RouteStore.dataUriToImage,
+ subscription: "/uploadURI",
onValidation: ({ req, res }) => {
const uri = req.body.uri;
const filename = req.body.name;
diff --git a/src/server/ApiManagers/UserManager.ts b/src/server/ApiManagers/UserManager.ts
index fe1ce7f2b..51a434fcf 100644
--- a/src/server/ApiManagers/UserManager.ts
+++ b/src/server/ApiManagers/UserManager.ts
@@ -1,7 +1,6 @@
import ApiManager, { Registration } from "./ApiManager";
import { Method } from "../RouteManager";
import { WebSocket } from "../Websocket/Websocket";
-import { RouteStore } from "../RouteStore";
import { Database } from "../database";
export default class UserManager extends ApiManager {
@@ -10,7 +9,7 @@ export default class UserManager extends ApiManager {
register({
method: Method.GET,
- subscription: RouteStore.getUsers,
+ subscription: "/getUsers",
onValidation: async ({ res }) => {
const cursor = await Database.Instance.query({}, { email: 1, userDocumentId: 1 }, "users");
const results = await cursor.toArray();
@@ -20,13 +19,13 @@ export default class UserManager extends ApiManager {
register({
method: Method.GET,
- subscription: RouteStore.getUserDocumentId,
+ subscription: "/getUserDocumentId",
onValidation: ({ res, user }) => res.send(user.userDocumentId)
});
register({
method: Method.GET,
- subscription: RouteStore.getCurrUser,
+ subscription: "/getCurrentUser",
onValidation: ({ res, user }) => res.send(JSON.stringify(user)),
onUnauthenticated: ({ res }) => res.send(JSON.stringify({ id: "__guest__", email: "" }))
});
diff --git a/src/server/ApiManagers/UtilManager.ts b/src/server/ApiManagers/UtilManager.ts
index 61cda2e9b..c1234be6c 100644
--- a/src/server/ApiManagers/UtilManager.ts
+++ b/src/server/ApiManagers/UtilManager.ts
@@ -2,6 +2,7 @@ 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 {
@@ -9,6 +10,12 @@ export default class UtilManager extends ApiManager {
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: async ({ res }) => {
return new Promise<void>(resolve => {
diff --git a/src/server/Initialization.ts b/src/server/Initialization.ts
index fbb5ae7a6..306058d81 100644
--- a/src/server/Initialization.ts
+++ b/src/server/Initialization.ts
@@ -9,7 +9,6 @@ import flash = require('connect-flash');
import { Database } from './database';
import { getForgot, getLogin, getLogout, getReset, getSignup, postForgot, postLogin, postReset, postSignup } from './authentication/controllers/user_controller';
const MongoStore = require('connect-mongo')(session);
-import { RouteStore } from './RouteStore';
import RouteManager from './RouteManager';
import * as webpack from 'webpack';
const config = require('../../webpack.config');
@@ -18,6 +17,8 @@ import * as wdm from 'webpack-dev-middleware';
import * as whm from 'webpack-hot-middleware';
import * as fs from 'fs';
import * as request from 'request';
+import RouteSubscriber from './RouteSubscriber';
+import { publicDirectory } from '.';
export type RouteSetter = (server: RouteManager) => void;
export interface InitializationOptions {
@@ -29,8 +30,8 @@ export default async function InitializeServer(options: InitializationOptions) {
const { listenAtPort, routeSetter } = options;
const server = buildWithMiddleware(express());
- server.use(express.static(__dirname + RouteStore.public));
- server.use(RouteStore.images, express.static(__dirname + RouteStore.public));
+ server.use(express.static(publicDirectory));
+ server.use("/images", express.static(publicDirectory));
server.use(wdm(compiler, { publicPath: config.output.publicPath }));
server.use(whm(compiler));
@@ -87,24 +88,25 @@ function determineEnvironment() {
}
function registerAuthenticationRoutes(server: express.Express) {
- server.get(RouteStore.signup, getSignup);
- server.post(RouteStore.signup, postSignup);
+ server.get("/signup", getSignup);
+ server.post("/signup", postSignup);
- server.get(RouteStore.login, getLogin);
- server.post(RouteStore.login, postLogin);
+ server.get("/login", getLogin);
+ server.post("/login", postLogin);
- server.get(RouteStore.logout, getLogout);
+ server.get("/logout", getLogout);
- server.get(RouteStore.forgot, getForgot);
- server.post(RouteStore.forgot, postForgot);
+ server.get("/forgotPassword", getForgot);
+ server.post("/forgotPassword", postForgot);
- server.get(RouteStore.reset, getReset);
- server.post(RouteStore.reset, postReset);
+ const reset = new RouteSubscriber("resetPassword").add("token").build;
+ server.get(reset, getReset);
+ server.post(reset, postReset);
}
function registerCorsProxy(server: express.Express) {
const headerCharRegex = /[^\t\x20-\x7e\x80-\xff]/;
- server.use(RouteStore.corsProxy, (req, res) => {
+ server.use("/corsProxy", (req, res) => {
req.pipe(request(decodeURIComponent(req.url.substring(1)))).on("response", res => {
const headers = Object.keys(res.headers);
headers.forEach(headerName => {
diff --git a/src/server/RouteManager.ts b/src/server/RouteManager.ts
index c1d38327f..3aae5734a 100644
--- a/src/server/RouteManager.ts
+++ b/src/server/RouteManager.ts
@@ -1,5 +1,4 @@
import RouteSubscriber from "./RouteSubscriber";
-import { RouteStore } from "./RouteStore";
import { DashUserModel } from "./authentication/models/user_model";
import * as express from 'express';
@@ -67,10 +66,10 @@ export default class RouteManager {
if (onUnauthenticated) {
await tryExecute(onUnauthenticated, core);
if (!res.headersSent) {
- res.redirect(RouteStore.login);
+ res.redirect("/login");
}
} else {
- res.redirect(RouteStore.login);
+ res.redirect("/login");
}
}
setTimeout(() => {
diff --git a/src/server/RouteStore.ts b/src/server/RouteStore.ts
deleted file mode 100644
index a310d0c95..000000000
--- a/src/server/RouteStore.ts
+++ /dev/null
@@ -1,45 +0,0 @@
-// PREPEND ALL ROUTES WITH FORWARD SLASHES!
-
-export enum RouteStore {
- // GENERAL
- root = "/",
- home = "/home",
- corsProxy = "/corsProxy",
- delete = "/delete",
- deleteAll = "/deleteAll",
- pull = "/pull",
-
- // UPLOAD AND STATIC FILE SERVING
- public = "/public",
- upload = "/upload",
- dataUriToImage = "/uploadURI",
- images = "/images",
- inspectImage = "/inspectImage",
- imageHierarchyExport = "/imageHierarchyExport",
-
- // USER AND WORKSPACES
- getCurrUser = "/getCurrentUser",
- getUsers = "/getUsers",
- getUserDocumentId = "/getUserDocumentId",
- updateCursor = "/updateCursor",
-
- openDocumentWithId = "/doc/:docId",
-
- // AUTHENTICATION
- signup = "/signup",
- login = "/login",
- logout = "/logout",
- forgot = "/forgotpassword",
- reset = "/reset/:token",
-
- // APIS
- cognitiveServices = "/cognitiveservices",
- googleDocs = "/googleDocs",
- readGoogleAccessToken = "/readGoogleAccessToken",
- writeGoogleAccessToken = "/writeGoogleAccessToken",
- googlePhotosMediaUpload = "/googlePhotosMediaUpload",
- googlePhotosMediaDownload = "/googlePhotosMediaDownload",
- googleDocsGet = "/googleDocsGet",
- checkGoogle = "/checkGoogleAuthentication"
-
-} \ No newline at end of file
diff --git a/src/server/RouteSubscriber.ts b/src/server/RouteSubscriber.ts
index e49be8af5..a1cf7c1c4 100644
--- a/src/server/RouteSubscriber.ts
+++ b/src/server/RouteSubscriber.ts
@@ -3,7 +3,7 @@ export default class RouteSubscriber {
private requestParameters: string[] = [];
constructor(root: string) {
- this._root = root;
+ this._root = `/${root}`;
}
add(...parameters: string[]) {
diff --git a/src/server/authentication/config/passport.ts b/src/server/authentication/config/passport.ts
index 8915a4abf..0b15c3a36 100644
--- a/src/server/authentication/config/passport.ts
+++ b/src/server/authentication/config/passport.ts
@@ -3,7 +3,6 @@ import * as passportLocal from 'passport-local';
import _ from "lodash";
import { default as User } from '../models/user_model';
import { Request, Response, NextFunction } from "express";
-import { RouteStore } from '../../RouteStore';
const LocalStrategy = passportLocal.Strategy;
@@ -35,13 +34,13 @@ export let isAuthenticated = (req: Request, res: Response, next: NextFunction) =
if (req.isAuthenticated()) {
return next();
}
- return res.redirect(RouteStore.login);
+ return res.redirect("/login");
};
export let isAuthorized = (req: Request, res: Response, next: NextFunction) => {
const provider = req.path.split("/").slice(-1)[0];
- if (_.find((req.user as any).tokens, { kind: provider })) {
+ if (_.find((req.user).tokens, { kind: provider })) {
next();
} else {
res.redirect(`/auth/${provider}`);
diff --git a/src/server/authentication/controllers/user_controller.ts b/src/server/authentication/controllers/user_controller.ts
index f5c6e1610..b2b9d33f6 100644
--- a/src/server/authentication/controllers/user_controller.ts
+++ b/src/server/authentication/controllers/user_controller.ts
@@ -10,10 +10,7 @@ import * as pug from 'pug';
import * as async from 'async';
import * as nodemailer from 'nodemailer';
import c = require("crypto");
-import { RouteStore } from "../../RouteStore";
import { Utils } from "../../../Utils";
-import { Schema } from "mongoose";
-import { Opt } from "../../../new_fields/Doc";
import { MailOptions } from "nodemailer/lib/stream-transport";
/**
@@ -23,8 +20,7 @@ import { MailOptions } from "nodemailer/lib/stream-transport";
*/
export let getSignup = (req: Request, res: Response) => {
if (req.user) {
- let user = req.user;
- return res.redirect(RouteStore.home);
+ return res.redirect("/home");
}
res.render("signup.pug", {
title: "Sign Up",
@@ -45,7 +41,7 @@ export let postSignup = (req: Request, res: Response, next: NextFunction) => {
const errors = req.validationErrors();
if (errors) {
- return res.redirect(RouteStore.signup);
+ return res.redirect("/signup");
}
const email = req.body.email as String;
@@ -62,7 +58,7 @@ export let postSignup = (req: Request, res: Response, next: NextFunction) => {
User.findOne({ email }, (err, existingUser) => {
if (err) { return next(err); }
if (existingUser) {
- return res.redirect(RouteStore.login);
+ return res.redirect("/login");
}
user.save((err: any) => {
if (err) { return next(err); }
@@ -81,7 +77,7 @@ let tryRedirectToTarget = (req: Request, res: Response) => {
req.session.target = undefined;
res.redirect(target);
} else {
- res.redirect(RouteStore.home);
+ res.redirect("/home");
}
};
@@ -93,7 +89,7 @@ let tryRedirectToTarget = (req: Request, res: Response) => {
export let getLogin = (req: Request, res: Response) => {
if (req.user) {
req.session!.target = undefined;
- return res.redirect(RouteStore.home);
+ return res.redirect("/home");
}
res.render("login.pug", {
title: "Log In",
@@ -115,13 +111,13 @@ export let postLogin = (req: Request, res: Response, next: NextFunction) => {
if (errors) {
req.flash("errors", "Unable to login at this time. Please try again.");
- return res.redirect(RouteStore.signup);
+ return res.redirect("/signup");
}
passport.authenticate("local", (err: Error, user: DashUserModel, info: IVerifyOptions) => {
if (err) { next(err); return; }
if (!user) {
- return res.redirect(RouteStore.signup);
+ return res.redirect("/signup");
}
req.logIn(user, (err) => {
if (err) { next(err); return; }
@@ -141,7 +137,7 @@ export let getLogout = (req: Request, res: Response) => {
if (sess) {
sess.destroy((err) => { if (err) { console.log(err); } });
}
- res.redirect(RouteStore.login);
+ res.redirect("/login");
};
export let getForgot = function (req: Request, res: Response) {
@@ -168,7 +164,7 @@ export let postForgot = function (req: Request, res: Response, next: NextFunctio
User.findOne({ email }, function (err, user: DashUserModel) {
if (!user) {
// NO ACCOUNT WITH SUBMITTED EMAIL
- res.redirect(RouteStore.forgot);
+ res.redirect("/forgotPassword");
return;
}
user.passwordResetToken = token;
@@ -192,7 +188,7 @@ export let postForgot = function (req: Request, res: Response, next: NextFunctio
subject: 'Dash Password Reset',
text: 'You are receiving this because you (or someone else) have requested the reset of the password for your account.\n\n' +
'Please click on the following link, or paste this into your browser to complete the process:\n\n' +
- 'http://' + req.headers.host + '/reset/' + token + '\n\n' +
+ 'http://' + req.headers.host + '/resetPassword/' + token + '\n\n' +
'If you did not request this, please ignore this email and your password will remain unchanged.\n'
} as MailOptions;
smtpTransport.sendMail(mailOptions, function (err: Error | null) {
@@ -202,14 +198,14 @@ export let postForgot = function (req: Request, res: Response, next: NextFunctio
}
], function (err) {
if (err) return next(err);
- res.redirect(RouteStore.forgot);
+ res.redirect("/forgotPassword");
});
};
export let getReset = function (req: Request, res: Response) {
User.findOne({ passwordResetToken: req.params.token, passwordResetExpires: { $gt: Date.now() } }, function (err, user: DashUserModel) {
if (!user || err) {
- return res.redirect(RouteStore.forgot);
+ return res.redirect("/forgotPassword");
}
res.render("reset.pug", {
title: "Reset Password",
@@ -239,7 +235,7 @@ export let postReset = function (req: Request, res: Response) {
user.save(function (err) {
if (err) {
- res.redirect(RouteStore.login);
+ res.redirect("/login");
return;
}
req.logIn(user, function (err) {
@@ -271,6 +267,6 @@ export let postReset = function (req: Request, res: Response) {
});
}
], function (err) {
- res.redirect(RouteStore.login);
+ res.redirect("/login");
});
}; \ No newline at end of file
diff --git a/src/server/authentication/models/current_user_utils.ts b/src/server/authentication/models/current_user_utils.ts
index 73cac879e..5a8815983 100644
--- a/src/server/authentication/models/current_user_utils.ts
+++ b/src/server/authentication/models/current_user_utils.ts
@@ -11,7 +11,6 @@ import { List } from "../../../new_fields/List";
import { listSpec } from "../../../new_fields/Schema";
import { Cast, StrCast, PromiseValue } from "../../../new_fields/Types";
import { Utils } from "../../../Utils";
-import { RouteStore } from "../../RouteStore";
import { ScriptField } from "../../../new_fields/ScriptField";
import { ButtonBox } from "../../../client/views/nodes/ButtonBox";
import { UndoManager } from "../../../client/util/UndoManager";
@@ -198,8 +197,8 @@ export class CurrentUserUtils {
return doc;
}
- public static loadCurrentUser() {
- return rp.get(Utils.prepend(RouteStore.getCurrUser)).then(response => {
+ public static async loadCurrentUser() {
+ return rp.get(Utils.prepend("/getCurrentUser")).then(response => {
if (response) {
const result: { id: string, email: string } = JSON.parse(response);
return result;
@@ -212,7 +211,7 @@ export class CurrentUserUtils {
public static async loadUserDocument({ id, email }: { id: string, email: string }) {
this.curr_id = id;
Doc.CurrentUserEmail = email;
- await rp.get(Utils.prepend(RouteStore.getUserDocumentId)).then(id => {
+ await rp.get(Utils.prepend("/getUserDocumentId")).then(id => {
if (id && id !== "guest") {
return DocServer.GetRefField(id).then(async field => {
if (field instanceof Doc) {
diff --git a/src/server/index.ts b/src/server/index.ts
index aec301a74..8fc402cc9 100644
--- a/src/server/index.ts
+++ b/src/server/index.ts
@@ -3,7 +3,6 @@ import { GoogleApiServerUtils } from "./apis/google/GoogleApiServerUtils";
import * as mobileDetect from 'mobile-detect';
import * as path from 'path';
import { Database } from './database';
-import { RouteStore } from './RouteStore';
const serverPort = 4321;
import { GooglePhotosUploadUtils } from './apis/google/GooglePhotosUploadUtils';
import { Opt } from '../new_fields/Doc';
@@ -23,7 +22,7 @@ import DeleteManager from "./ApiManagers/DeleteManager";
import PDFManager from "./ApiManagers/PDFManager";
import UploadManager from "./ApiManagers/UploadManager";
-export const publicDirectory = __dirname + RouteStore.public;
+export const publicDirectory = __dirname + "/public";
export const filesDirectory = publicDirectory + "/files/";
export enum Partitions {
pdf_text,
@@ -73,13 +72,12 @@ function routeSetter(router: RouteManager) {
WebSocket.initialize(serverPort, router.isRelease);
/**
- * Anyone attempting to navigate to localhost at this port will
- * first have to log in.
+ * Accessing root index redirects to home
*/
router.addSupervisedRoute({
method: Method.GET,
- subscription: RouteStore.root,
- onValidation: ({ res }) => res.redirect(RouteStore.home)
+ subscription: "/",
+ onValidation: ({ res }) => res.redirect("/home")
});
const serve: OnUnauthenticated = ({ req, res }) => {
@@ -90,7 +88,7 @@ function routeSetter(router: RouteManager) {
router.addSupervisedRoute({
method: Method.GET,
- subscription: [RouteStore.home, new RouteSubscriber("/doc").add("docId")],
+ subscription: ["/home", new RouteSubscriber("doc").add("docId")],
onValidation: serve,
onUnauthenticated: ({ req, ...remaining }) => {
const { originalUrl: target } = req;
@@ -110,9 +108,9 @@ function routeSetter(router: RouteManager) {
router.addSupervisedRoute({
method: Method.GET,
- subscription: new RouteSubscriber(RouteStore.cognitiveServices).add('requestedservice'),
+ subscription: new RouteSubscriber("cognitiveServices").add('requestedService'),
onValidation: ({ req, res }) => {
- let service = req.params.requestedservice;
+ let service = req.params.requestedService;
res.send(ServicesApiKeyMap.get(service));
}
});
@@ -125,7 +123,7 @@ function routeSetter(router: RouteManager) {
router.addSupervisedRoute({
method: Method.POST,
- subscription: new RouteSubscriber(RouteStore.googleDocs).add("sector", "action"),
+ subscription: new RouteSubscriber("googleDocs").add("sector", "action"),
onValidation: async ({ req, res, user }) => {
let sector: GoogleApiServerUtils.Service = req.params.sector as GoogleApiServerUtils.Service;
let action: GoogleApiServerUtils.Action = req.params.action as GoogleApiServerUtils.Action;
@@ -143,7 +141,7 @@ function routeSetter(router: RouteManager) {
router.addSupervisedRoute({
method: Method.GET,
- subscription: RouteStore.readGoogleAccessToken,
+ subscription: "/readGoogleAccessToken",
onValidation: async ({ user, res }) => {
const userId = user.id;
const token = await GoogleApiServerUtils.retrieveAccessToken(userId);
@@ -156,7 +154,7 @@ function routeSetter(router: RouteManager) {
router.addSupervisedRoute({
method: Method.POST,
- subscription: RouteStore.writeGoogleAccessToken,
+ subscription: "/writeGoogleAccessToken",
onValidation: async ({ user, req, res }) => {
res.send(await GoogleApiServerUtils.processNewUser(user.id, req.body.authenticationCode));
}
@@ -173,7 +171,7 @@ function routeSetter(router: RouteManager) {
router.addSupervisedRoute({
method: Method.POST,
- subscription: RouteStore.googlePhotosMediaUpload,
+ subscription: "/googlePhotosMediaUpload",
onValidation: async ({ user, req, res }) => {
const { media } = req.body;
@@ -228,7 +226,7 @@ function routeSetter(router: RouteManager) {
const UploadError = (count: number) => `Unable to upload ${count} images to Dash's server`;
router.addSupervisedRoute({
method: Method.POST,
- subscription: RouteStore.googlePhotosMediaDownload,
+ subscription: "/googlePhotosMediaDownload",
onValidation: async ({ req, res }) => {
const contents: { mediaItems: MediaItem[] } = req.body;
let failed = 0;