En este desafío, tendrás que implementar la lógica para procesar correos electrónicos en una empresa utilizando una queue, priorizando siempre los emails más antiguos.
Tendrás crear una clase Queue
para representar nuestra cola de correos electrónicos. La clase debe tener los siguientes métodos:
enqueue(from, to, body, subject)
: Agrega un correo electrónico al final de la queue.dequeue()
: Elimina y devuelve un objeto con siguientes propiedades:{ from, to, body, subject }
del email más antiguo de la cola.peek()
: Devuelve el correo electrónico más antiguo de la cola sin eliminarlo.size()
: Devuelve la cantidad de correos electrónicos en la cola.
Tendrás una clase Mail
ya construida para usarla dentro del desarrollo de tu solución que simulará ser un nodo dentro de la queue.
Ejemplo 1
Input:
const emailQueue = new Queue();
emailQueue.enqueue(
'[email protected]',
'[email protected]',
'No puedo iniciar sesión en mi cuenta',
'Problema de inicio de sesión'
);
emailQueue.enqueue(
'[email protected]',
'[email protected]',
'Mi pedido no ha llegado todavía',
'Estado del pedido'
);
emailQueue.dequeue();
Output:
{
from: '[email protected]',
to: '[email protected]',
body: 'No puedo iniciar sesión en mi cuenta',
subject: 'Problema de inicio de sesión'
}