|
|
|
@ -474,15 +474,23 @@ class CoreNodeService extends SiteService {
|
|
|
|
|
// provides an abort point if any listener throws
|
|
|
|
|
await this.emitDtpEvent('disconnect-pre', { core });
|
|
|
|
|
|
|
|
|
|
const disconnect = await this.sendRequest(core, {
|
|
|
|
|
let disconnect;
|
|
|
|
|
try {
|
|
|
|
|
disconnect = await this.sendRequest(core, {
|
|
|
|
|
method: 'DELETE',
|
|
|
|
|
url: `/core/connect/node/${core.oauth.clientId}`,
|
|
|
|
|
});
|
|
|
|
|
} catch (error) {
|
|
|
|
|
if ((error.code !== 'EPROTO') && (error.statusCode !== 404)) {
|
|
|
|
|
throw new SiteError(error.statusCode, 'Failed to disconnect from Core');
|
|
|
|
|
}
|
|
|
|
|
} finally {
|
|
|
|
|
this.log.alert('Core disconnect request complete', {
|
|
|
|
|
name: core.meta.name,
|
|
|
|
|
domain: core.meta.domain,
|
|
|
|
|
disconnect,
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
await this.emitDtpEvent('disconnect-post', { core, disconnect });
|
|
|
|
@ -496,8 +504,8 @@ class CoreNodeService extends SiteService {
|
|
|
|
|
.cursor()
|
|
|
|
|
.eachAsync(this.removeUser.bind(this, core), 1);
|
|
|
|
|
|
|
|
|
|
// await CoreNodeConnect.deleteMany({ 'site.domainKey': core.meta.domainKey });
|
|
|
|
|
// await CoreNodeRequest.deleteMany({ core: core._id });
|
|
|
|
|
await CoreNodeConnect.deleteMany({ 'site.domainKey': core.meta.domainKey });
|
|
|
|
|
await CoreNodeRequest.deleteMany({ core: core._id });
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
await this.emitDtpEvent('disconnect', { core, disconnect });
|
|
|
|
@ -506,6 +514,8 @@ class CoreNodeService extends SiteService {
|
|
|
|
|
// keep going
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
await CoreNode.deleteOne({ _id: core._id });
|
|
|
|
|
|
|
|
|
|
return disconnect;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|