AlpuraPouchDbUtil – Guía de uso
Este documento explica cómo usar la utilidad AlpuraPouchDbUtil de la librería de @alpura/core, la cual facilita las operaciones con la base de datos local PouchDB.
📁 Importaciones necesarias
En tu componente o servicio, importa AlpuraPouchDbUtil desde la librería de @alpura/core.
import { AlpuraPouchDbUtil } from "@alpura/core";
🧩 Métodos Disponibles
La utilidad AlpuraPouchDbUtil expone métodos estáticos, por lo que no es necesario inyectarla. Puedes llamar a sus métodos directamente desde la clase. Estos métodos devuelven promesas, por lo que se recomienda usar async/await para manejarlos.
addRequest(request)
Guarda una nueva petición en la base de datos local para su posterior sincronización. El objeto request debe contener la información necesaria para reconstruir la petición HTTP (URL, método, cuerpo, cabeceras, etc.).
async function saveRequestForLater(requestData: object) {
try {
// El método devuelve una promesa que se resuelve con la respuesta de PouchDB.
const result = await AlpuraPouchDbUtil.addRequest(requestData);
console.log('Petición guardada con éxito:', result.id);
} catch (error) {
console.error('Error al guardar la petición:', error);
}
}
getAllRequests()
Obtiene todas las peticiones pendientes almacenadas en la base de datos local.
async function loadPendingRequests() {
// Devuelve una promesa que se resuelve con un arreglo de documentos.
const pendingRequests = await AlpuraPouchDbUtil.getAllRequests();
console.log('Peticiones pendientes a sincronizar:', pendingRequests);
// Ejemplo de respuesta: [{ _id: '...', _rev: '...', url: '...', body: {...} }, ...]
}
deleteRequest(request)
Elimina una petición de la base de datos local. Típicamente se usa después de que la petición ha sido sincronizada con éxito con el servidor. El objeto request debe ser el documento completo obtenido de PouchDB, ya que incluye _id y _rev.
async function removeSyncedRequest(requestDocument: object) {
try {
// Devuelve una promesa que se resuelve cuando el documento es eliminado.
await AlpuraPouchDbUtil.deleteRequest(requestDocument);
console.log('Petición sincronizada eliminada:', requestDocument._id);
} catch (error) {
console.error('Error al eliminar la petición:', error);
}
}
🚀 Resultado esperado
La utilidad AlpuraPouchDbUtil provee un conjunto de herramientas estáticas para abstraer la complejidad de PouchDB. Facilita operaciones CRUD (Crear, Leer, Eliminar) sobre la base de datos del navegador, lo que es esencial para implementar una cola de sincronización de peticiones en modo offline.
📬 Soporte
Para dudas o mejoras, puedes contactar al equipo de arquitectura.