dev(backend): emit rename through EventService
Docker Image CI / build-and-push-image (push) Has been cancelled
Maintain Release Merge PR / update-release-pr (push) Has been cancelled
release-please / release-please (push) Has been cancelled
test / test (18.x) (push) Has been cancelled
test / test (20.x) (push) Has been cancelled
test / test (22.x) (push) Has been cancelled

While previously the /rename endpoint sent only a websocket message to
the client, move didn't fire a rename event if the name of the file had
changed. This commit adds a more generalized rename event that can be
reliably used to update a UI whenever the name of a file changes.
This commit is contained in:
KernelDeimos
2025-09-05 12:52:45 -04:00
parent 994233aa0a
commit e6eff9940d
2 changed files with 22 additions and 2 deletions
@@ -246,11 +246,16 @@ class PuterFSProvider extends putility.AdvancedBase {
const svc_event = services.get('event');
await svc_event.emit('fs.move.file', {
const promises = [];
promises.push(svc_event.emit('fs.move.file', {
context,
moved: node,
old_path,
});
}));
promises.push(svc_event.emit('fs.rename', {
uid: await node.get('uid'),
new_name,
}));
return node;
}
@@ -176,6 +176,21 @@ module.exports = eggspress('/rename', {
// send realtime success msg to client
const svc_socketio = req.services.get('socketio');
svc_socketio.send({ room: req.user.id }, 'item.renamed', return_obj);
(async () => { try {
const svc_event = req.services.get('event');
await svc_event.emit('fs.rename', {
uid: fsentry.uuid,
new_name: req.body.new_name,
})
} catch (e) {
const log = req.services.get('log-service').create('rename-endpoint');
const errors = req.services.get('error-service').create(log);
errors.report('emit.rename', {
alarm: true,
source: e,
});
}})();
return res.send(return_obj);
});