aboutsummaryrefslogtreecommitdiff
path: root/src/server/ApiManagers
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/ApiManagers')
-rw-r--r--src/server/ApiManagers/SearchManager.ts19
-rw-r--r--src/server/ApiManagers/SessionManager.ts6
-rw-r--r--src/server/ApiManagers/UserManager.ts41
3 files changed, 52 insertions, 14 deletions
diff --git a/src/server/ApiManagers/SearchManager.ts b/src/server/ApiManagers/SearchManager.ts
index a52430ee8..775e90520 100644
--- a/src/server/ApiManagers/SearchManager.ts
+++ b/src/server/ApiManagers/SearchManager.ts
@@ -47,13 +47,20 @@ export class SearchManager extends ApiManager {
const resObj: { ids: string[], numFound: number, lines: string[] } = { ids: [], numFound: 0, lines: [] };
let results: any;
const dir = pathToDirectory(Directory.text);
- results = await findInFiles.find({ 'term': q, 'flags': 'ig' }, dir, ".txt$");
- for (const result in results) {
- resObj.ids.push(path.basename(result, ".txt").replace(/upload_/, ""));
- resObj.lines.push(results[result].line);
- resObj.numFound++;
+ try {
+ const regex = new RegExp(q.toString());
+ results = await findInFiles.find({ 'term': q, 'flags': 'ig' }, dir, ".txt$");
+ for (const result in results) {
+ resObj.ids.push(path.basename(result, ".txt").replace(/upload_/, ""));
+ resObj.lines.push(results[result].line);
+ resObj.numFound++;
+ }
+ res.send(resObj);
+ } catch (e) {
+ console.log(red("textsearch:bad RegExp" + q.toString()));
+ res.send([]);
+ return;
}
- res.send(resObj);
}
});
diff --git a/src/server/ApiManagers/SessionManager.ts b/src/server/ApiManagers/SessionManager.ts
index fa2f6002a..e37f8c6db 100644
--- a/src/server/ApiManagers/SessionManager.ts
+++ b/src/server/ApiManagers/SessionManager.ts
@@ -12,9 +12,9 @@ export default class SessionManager extends ApiManager {
private authorizedAction = (handler: SecureHandler) => {
return (core: AuthorizedCore) => {
- const { req: { params }, res, isRelease } = core;
- if (!isRelease) {
- return res.send("This can be run only on the release server.");
+ const { req: { params }, res } = core;
+ if (!process.env.MONITORED) {
+ return res.send("This command only makes sense in the context of a monitored session.");
}
if (params.session_key !== process.env.session_key) {
return _permission_denied(res, permissionError);
diff --git a/src/server/ApiManagers/UserManager.ts b/src/server/ApiManagers/UserManager.ts
index 0d1d8f218..f36506b14 100644
--- a/src/server/ApiManagers/UserManager.ts
+++ b/src/server/ApiManagers/UserManager.ts
@@ -19,22 +19,53 @@ export default class UserManager extends ApiManager {
method: Method.GET,
subscription: "/getUsers",
secureHandler: async ({ res }) => {
- const cursor = await Database.Instance.query({}, { email: 1, userDocumentId: 1 }, "users");
+ const cursor = await Database.Instance.query({}, { email: 1, linkDatabaseId: 1, sharingDocumentId: 1 }, "users");
const results = await cursor.toArray();
- res.send(results.map(user => ({ email: user.email, userDocumentId: user.userDocumentId })));
+ res.send(results.map(user => ({ email: user.email, linkDatabaseId: user.linkDatabaseId, sharingDocumentId: user.sharingDocumentId })));
}
});
register({
+ method: Method.POST,
+ subscription: "/setCacheDocumentIds",
+ secureHandler: async ({ user, req, res }) => {
+ const result: any = {};
+ user.cacheDocumentIds = req.body.cacheDocumentIds;
+ user.save(err => {
+ if (err) {
+ result.error = [{ msg: "Error while caching documents" }];
+ }
+ });
+
+ // Database.Instance.update(id, { "$set": { "fields.cacheDocumentIds": cacheDocumentIds } }, e => {
+ // console.log(e);
+ // });
+ res.send(result);
+ }
+ });
+
+ register({
+ method: Method.GET,
+ subscription: "/getUserDocumentIds",
+ secureHandler: ({ res, user }) => res.send({ userDocumentId: user.userDocumentId, linkDatabaseId: user.linkDatabaseId, sharingDocumentId: user.sharingDocumentId })
+ });
+
+ register({
+ method: Method.GET,
+ subscription: "/getSharingDocumentId",
+ secureHandler: ({ res, user }) => res.send(user.sharingDocumentId)
+ });
+
+ register({
method: Method.GET,
- subscription: "/getUserDocumentId",
- secureHandler: ({ res, user }) => res.send(user.userDocumentId)
+ subscription: "/getLinkDatabaseId",
+ secureHandler: ({ res, user }) => res.send(user.linkDatabaseId)
});
register({
method: Method.GET,
subscription: "/getCurrentUser",
- secureHandler: ({ res, user: { _id, email } }) => res.send(JSON.stringify({ id: _id, email })),
+ secureHandler: ({ res, user: { _id, email, cacheDocumentIds } }) => res.send(JSON.stringify({ id: _id, email, cacheDocumentIds })),
publicHandler: ({ res }) => res.send(JSON.stringify({ id: "__guest__", email: "" }))
});