diff options
author | Tyler Schicke <tyler_schicke@brown.edu> | 2019-07-10 12:35:01 -0400 |
---|---|---|
committer | Tyler Schicke <tyler_schicke@brown.edu> | 2019-07-10 12:35:01 -0400 |
commit | fd8fcfe74fff78bc67b6302f917c53e69d598712 (patch) | |
tree | 74a3905f7b330353c3ed7ac36df8461bc860cef6 /src | |
parent | bb55fa2d6e4f9bec26b2eea3c2df50b7bc584c46 (diff) |
Added rest of delete fields (untested)
Diffstat (limited to 'src')
-rw-r--r-- | src/client/DocServer.ts | 18 | ||||
-rw-r--r-- | src/server/index.ts | 21 |
2 files changed, 38 insertions, 1 deletions
diff --git a/src/client/DocServer.ts b/src/client/DocServer.ts index b7b03f04c..443f70bb1 100644 --- a/src/client/DocServer.ts +++ b/src/client/DocServer.ts @@ -168,16 +168,34 @@ export namespace DocServer { } } + function _respondToDeleteImpl(ids: string | string[]) { + function deleteId(id: string) { + delete _cache[id]; + } + if (typeof ids === "string") { + deleteId(ids); + } else if (Array.isArray(ids)) { + ids.map(deleteId); + } + } + let _respondToUpdate = _respondToUpdateImpl; + let _respondToDelete = _respondToDeleteImpl; function respondToUpdate(diff: any) { _respondToUpdate(diff); } + function respondToDelete(ids: string | string[]) { + _respondToDelete(ids); + } + function connected() { _socket.emit(MessageStore.Bar.Message, GUID); } Utils.AddServerHandler(_socket, MessageStore.Foo, connected); Utils.AddServerHandler(_socket, MessageStore.UpdateField, respondToUpdate); + Utils.AddServerHandler(_socket, MessageStore.DeleteField, respondToDelete); + Utils.AddServerHandler(_socket, MessageStore.DeleteFields, respondToDelete); }
\ No newline at end of file diff --git a/src/server/index.ts b/src/server/index.ts index 2073046ce..21adff9e5 100644 --- a/src/server/index.ts +++ b/src/server/index.ts @@ -25,7 +25,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, Diff } from "./Message"; +import { MessageStore, Transferable, Types, Diff, Message } from "./Message"; import { RouteStore } from './RouteStore'; const app = express(); const config = require('../../webpack.config'); @@ -465,6 +465,8 @@ server.on("connection", function (socket: Socket) { Utils.AddServerHandler(socket, MessageStore.CreateField, CreateField); Utils.AddServerHandler(socket, MessageStore.UpdateField, diff => UpdateField(socket, diff)); + Utils.AddServerHandler(socket, MessageStore.DeleteField, id => DeleteField(socket, id)); + Utils.AddServerHandler(socket, MessageStore.DeleteFields, ids => DeleteFields(socket, ids)); Utils.AddServerHandlerCallback(socket, MessageStore.GetRefField, GetRefField); Utils.AddServerHandlerCallback(socket, MessageStore.GetRefFields, GetRefFields); }); @@ -591,6 +593,23 @@ function UpdateField(socket: Socket, diff: Diff) { } } +function DeleteField(socket: Socket, id: string) { + Database.Instance.delete({ _id: id }, "newDocuments").then(() => { + socket.broadcast.emit(MessageStore.DeleteField.Message, id); + }); + + Search.Instance.deleteDocuments([id]); +} + +function DeleteFields(socket: Socket, ids: string[]) { + Database.Instance.delete({ _id: { $in: ids } }, "newDocuments").then(() => { + socket.broadcast.emit(MessageStore.DeleteFields.Message, ids); + }); + + Search.Instance.deleteDocuments(ids); + +} + function CreateField(newValue: any) { Database.Instance.insert(newValue, "newDocuments"); } |