aboutsummaryrefslogtreecommitdiff
path: root/src/server/index.ts
diff options
context:
space:
mode:
authorEleanor Eng <eleanor_eng@brown.edu>2019-03-11 17:32:49 -0400
committerEleanor Eng <eleanor_eng@brown.edu>2019-03-11 17:32:49 -0400
commit1f038048612e01d0ada6deb9ff2a056cb8d13702 (patch)
tree6565b3ddb702b453c2423bcb0dc9deb58b9b9086 /src/server/index.ts
parent6d456bbe4a2de50abe1a4b338d1f446d3123b321 (diff)
some changes
Diffstat (limited to 'src/server/index.ts')
-rw-r--r--src/server/index.ts172
1 files changed, 122 insertions, 50 deletions
diff --git a/src/server/index.ts b/src/server/index.ts
index 84acb72cb..7850fd1d8 100644
--- a/src/server/index.ts
+++ b/src/server/index.ts
@@ -1,23 +1,75 @@
-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 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
@@ -30,17 +82,20 @@ import c = require("crypto");
const MongoStore = require('connect-mongo')(session);
const mongoose = require('mongoose');
const bluebird = require('bluebird');
-import { performance } from 'perf_hooks'
-import * as fs from 'fs';
-import * as request from 'request'
+import {
+ performance
+}
+ from 'perf_hooks';
+import * as fs from 'fs';
+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);
@@ -48,77 +103,88 @@ 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();
-
+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.get("/delete", (req, res) => {
deleteAll();
res.redirect("/");
-});
+}
+);
app.use(wdm(compiler, {
publicPath: config.output.publicPath
-}))
-
-app.use(whm(compiler))
+}
-// start the Express server
+))
+app.use(whm(compiler)) // 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();
}
@@ -127,9 +193,7 @@ 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) => {
@@ -139,7 +203,8 @@ function getField([id, callback]: [string, (result: any) => void]) {
else {
callback(undefined)
}
- })
+ }
+ )
}
function getFields([ids, callback]: [string[], (result: any) => void]) {
@@ -147,11 +212,18 @@ function getFields([ids, callback]: [string[], (result: any) => void]) {
}
function setField(socket: Socket, newValue: Transferable) {
- let val = { ...newValue };
+ let val = {
+ ...newValue
+ }
+ ;
delete val._id;
Database.Instance.update(newValue._id, val)
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