Projektstart
This commit is contained in:
36
backend/node_modules/imapflow/lib/commands/rename.js
generated
vendored
Normal file
36
backend/node_modules/imapflow/lib/commands/rename.js
generated
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
'use strict';
|
||||
|
||||
const { encodePath, normalizePath, enhanceCommandError } = require('../tools.js');
|
||||
|
||||
// Renames existing mailbox
|
||||
module.exports = async (connection, path, newPath) => {
|
||||
if (![connection.states.AUTHENTICATED, connection.states.SELECTED].includes(connection.state)) {
|
||||
// nothing to do here
|
||||
return;
|
||||
}
|
||||
|
||||
path = normalizePath(connection, path);
|
||||
newPath = normalizePath(connection, newPath);
|
||||
|
||||
if (connection.state === connection.states.SELECTED && connection.mailbox.path === path) {
|
||||
await connection.run('CLOSE');
|
||||
}
|
||||
|
||||
let response;
|
||||
try {
|
||||
let map = {
|
||||
path,
|
||||
newPath
|
||||
};
|
||||
response = await connection.exec('RENAME', [
|
||||
{ type: 'ATOM', value: encodePath(connection, path) },
|
||||
{ type: 'ATOM', value: encodePath(connection, newPath) }
|
||||
]);
|
||||
response.next();
|
||||
return map;
|
||||
} catch (err) {
|
||||
await enhanceCommandError(err);
|
||||
connection.log.warn({ err, cid: connection.id });
|
||||
throw err;
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user