aboutsummaryrefslogtreecommitdiff
path: root/src/server/index.ts
diff options
context:
space:
mode:
authorab <abdullah_ahmed@brown.edu>2019-04-19 17:06:56 -0400
committerab <abdullah_ahmed@brown.edu>2019-04-19 17:06:56 -0400
commitd77951f2f29b5b7b4869128116c3627d77e2c73b (patch)
tree81a0a02dc59af308ec322920a2060ac1b53d15f2 /src/server/index.ts
parentbe1976fb0ba33064978ee973993b3a2316cdf43c (diff)
parentecae4ae106be3e07471208cb93ec0965548d2d12 (diff)
Merge commit 'ecae4ae' into new_search
Diffstat (limited to 'src/server/index.ts')
-rw-r--r--src/server/index.ts19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/server/index.ts b/src/server/index.ts
index cb4268a2d..a68dabc0c 100644
--- a/src/server/index.ts
+++ b/src/server/index.ts
@@ -23,7 +23,7 @@ import { getForgot, getLogin, getLogout, getReset, getSignup, postForgot, postLo
import { DashUserModel } from './authentication/models/user_model';
import { Client } from './Client';
import { Database } from './database';
-import { MessageStore, Transferable, Types } from "./Message";
+import { MessageStore, Transferable, Types, Diff } from "./Message";
import { RouteStore } from './RouteStore';
const app = express();
const config = require('../../webpack.config');
@@ -240,6 +240,10 @@ server.on("connection", function (socket: Socket) {
Utils.AddServerHandlerCallback(socket, MessageStore.GetField, getField);
Utils.AddServerHandlerCallback(socket, MessageStore.GetFields, getFields);
Utils.AddServerHandler(socket, MessageStore.DeleteAll, deleteFields);
+
+ Utils.AddServerHandler(socket, MessageStore.CreateField, CreateField);
+ Utils.AddServerHandler(socket, MessageStore.UpdateField, diff => UpdateField(socket, diff));
+ Utils.AddServerHandler(socket, MessageStore.GetRefField, GetRefField);
});
async function deleteFields() {
@@ -275,5 +279,18 @@ function setField(socket: Socket, newValue: Transferable) {
}
}
+function GetRefField([id, callback]: [string, (result?: Transferable) => void]) {
+ Database.Instance.getDocument(id, callback, "newDocuments");
+}
+
+function UpdateField(socket: Socket, diff: Diff) {
+ Database.Instance.update(diff.id, diff.diff,
+ () => socket.broadcast.emit(MessageStore.UpdateField.Message, diff), false, "newDocuments");
+}
+
+function CreateField(newValue: any) {
+ Database.Instance.insert(newValue, "newDocuments");
+}
+
server.listen(serverPort);
console.log(`listening on port ${serverPort}`); \ No newline at end of file