wildduck/imap-core/lib/commands/close.js

47 lines
1.2 KiB
JavaScript
Raw Normal View History

2017-03-06 05:45:50 +08:00
'use strict';
module.exports = {
state: 'Selected',
handler(command, callback) {
// Check if EXPUNGE method is set
if (typeof this._server.onExpunge !== 'function') {
return callback(null, {
response: 'NO',
message: 'EXPUNGE not implemented'
});
}
// Just unselect if in read only mode
if (this.selected.readOnly) {
this.session.selected = this.selected = false;
this.state = 'Authenticated';
return callback(null, {
response: 'OK'
});
}
let mailbox = this.selected.mailbox;
this.session.selected = this.selected = false;
this.state = 'Authenticated';
this.updateNotificationListener(() => {
2017-06-03 14:51:58 +08:00
this._server.onExpunge(
mailbox,
{
isUid: false,
silent: true
},
this.session,
() => {
// don't care if expunging succeeded, the mailbox is now closed anyway
callback(null, {
response: 'OK'
});
}
);
2017-03-06 05:45:50 +08:00
});
}
};