aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTyler Schicke <tyler_schicke@brown.edu>2019-05-03 20:28:22 -0400
committerTyler Schicke <tyler_schicke@brown.edu>2019-05-03 20:28:22 -0400
commit189eeefbb3e7f3d96d1d140beff74fcffe305786 (patch)
treeb2e0afdfb74e833e22241a077db662c033fa8e59
parent0c28cabf0d496be24da3e5ee414a8fcd925250ab (diff)
Added debugging support and added removing of unused keys in Solr
-rw-r--r--.vscode/launch.json9
-rw-r--r--package.json3
-rw-r--r--src/server/index.ts40
3 files changed, 26 insertions, 26 deletions
diff --git a/.vscode/launch.json b/.vscode/launch.json
index fb91a1080..e92a4949a 100644
--- a/.vscode/launch.json
+++ b/.vscode/launch.json
@@ -15,6 +15,15 @@
},
{
"type": "node",
+ "request": "attach",
+ "name": "Typescript Server",
+ "protocol": "inspector",
+ "port": 9229,
+ "localRoot": "${workspaceFolder}",
+ "remoteRoot": "."
+ },
+ {
+ "type": "node",
"request": "launch",
"name": "Mocha Tests",
"program": "${workspaceFolder}/node_modules/mocha/bin/_mocha",
diff --git a/package.json b/package.json
index 1eb546a80..fd794d062 100644
--- a/package.json
+++ b/package.json
@@ -5,6 +5,7 @@
"main": "index.js",
"scripts": {
"start": "ts-node-dev -- src/server/index.ts",
+ "debug": "ts-node-dev --inspect -- src/server/index.ts",
"build": "webpack --env production",
"test": "mocha -r ts-node/register test/**/*.ts",
"tsc": "tsc"
@@ -171,4 +172,4 @@
"uuid": "^3.3.2",
"xoauth2": "^1.2.0"
}
-}
+} \ No newline at end of file
diff --git a/src/server/index.ts b/src/server/index.ts
index b4252c2a1..f90724152 100644
--- a/src/server/index.ts
+++ b/src/server/index.ts
@@ -286,41 +286,31 @@ function GetRefField([id, callback]: [string, (result?: Transferable) => void])
Database.Instance.getDocument(id, callback, "newDocuments");
}
+const suffixMap: { [type: string]: string } = {
+ "number": "_n",
+ "string": "_t"
+};
function UpdateField(socket: Socket, diff: Diff) {
Database.Instance.update(diff.id, diff.diff,
() => socket.broadcast.emit(MessageStore.UpdateField.Message, diff), false, "newDocuments");
- //if (diff.diff === Types.Text) {
- //Search.Instance.updateDocument({ name: "john", burns: "true" });
- //Search.Instance.updateDocument({ id: diff.id, data: diff.diff.data });
- //console.log("set field");
- //}
- const docid = { id: diff.id };
- var docfield = diff.diff;
- docfield = JSON.parse(JSON.stringify(docfield).split("fields.").join(""));
+ const docfield = diff.diff;
+ const update: any = { id: diff.id };
console.log("FIELD: ", docfield);
- var dynfield = false;
- for (var key in docfield) {
+ let dynfield = false;
+ for (let key in docfield) {
+ if (!key.startsWith("fields.")) continue;
const val = docfield[key];
- if (typeof val === 'number') {
- const new_key: string = key + "_n";
- docfield = JSON.parse(JSON.stringify(docfield).split(key).join(new_key));
- //docfield[new_key] = { 'set': val };
- dynfield = true;
- }
- else if (typeof val === 'string') {
- const new_key: string = key + "_t";
- docfield = JSON.parse(JSON.stringify(docfield).split(key).join(new_key));
- docfield[new_key] = { 'set': val };
+ const suffix = suffixMap[typeof val];
+ if (suffix !== undefined) {
+ key = key.substring(7);
+ Object.values(suffixMap).forEach(suf => update[key + suf] = null);
+ update[key + suffix] = { set: val };
dynfield = true;
}
}
- var merged = {};
- _.extend(merged, docid, docfield);
- console.log("MERGED: ", merged);
- console.log("DOC_FIELD: ", docfield);
if (dynfield) {
console.log("dynamic field detected!");
- Search.Instance.updateDocument(merged);
+ Search.Instance.updateDocument(update);
}
}