Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
// RF48 Administrador habilita dispositivo - Nuevo requerimiento para habilitar dispositivos deshabilitados

const { habilitarDispositivo: habilitarDispositivoAPI } = require('../../domain/usuariosAPI/usuariosAPI');

/**
* Habilita un dispositivo específico que ha sido previamente deshabilitado.
*
* Esta función valida que se proporcione un ID de dispositivo y, si es válido,
* realiza una solicitud asíncrona a la API para habilitar el dispositivo correspondiente.
* Retorna un objeto con el resultado de la operación.
*
* @async
* @function habilitarDispositivo
* @param {string} idDispositivo - ID del dispositivo que se va a habilitar.
* @returns {Promise<{ok: boolean, mensaje: string}>} Resultado de la operación de habilitación.
*/
async function habilitarDispositivo(idDispositivo) {
if (!idDispositivo) {
return { ok: false, mensaje: 'ID de dispositivo no proporcionado' };
}

try {
const respuesta = await habilitarDispositivoAPI(idDispositivo);
return respuesta;

} catch {
return { ok: false, mensaje: 'Error al habilitar el dispositivo' };
}
}

module.exports = {
habilitarDispositivo,
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
// RF47 Administrador consulta dispositivos - Nuevo requerimiento para listar todos los dispositivos

const { obtenerDispositivos: obtenerDispositivosAPI } = require('../../domain/usuariosAPI/usuariosAPI');

/**
* Obtiene la lista completa de dispositivos con información de sus propietarios.
*
* Esta función realiza una solicitud asíncrona a la API para obtener todos los dispositivos
* registrados en el sistema, incluyendo información sobre sus propietarios y estado.
* Retorna un objeto con el resultado de la operación.
*
* @async
* @function obtenerDispositivos
* @returns {Promise<{ok: boolean, dispositivos?: Array, mensaje?: string}>} Resultado de la operación con la lista de dispositivos.
*/
async function obtenerDispositivos() {
try {
const respuesta = await obtenerDispositivosAPI();
return respuesta;

} catch {
return { ok: false, mensaje: 'Error al obtener la lista de dispositivos' };
}
}

module.exports = {
obtenerDispositivos,
};
86 changes: 85 additions & 1 deletion harvester-app/src/backend/domain/usuariosAPI/usuariosAPI.js
Original file line number Diff line number Diff line change
Expand Up @@ -196,11 +196,95 @@ async function deshabilitarDispositivo(idUsuario) {
}
}

/**
* Obtiene la lista completa de dispositivos con información de sus propietarios.
*
* Esta función realiza una petición al endpoint de consulta de dispositivos del servidor
* y devuelve la lista de todos los dispositivos registrados.
*
* @async
* @function obtenerDispositivos
* @returns {Promise<{ok: boolean, dispositivos?: Array, mensaje?: string}>} Objeto con el estado de la operación y la lista de dispositivos.
*/
async function obtenerDispositivos() {
if (!token) {
return {
ok: false,
mensaje: 'Token de autenticación no encontrado',
};
}
try {
const respuesta = await fetch(`${URL_BASE}/dispositivo/listar`, {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${token}`,
},
});

const datos = await respuesta.json();

if (respuesta.status === 404) {
return { ok: true, dispositivos: [] };
}

return { ok: respuesta.ok, ...datos };
} catch (error) {
if (error instanceof TypeError) {
return { ok: false, mensaje: 'Error de conexión con el servidor' };
} else {
return { ok: false, mensaje: error.message || 'Error desconocido' };
}
}
}

/**
* Habilita un dispositivo específico mediante una solicitud HTTP POST a la API.
*
* Esta función realiza una petición al endpoint de habilitación de dispositivos del servidor
* y devuelve el resultado indicando si la operación fue exitosa o no.
*
* @async
* @function habilitarDispositivo
* @param {string} idDispositivo - ID del dispositivo que se va a habilitar.
* @returns {Promise<{ok: boolean, mensaje?: string}>} Objeto con el estado de la operación y un posible mensaje del servidor.
*/
async function habilitarDispositivo(idDispositivo) {
if (!token) {
return {
ok: false,
mensaje: 'Token de autenticación no encontrado',
};
}
try {
const respuesta = await fetch(`${URL_BASE}/dispositivo/habilitar`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${token}`,
},
body: JSON.stringify({ dispositivoId: idDispositivo }),
});

const datos = await respuesta.json();

return { ok: respuesta.ok, ...datos };
} catch (error) {
if (error instanceof TypeError) {
return { ok: false, mensaje: 'Error de conexión con el servidor' };
} else {
return { ok: false, mensaje: error.message || 'Error desconocido' };
}
}
}

module.exports = {
obtenerUsuarios,
modificarUsuario,
eliminarUsuario,
crearUsuario,
consultarRoles,
deshabilitarDispositivo
deshabilitarDispositivo,
obtenerDispositivos,
habilitarDispositivo
};
Loading
Loading