Ray Bellis
ccb49dcdc1
padDiff.js: convert to Promises/async
2019-01-31 14:38:56 +00:00
Ray Bellis
4622309dc2
TidyHtml.js: convert to promises
...
test case uses "nodeify" to convert the calls to TidyHtml back
into nodeback because it integrates better with the test framework
2019-01-31 13:42:41 +00:00
Ray Bellis
6d1b6b2796
db/Pad.js: convert to promises/async
...
Also updated some small chunks of dependent code that couldn't be converted
until this one had been done.
2019-01-31 11:14:38 +00:00
Ray Bellis
ebb8a64e3c
errorhandling.js: use promise db.doShutdown interface
2019-01-31 11:14:27 +00:00
Ray Bellis
b664eb488c
ImportHandler.js: ensure import connection closing happens at the right point
2019-02-08 14:46:05 +00:00
Ray Bellis
62345ac8f7
import/export: conversion to Promises/async
...
NB1: needs additional review and testing - no abiword available on my test bed
NB2: in ImportHandler.js, directly delete the file, and handle the eventual
error later: checking before for existence is prone to race conditions,
and does not handle any errors anyway.
2019-01-31 08:55:36 +00:00
Ray Bellis
5192a0c498
db/ReadOnlyManager.js: completed conversion
...
Requires temporary hack within `Pad.remove()` to allow for the lack of
callback on the rewritten version.
2019-01-30 16:19:51 +00:00
Ray Bellis
bb80325d2c
PadMessageHandler.js: completed conversion
2019-01-30 15:27:42 +00:00
Ray Bellis
9246a1de26
PadMessageHandler.js: further conversion
2019-01-30 13:55:49 +00:00
Ray Bellis
d543d5ae6a
PadMessageHandler.js: convert handleUserChanges() to Promises
...
- the call site still expects a nodeback function, so also introduced the
`nodeify` module to allow that function to work as expected.
2019-01-30 10:43:01 +00:00
Ray Bellis
c499a08030
bin/repairPad.js: conversion to promise/async
...
- but see also github issue #3545
2019-01-30 10:47:50 +00:00
Ray Bellis
58d0e6cea4
APIHandler.js: further cleanup
...
- removed possible issue with failing to sanitize `padName` if `padId` was also
supplied
- removed unnecessary `try` block
- simplified API and function name matching tests
2019-01-30 10:41:10 +00:00
Ray Bellis
982d4f380a
db/Pad.js: start use of promise DB methods
2019-01-30 10:25:46 +00:00
Ray Bellis
7f19033cc0
SocketIORouter: code formatting cleanups
2019-01-30 10:25:01 +00:00
Ray Bellis
bbe4a5f756
db/PadManager.js: more conversion to Promises/async
2019-01-28 16:20:30 +00:00
Ray Bellis
8108964472
db/AuthorManager.js: further conversion
...
also fixes a missing await calling `.createAuthor` in db/Pad.js
2019-01-28 15:36:36 +00:00
Ray Bellis
005c0afa97
db/SessionManager.js: completely converted to Promises/async
2019-01-28 14:44:36 +00:00
Ray Bellis
e58da69cfb
db/SecurityManager.js: converted checkAccess() to pure Promises
...
Also converted the handler functions that depend on checkAccess() into async
functions too.
NB: this commit needs specific attention to it because it touches a lot of
security related code!
2019-01-28 13:13:24 +00:00
Ray Bellis
7709fd46e5
utility scripts: converted to use the Promise interface
2019-01-26 23:52:02 +00:00
Ray Bellis
e7dc0766fd
db/API.js: complete conversion to Promises
...
This patch also contains significant refactoring relating to error checking of
arguments supplied to the functions (e.g. rev) facilitated by use of `throw`
instead of nodeback errors.
2019-01-25 18:08:34 +00:00
Ray Bellis
1b6430ae9f
db/PadMessageHandler.js: partial conversion to Promises
...
Converted those functions that API.js still depends on, and others that at this
point are never called via the nodeback mechanism.
2019-01-25 18:07:01 +00:00
Ray Bellis
8f53e4407e
db/AuthorManager.js: partial conversion to Promises
2019-01-25 15:47:25 +00:00
Ray Bellis
eedae98e2f
db/PadManager.js: convert sanitizePadId() to Promises
...
The function is now iterative rather than recursive.
2019-01-25 15:15:16 +00:00
Ray Bellis
bf9e3f92b5
db/PadManager.js: renamed doesPadExists() -> doesPadExist()
...
Removed the 's' for consistency with the other `doesFooExist()` manager calls.
Retained an alias for plugins that might be using it.
2019-01-25 15:05:12 +00:00
Ray Bellis
a875ca6c30
db/SessionManager.js: mostly converted to Promises
2019-01-25 14:53:24 +00:00
Ray Bellis
16c4c33f49
db/AuthorManager.js: renamed doesAuthorExists() -> doesAuthorExist()
...
Removed the 's' for consistency with the other `doesFooExist()` manager calls.
Retained an alias for plugins that might be using it.
2019-01-25 13:37:24 +00:00
Ray Bellis
70a045ad3c
db/GroupManager.js: mostly converted to Promises / async
2019-01-25 12:56:57 +00:00
Ray Bellis
29e9f86cad
db/DB.js: add Promise-only API methods
...
Promisified methods:
- get()
- set()
- findKeys()
- getSub()
- setSub()
- remove()
- doShutdown()
2019-01-23 18:08:47 +00:00
Ray Bellis
583ea92aaf
db/SessionStore.js: do not migrate to Promises. Make optional all(), clear() and length()
...
1. This module was not migrated to Promises, because it is only used via
express-session, which can't actually use promises anyway.
2. all(), clear() and length() depend on the presence of the `db.forEach()`
function, which in ueberdb2 doesn't even exist.
Fortunately those three methods are optional, so I made their existence
conditional on the presence of `db.forEach`.
3. in SessionStore.clear(), replaced a call to db.db.remove() with db.remove()
2019-01-23 16:58:43 +00:00
muxator
630af9af7d
db/SessionStore.js: call nextTick() only if there is something to do
...
Changed two occurrences of:
process.nextTick(function() {
if (fn) fn();
});
with
if (fn) {
process.nextTick(fn);
}
i.e. such that no function even gets added to the `nextTick` queue unless
there's actually a function to be called.
Extracted from Ray's work.
2019-02-09 00:14:53 +01:00
Ray Bellis
96d875b4d1
padurlsanitize.js: rewritten to consume promises
2019-01-23 16:36:28 +00:00
muxator
b699621e5a
padurlsanitize.js: invert a condition prior to refactoring
...
Extracted from Ray's work.
2019-02-09 00:05:21 +01:00
Ray Bellis
d5d28717c4
access controls: promisification
...
`getPadAccess()` (src/node/padaccess.js) is now "promise only", resolving to
`true` or `false` as appropriate, and throwing an exception if there's an
error.
The two call sites (padreadonly.js and importexport.js) updated to match.
2019-01-23 16:29:36 +00:00
Ray Bellis
34fdaa4e8c
db/SecurityManager.js: convert checkAccess() to thenify
2019-01-23 16:25:29 +00:00
Ray Bellis
23a3a079a6
tests.js: remove use of async.js
...
Use real `async` instead of async.js where applicable.
The `getPluginTests()` function was never truly async anyway because it only
contains calls to synchronous `fs` modules.
2019-01-23 16:21:40 +00:00
Ray Bellis
0c2d662541
plugins download and search: converted to Promises
...
Also fixed a bug where the system would make a request to the central server for
the plugin list for every search even if the list was already cached.
2019-01-23 12:24:53 +00:00
Ray Bellis
5ef4a2d1d5
more thenify in node/utils/*
2019-01-22 17:30:33 +00:00
Ray Bellis
584e481430
PadMessageHandler.js: migrate to thenify
2019-01-22 15:48:29 +00:00
Ray Bellis
5d7162ac9a
utils/ImportHtml.js: migrate to thenify
2019-01-22 14:58:25 +00:00
Ray Bellis
c4f1f83747
APIHandler.js: use promises
2019-01-22 13:30:28 +00:00
Ray Bellis
ec5baa2ab3
PadMessageHandler.js: convert two remaining API calls to thenify
2019-01-22 12:58:26 +00:00
Ray Bellis
17fe32ec0c
start using "thenify" to support callback and promises
...
PadManager.sanitizePadId() can't use thenify: single arg callback
2019-01-21 16:28:05 +00:00
muxator
40c45077ef
db/GroupManager.js: factored out a variable
...
Extracted from Ray's work.
2019-02-09 01:15:50 +01:00
Ray Bellis
4877ec319a
server.js: rewritten to use Promises
2019-01-18 16:10:25 +00:00
Ray Bellis
a579dfc285
pluginfw/installer.js: use Promise version of hooks.aCallAll() in install(), uninstall()
...
We cannot use arrow functions in this file, because code in /src/static can end
up being loaded in browsers, and we still support IE11.
2019-01-18 16:10:48 +00:00
Ray Bellis
80b3019154
pluginfw/plugins.js: converted to Promise API
2019-01-18 13:52:37 +00:00
Ray Bellis
8d85ae582e
pluginfw/hooks.js: allow returning a Promise in aCallFirst(), aCallAll()
...
Since this code can end up loaded in browsers when using client side plugins,
avoid use of ES6 syntax features such as arrow functions until MSIE support is
finally dropped.
2019-01-18 13:49:17 +00:00
Ray Bellis
3802073695
db/DB.js: allow a Promise return instead of callbacks in init()
2019-01-18 13:48:46 +00:00
muxator
b0846ded14
db/SessionManager.js: "authorMangager" -> "authorManager"
...
Extracted from Ray's work.
2019-02-09 02:19:14 +01:00
muxator
98993fe156
db/SessionManager.js: "groupMangager" -> "groupManager"
...
Extracted from Ray's work.
2019-02-09 02:18:36 +01:00