aboutsummaryrefslogtreecommitdiff
path: root/src/server/index.ts
diff options
context:
space:
mode:
authorEleanor Eng <eleanor_eng@brown.edu>2019-03-12 17:44:11 -0400
committerEleanor Eng <eleanor_eng@brown.edu>2019-03-12 17:44:11 -0400
commit96dc0349945974a5f1c0b1329ec035dcb9dfde0e (patch)
tree2a8bae2138aa0772dd34701443d61f82855662be /src/server/index.ts
parent1f038048612e01d0ada6deb9ff2a056cb8d13702 (diff)
parent618e66a5a070f1aac9224bd3f44b76a5ac314bfa (diff)
working submenu; dimensions now relative to vw, vh
Diffstat (limited to 'src/server/index.ts')
-rw-r--r--src/server/index.ts200
1 files changed, 76 insertions, 124 deletions
diff --git a/src/server/index.ts b/src/server/index.ts
index 7850fd1d8..0d0b65b22 100644
--- a/src/server/index.ts
+++ b/src/server/index.ts
@@ -1,75 +1,24 @@
-import * as express from 'express';
-const app = express();
-import * as webpack from 'webpack';
+import * as express from 'express'
+const app = express()
+import * as webpack from 'webpack'
import * as wdm from 'webpack-dev-middleware';
import * as whm from 'webpack-hot-middleware';
-import * as path from 'path';
+import * as path from 'path'
+import * as formidable from 'formidable'
import * as passport from 'passport';
-import {
- MessageStore,
- Message,
- SetFieldArgs,
- GetFieldArgs,
- Transferable
-}
-
- from "./Message";
-import {
- Client
-}
-
- from './Client';
-import {
- Socket
-}
-
- from 'socket.io';
-import {
- Utils
-}
-
- from '../Utils';
-import {
- ObservableMap
-}
-
- from 'mobx';
-import {
- FieldId,
- Field
-}
-
- from '../fields/Field';
-import {
- Database
-}
-
- from './database';
-import {
- ServerUtils
-}
-
- from './ServerUtil';
-import {
- ObjectID
-}
-
- from 'mongodb';
-import {
- Document
-}
-
- from '../fields/Document';
-import * as io from 'socket.io';
+import { MessageStore, Message, SetFieldArgs, GetFieldArgs, Transferable } from "./Message";
+import { Client } from './Client';
+import { Socket } from 'socket.io';
+import { Utils } from '../Utils';
+import { ObservableMap } from 'mobx';
+import { FieldId, Field } from '../fields/Field';
+import { Database } from './database';
+import { ServerUtils } from './ServerUtil';
+import { ObjectID } from 'mongodb';
+import { Document } from '../fields/Document';
+import * as io from 'socket.io'
import * as passportConfig from './authentication/config/passport';
-import {
- getLogin,
- postLogin,
- getSignup,
- postSignup
-}
-
- from './authentication/controllers/user';
+import { getLogin, postLogin, getSignup, postSignup } from './authentication/controllers/user';
const config = require('../../webpack.config');
const compiler = webpack(config);
const port = 1050; // default port to listen
@@ -82,20 +31,17 @@ import c = require("crypto");
const MongoStore = require('connect-mongo')(session);
const mongoose = require('mongoose');
const bluebird = require('bluebird');
-import {
- performance
-}
-
- from 'perf_hooks';
+import { performance } from 'perf_hooks'
import * as fs from 'fs';
-import * as request from 'request';
+import * as request from 'request'
+
const download = (url: string, dest: fs.PathLike) => {
request.get(url).pipe(fs.createWriteStream(dest));
}
const mongoUrl = 'mongodb://localhost:27017/Dash';
// mongoose.Promise = bluebird;
-mongoose.connect(mongoUrl) //.then(
+mongoose.connect(mongoUrl)//.then(
// () => { /** ready to use. The `mongoose.connect()` promise resolves to undefined. */ },
// ).catch((err: any) => {
// console.log("MongoDB connection error. Please make sure MongoDB is running. " + err);
@@ -103,88 +49,102 @@ mongoose.connect(mongoUrl) //.then(
// });
mongoose.connection.on('connected', function () {
console.log("connected");
-}
+})
-);
app.use(bodyParser.json());
-app.use(bodyParser.urlencoded({
- extended: true
-}
-
-));
+app.use(bodyParser.urlencoded({ extended: true }));
app.use(expressValidator());
app.use(expressFlash());
app.use(require('express-session')({
- secret: `$ {
- c.randomBytes(64)
- }
- `, resave: true, saveUninitialized: true, store: new MongoStore({
+ secret: `${c.randomBytes(64)}`,
+ resave: true,
+ saveUninitialized: true,
+ store: new MongoStore({
url: 'mongodb://localhost:27017/Dash'
- }
- )
-}
-
-));
+ })
+}));
app.use(passport.initialize());
app.use(passport.session());
app.use((req, res, next) => {
res.locals.user = req.user;
next();
-}
+});
-);
app.get("/signup", getSignup);
app.post("/signup", postSignup);
app.get("/login", getLogin);
app.post("/login", postLogin);
-let FieldStore: ObservableMap<FieldId,
- Field> = new ObservableMap();
+
+// IMAGE UPLOADING HANDLER
+app.post("/upload", (req, res, err) => {
+ let form = new formidable.IncomingForm()
+ form.uploadDir = __dirname + "/public/files/"
+ form.keepExtensions = true
+ // let path = req.body.path;
+ console.log("upload")
+ form.parse(req, (err, fields, files) => {
+ console.log("parsing")
+ let names: any[] = [];
+ for (const name in files) {
+ let file = files[name];
+ names.push(`/files/` + path.basename(file.path));
+ }
+ res.send(names);
+ });
+})
+
+app.use(express.static(__dirname + '/public'));
+app.use('/images', express.static(__dirname + '/public'))
+
+let FieldStore: ObservableMap<FieldId, Field> = new ObservableMap();
+
// define a route handler for the default home page
app.get("/", (req, res) => {
res.sendFile(path.join(__dirname, '../../deploy/index.html'));
-}
+});
-);
app.get("/hello", (req, res) => {
res.send("<p>Hello</p>");
-}
+})
+
+app.use("/corsProxy", (req, res) => {
+ req.pipe(request(req.url.substring(1))).pipe(res);
+});
-);
app.get("/delete", (req, res) => {
deleteAll();
res.redirect("/");
-}
+});
-);
app.use(wdm(compiler, {
publicPath: config.output.publicPath
-}
+}))
+
+app.use(whm(compiler))
-))
-app.use(whm(compiler)) // start the Express server
+// start the Express server
app.listen(port, () => {
- console.log(`server started at http: //localhost:${port}`);
-}
+ console.log(`server started at http://localhost:${port}`);
+})
-)
const server = io();
interface Map {
[key: string]: Client;
}
-
let clients: Map = {}
server.on("connection", function (socket: Socket) {
console.log("a user has connected")
+
Utils.Emit(socket, MessageStore.Foo, "handshooken")
+
Utils.AddServerHandler(socket, MessageStore.Bar, barReceived)
Utils.AddServerHandler(socket, MessageStore.SetField, (args) => setField(socket, args))
Utils.AddServerHandlerCallback(socket, MessageStore.GetField, getField)
Utils.AddServerHandlerCallback(socket, MessageStore.GetFields, getFields)
Utils.AddServerHandler(socket, MessageStore.DeleteAll, deleteAll)
-}
+})
-)
function deleteAll() {
Database.Instance.deleteAll();
}
@@ -193,7 +153,9 @@ function barReceived(guid: String) {
clients[guid.toString()] = new Client(guid.toString());
}
-function addDocument(document: Document) { }
+function addDocument(document: Document) {
+
+}
function getField([id, callback]: [string, (result: any) => void]) {
Database.Instance.getDocument(id, (result: any) => {
@@ -203,8 +165,7 @@ function getField([id, callback]: [string, (result: any) => void]) {
else {
callback(undefined)
}
- }
- )
+ })
}
function getFields([ids, callback]: [string[], (result: any) => void]) {
@@ -212,18 +173,9 @@ function getFields([ids, callback]: [string[], (result: any) => void]) {
}
function setField(socket: Socket, newValue: Transferable) {
- let val = {
- ...newValue
- }
- ;
- delete val._id;
- Database.Instance.update(newValue._id, val)
+ Database.Instance.update(newValue._id, newValue)
socket.broadcast.emit(MessageStore.SetField.Message, newValue)
}
server.listen(serverPort);
-console.log(`listening on port $ {
- serverPort
-}
-
-`); \ No newline at end of file
+console.log(`listening on port ${serverPort}`); \ No newline at end of file