Este repositorio contiene la descripción del ejercicio para evaluar a los candidatos al puesto de Desarrollador en HICAPPS
- Evaluar la capacidad de resolución eficiente de un problema.
- Evaluar la capacidad de uso de
class
. - Evaluar la capacidad de uso de
Promise.all()
- Evaluar la capacidad de uso de
fetch()
- Evaluar la capacidad de interacción con el DOM
- Evaluar la capacidad de uso de
map()
yfilter()
.
Dados los siguientes endpoints:
Que retornan el siguiente payload
- Users (Array de Objetos)
{
[
{
"id": 1,
"name": "Leanne Graham",
"username": "Bret",
"email": "Sincere@april.biz",
"address": {
"street": "Kulas Light",
"suite": "Apt. 556",
"city": "Gwenborough",
"zipcode": "92998-3874",
"geo": {
"lat": "-37.3159",
"lng": "81.1496"
}
},
"phone": "1-770-736-8031 x56442",
"website": "hildegard.org",
"company": {
"name": "Romaguera-Crona",
"catchPhrase": "Multi-layered client-server neural-net",
"bs": "harness real-time e-markets"
}
}
]
}
- Todos (Array de Objetos)
{
[
{
"userId": 1,
"id": 1,
"title": "delectus aut autem",
"completed": false
}
]
}
Crea una pequeña aplicación en Codepen que muestre todos los TODOS de un USER en particular al hacer click en un botón. Se adjunta una imagen del funcionamiento esperado:
- Implementa una clase
Fetcher
. Debe aceptar en su constructor unastring
correspondiente al endpoint que quiero consultar. La clase debe implementar un métodocallUrl()
que permita realizar una llamada a una API externa usandofetch()
. Este método debe devolver una promesa. - Utiliza dos instancias de
Fetcher
para realizar las llamadas a las API. - Implementa una clase
DOMWritter
que acepte un resultado de una selección al DOM utilizandoquerySelector()
. La clase debe implementar un métodocreateUserTodo()
que acepte como argumentos unstring
correspondiente al ID del usuario y unArray
de objetos (cada uno de esos objetos corresponde a la lista de TODOS del USER en particular). Este método debe crear los elementos necesarios para mostrar los TODOS del USER. - Utiliza una instancia de
DOMWritter
para realizar las operaciones de escritura en el DOM. - Implementa un
eventListener
al eventoclick
del botón. UtilizandoPromise.all()
debes esperar la llamada de ambos endpoints, de lo contrario muestra un mensaje conconsole.error
. Cuando ambas promesas se resuelvan, debes identificar todos los TODOS de un USER utilizandomap()
yfilter()
. Cuando hayas terminado de identificar todos los TODOS de un USER utiliza el métodocreateUserTodo()
para mostrar esa información en el DOM.
- Se evaluará que el postulante pueda resolver el problema en forma eficiente.
- Se evaluará que el postulante respete los requerimientos planteados en el ejercicio.
- Se debe entregar por email un vínculo al Pen.
MUCHO ÉXITO 🎉