diff options
Diffstat (limited to 'src/server/Websocket/Websocket.ts')
| -rw-r--r-- | src/server/Websocket/Websocket.ts | 44 | 
1 files changed, 18 insertions, 26 deletions
| diff --git a/src/server/Websocket/Websocket.ts b/src/server/Websocket/Websocket.ts index 947aa4289..844535056 100644 --- a/src/server/Websocket/Websocket.ts +++ b/src/server/Websocket/Websocket.ts @@ -10,9 +10,9 @@ import { GoogleCredentialsLoader } from "../credentials/CredentialsLoader";  import { logPort } from "../ActionUtilities";  import { timeMap } from "../ApiManagers/UserManager";  import { green } from "colors"; -import { serverPathToFile, Directory } from "../ApiManagers/UploadManager";  import { networkInterfaces } from "os";  import executeImport from "../../scraping/buxton/final/BuxtonImporter"; +import { DocumentsCollection } from "../IDatabase";  export namespace WebSocket { @@ -97,7 +97,7 @@ export namespace WebSocket {              Utils.AddServerHandlerCallback(socket, MessageStore.GetField, getField);              Utils.AddServerHandlerCallback(socket, MessageStore.GetFields, getFields);              if (isRelease) { -                Utils.AddServerHandler(socket, MessageStore.DeleteAll, deleteFields); +                Utils.AddServerHandler(socket, MessageStore.DeleteAll, () => doDelete(false));              }              Utils.AddServerHandler(socket, MessageStore.CreateField, CreateField); @@ -111,6 +111,12 @@ export namespace WebSocket {              Utils.AddServerHandler(socket, MessageStore.MobileDocumentUpload, content => processMobileDocumentUpload(socket, content));              Utils.AddServerHandlerCallback(socket, MessageStore.GetRefField, GetRefField);              Utils.AddServerHandlerCallback(socket, MessageStore.GetRefFields, GetRefFields); + +            /** +             * Whenever we receive the go-ahead, invoke the import script and pass in +             * as an emitter and a terminator the functions that simply broadcast a result +             * or indicate termination to the client via the web socket +             */              Utils.AddServerHandler(socket, MessageStore.BeginBuxtonImport, () => {                  executeImport(                      deviceOrError => Utils.Emit(socket, MessageStore.BuxtonDocumentResult, deviceOrError), @@ -158,24 +164,10 @@ export namespace WebSocket {          }      } -    export async function deleteFields() { -        await Database.Instance.deleteAll(); -        if (process.env.DISABLE_SEARCH !== "true") { -            await Search.clear(); -        } -        await Database.Instance.deleteAll('newDocuments'); -    } - -    // export async function deleteUserDocuments() { -    //     await Database.Instance.deleteAll(); -    //     await Database.Instance.deleteAll('newDocuments'); -    // } - -    export async function deleteAll() { -        await Database.Instance.deleteAll(); -        await Database.Instance.deleteAll('newDocuments'); -        await Database.Instance.deleteAll('sessions'); -        await Database.Instance.deleteAll('users'); +    export async function doDelete(onlyFields = true) { +        const target: string[] = []; +        onlyFields && target.push(DocumentsCollection); +        await Database.Instance.dropSchema(...target);          if (process.env.DISABLE_SEARCH !== "true") {              await Search.clear();          } @@ -205,11 +197,11 @@ export namespace WebSocket {      }      function GetRefField([id, callback]: [string, (result?: Transferable) => void]) { -        Database.Instance.getDocument(id, callback, "newDocuments"); +        Database.Instance.getDocument(id, callback);      }      function GetRefFields([ids, callback]: [string[], (result?: Transferable[]) => void]) { -        Database.Instance.getDocuments(ids, callback, "newDocuments"); +        Database.Instance.getDocuments(ids, callback);      }      const suffixMap: { [type: string]: (string | [string, string | ((json: any) => any)]) } = { @@ -266,7 +258,7 @@ export namespace WebSocket {      function UpdateField(socket: Socket, diff: Diff) {          Database.Instance.update(diff.id, diff.diff, -            () => socket.broadcast.emit(MessageStore.UpdateField.Message, diff), false, "newDocuments"); +            () => socket.broadcast.emit(MessageStore.UpdateField.Message, diff), false);          const docfield = diff.diff.$set || diff.diff.$unset;          if (!docfield) {              return; @@ -291,7 +283,7 @@ export namespace WebSocket {      }      function DeleteField(socket: Socket, id: string) { -        Database.Instance.delete({ _id: id }, "newDocuments").then(() => { +        Database.Instance.delete({ _id: id }).then(() => {              socket.broadcast.emit(MessageStore.DeleteField.Message, id);          }); @@ -299,14 +291,14 @@ export namespace WebSocket {      }      function DeleteFields(socket: Socket, ids: string[]) { -        Database.Instance.delete({ _id: { $in: ids } }, "newDocuments").then(() => { +        Database.Instance.delete({ _id: { $in: ids } }).then(() => {              socket.broadcast.emit(MessageStore.DeleteFields.Message, ids);          });          Search.deleteDocuments(ids);      }      function CreateField(newValue: any) { -        Database.Instance.insert(newValue, "newDocuments"); +        Database.Instance.insert(newValue);      }  } | 
