El servidor Actividad y notificaciones
Actividad y notificaciones
En esta página
Qué se guarda
Creado, subido, una nueva versión, renombrado, movido, enviado a la papelera y de vuelta, borrado, compartido y ya no, un enlace creado y retirado, un color dado; quién, y cuándo.
Los detalles de un archivo tienen su Actividad, y los de una carpeta también lo que se hizo justo dentro (GET /entries/:id/activity, client.activity); un asistente la lee con get_activity.
En código
import { activityOf } from '@rebofiles/core';
activityOf(before, after, 'ana', new Date().toISOString());
// [{ action: 'renamed', name: 'final.docx', was: 'draft.docx', by: 'ana', at, entry, parent }]Avisar a la gente
Junto a Compartido conmigo, el drive cuenta lo nuevo. Para avisar tú a la persona, dale onShare al servidor.
createDriveHandler({
...options,
// Once the share is kept; a failure here is not the request's.
onShare: async ({ entry, with: who, role, by, first }) => {
if (first) await mail(who, `${by.id} shared “${entry.name}” with you as ${role}`);
},
});Avisado en el drive
Lo que se comparte con una persona, o con un grupo suyo, y un comentario que la nombra: en la campana sobre el drive, con cuántos son nuevos al lado, y cada uno abre donde está.
const { notifications, unseen } = await client.notifications();
// [{ kind: 'shared', entry, name: 'Budget', by: 'ana', role: 'editor', at }, { kind: 'mentioned', text, … }]
await client.sawNotifications(); // none is new any moreSe guardan para cada persona y cada grupo (inbox:<quién>), los últimos doscientos; vistos, ya no hay nuevos (POST /notifications/seen). Lo que hizo uno mismo no se avisa. Un correo sigue siendo cosa tuya, con onShare y onComment.
Todo el drive
Para quien puede configurar el drive, Ajustes → Personas: los archivos, carpetas y espacio de cada persona y de todo el drive, y la actividad más reciente de cualquier parte.
// For who may 'configure': what each keeps, and what was done anywhere.
const { people, total, quota } = await client.adminUsage(); // GET /admin/usage
const latest = await client.adminActivity(100); // GET /admin/activityEl espacio de cada uno se calcula con todo el drive, leído una vez cada vez que se pide: para quien lo administra, de vez en cuando, no para cada página.
Qué saber
Un cambio se guarda sin su línea si el almacén no consigue escribir la actividad: el cambio es el drive, la línea va aparte.