Muestra por defecto las últimas 15 cards creadas.
Parámetros:
Enviados por URL
- offset: número desde que registro el get trae las cards, (Opcional, por defecto 0 )
- limit: límite de cantidad de cards que trae el endpoint (Opcional, por defecto 15)
- creatorId: id de usuario creador de la card (Opcional)
- categoryId: id de la categoría de la card (Opcional)
- search: texto para buscar cards que contenga en title o description la cadena enviada (Opcional)
- expand: listado de posibles expansiones del recurso separados por coma (Opcional, posibles valores: category,creator,likes)
Nota: Considerando paginación o infinite scroll, definimos de cuantos registros queremos solicitar (limit por defecto 15) y tenemos un número de página (page), entonces el offset = page * limit, si se inicia desde nroPagina = 0.
Respuesta:
Array de objetos, donde cada objeto devuelve:
{
id: id de la card,
title: título de la card,
photo: url de la imagen subida
}
Nota: Si incluye expand en los parámetros, incluira la expansión solicitada
Ejemplo:
fetch(
“https://healthydev.herokuapp.com/v1/cards?offset=2&limit=50&search=TEST&expand=creator,likes”,
{
method: “GET”,
},
)
.then(“// Manejo de Respuesta”);
Muestra la card específica que se busca de acuerdo el id pasado como parámetro.
Parámetros:
Enviado por URL
- id: id de la card que se necesita mostrar (Obligatorio), reemplaza a “:id”
Respuesta:
{
card: {
id: id de la card,
title: título de la card,
description: descripción de la card,
photo: url de la imagen subida,
externalUrl: url de una web externa a la api y a la app,
category: categoría de la card,
createdAt: fecha hora de creación,
updatedAt: fecha hora de modificación,
creator: {
id: id de usuario creador,
name: nombre de usuario creador,
profilePhoto: url de la foto de perfil del creador
},
category: {
id: id de la categoría,
name: nombre de la categoría,
},
likedBy: [
{
userId: 4,
userName: test15
},
{
userId: 6,
userName: test10
}
],
likesCount: 2
}
}
Ejemplo:
fetch(
“https://healthydev.herokuapp.com/v1/cards/1”,
{
method: “GET”,
},
)
.then(“// Manejo de Respuesta”);
Crea una card.
Body:
{
title: título de la card a crear (Obligatorio),
description: descripción de la card a crear (Obligatorio),
photo: imagen en string-base64 (Opcional, si no es subida ninguna imagen se mostrará una imagen placeholder precargada),
externalUrl: url de web externa a la app y a la api (Opcional)
categoryId: id de la categoría de la card (Obligatorio)
}
Respuesta:
{
id: id de la card creada
}
Ejemplo:
fetch(
“https://healthydev.herokuapp.com/v1/cards”,
{
method: “POST”,
headers:{
“Content-Type“: “aplication/json“,
“Authorization“: “Bearer {{userToken}}“
},
body: JSON.stringify(
{
“title“: “Comida Healthy”,
“description”: “Recetas para cocinar sano en época de cuarentena”,
“photo”: “ // imagen subida desde la app, en string-base64 “,
“externalUrl”: “ https://www.youtube.com/watch?v=7J8PYSgi8N8 ”,
“categoryId”: 1
}
)
},
)
.then(“// Manejo de Respuesta”);
Modifica una card.
Body:
{
title: título de la card a crear (Opcional),
description: descripción de la card a crear (Opcional),
photo: imagen en string-base64 (Opcional),
externalUrl: url de web externa a la app y a la api (Opcional)
categoryId: id de la categoría de la card (Opcional)
}
Respuesta:
{
id: id de la card,
title: título de la card,
description: descripción de la card,
photo: url de la imagen subida,
externalUrl: url de una web externa a la api y a la app,
createdAt: fecha hora de creación,
updatedAt: fecha hora de modificación,
creator: {
id: id de usuario creador,
name: nombre de usuario creador,
profilePhoto: url de la foto de perfil del creador
}
category: {
id: id de la categoría,
name: nombre de la categoría,
}
likesCount: cantidad de likes de la card
}
Ejemplo:
fetch(
“https://healthydev.herokuapp.com/v1/cards/1”,
{
method: PUT,
headers:{
“Content-Type“: “aplication/json“,
“Authorization“: “Bearer {{userToken}}“
},
body: JSON.stringify(
{
“title“: “Comida Healthy”,
“description”: “Recetas para cocinar sano en época de cuarentena”,
“photo”: “http://res.cloudinary.com/du7xgj6ms/image/upload/v1599004796/placeholder.jpg”,
“externalUrl”: “https://www.youtube.com/watch?v=7J8PYSgi8N8”,
“categoryId”: 1
}
)
},
)
.then(“// Manejo de Respuesta”);
Elimina una card.
Parámetros:
Enviado por URL
- id: id de la card que se necesita eliminar (Obligatorio), reemplaza a “:id”
Respuesta:
{
message: “La Card con el id: 100 fue eliminada con éxito.“
}
Ejemplo:
fetch(
“https://healthydev.herokuapp.com/v1/cards/100”,
{
method: DELETE,
headers:{
“Content-Type“: “aplication/json“,
“Authorization“: “Bearer {{userToken}}“
},
},
)
.then(“// Manejo de Respuesta”);
Agrega un like.
Parámetros:
Enviado por URL
- id: id de la card que se necesita mostrar (Obligatorio), reemplaza a “:id”
Respuesta:
{
message: ¡Me gusta!
}
Ejemplo:
fetch(
“https://healthydev.herokuapp.com/v1/cards/1/like”,
{
method: POST,
headers:{
“Content-Type“: “aplication/json“,
“Authorization“: “Bearer {{userToken}}“
},
},
)
.then(“// Manejo de Respuesta”);
Elimina un like.
Parámetros:
Enviado por URL
- id: id de la card que se necesita mostrar (Obligatorio), reemplaza a “:id”
Respuesta:
{
message: “¡No me gusta más!“
}
Ejemplo:
fetch(
“https://healthydev.herokuapp.com/v1/cards/1/like”,
{
method: DELETE,
headers:{
“Content-Type“: “aplication/json“,
“Authorization“: “Bearer {{userToken}}“
},
},
)
.then(“// Manejo de Respuesta”);
Muestra las categorías de las cards
Respuesta:
[
{
id: 1,
name: categoria1
},
{
id: 2,
name: categoria2
}
]
Ejemplo:
fetch(
“https://healthydev.herokuapp.com/v1/cards/categories”,
{
method: “GET”,
},
)
.then(“// Manejo de Respuesta”);
Registra un nuevo usuario
Body:
{
username: nombre de usuario (Obligatorio - 4 a 20 caracteres - comienza con una letra, puede contener letras y números, y punto, guion medio, guion bajo en medio.)
email: email asociado a cuenta (Obligatorio - formato de email válido),
password: contraseña (Obligatorio - al menos una mayúscula, una minúscula y un número, sin espacios - 8 a 250 caracteres),
}
Respuesta:
{
accessToken: jwtToken (payload username)
}
Nota: También envia email de verificación de cuenta para activar usuario.
Ejemplo:
fetch(
“https://healthydev.herokuapp.com/v1/auth/signup”,
{
method: “POST”,
headers:{
“Content-Type“: “application/json“
},
body: JSON.stringify(
{
“username“: “juani24”,
“email”: “juanperez@gmail.com”,
“password”: “ SuperPass21“
}
)
},
)
.then(“// Manejo de Respuesta”);
Reenvio de email de verificación de cuenta para activar usuario.
Parámetros:
Enviado por URL
- email: email asociado a cuenta (Obligatorio - formato de email válido),
Respuesta:
{
message: “Healthy Dev le informa que se ha reenviado el email de verificación correctamente”
}
Ejemplo:
fetch(
“https://healthydev.herokuapp.com/v1/auth/resend-verification/juanperez@gmail.com”,
{
method: “GET”,
headers:{
'Content-Type': 'application/json',
},
},
)
.then(“// Manejo de Respuesta”);
Verificación de cuenta de email para activar usuario.
Body: Parámetros:
Enviados por URL
- token: token encriptado previamente enviado por email para activar usuario (Obligatorio)
Respuesta:
{
message: “Healthy Dev le informa que el usuario fue activado correctamente.”
}
Ejemplo:
fetch(
“https://healthydev.herokuapp.com/v1/auth/verify/?token=xxxxxxxxxxxxxxxx”,
{
method: “POST”,
headers:{
'Content-Type': 'application/json',
},
},
)
.then(“// Manejo de Respuesta”);
Loguearse usuario registrado, puede hacerlo por el username o email.
Body:
{
usernameOrEmail: nombre de usuario o email asociado a cuenta (Obligatorio - 4 a 100 caracteres)
password: contraseña (Obligatorio - al menos una mayúscula, una minúscula y un número, sin espacios - 8 a 250 caracteres),
}
Respuesta:
{
accessToken: jwtToken (payload username)
}
Ejemplo:
fetch(
“https://healthydev.herokuapp.com/v1/auth/sigin”,
{
method: “POST”,
headers:{
“Content-Type“: “application/json“
},
body: JSON.stringify(
{
“usernameOrEmail“: “juani24”,
“password”: “ SuperPass21“
}
)
},
)
.then(“// Manejo de Respuesta”);
Muestra los datos del usuario actual
Respuesta:
{
"id": id de usuario,
"email": email de usuario,
"username": username usuario,
"name": nombre real del usuario,
"profilePhoto": foto de perfil usuario,
"twitter": cuenta de twitter,
"instagram": cuenta de instagram,
"status": estado de la cuenta,
"role": rol de usuario
}
Ejemplo:
fetch(
“https://healthydev.herokuapp.com/v1/users/me”,
{
method: GET,
headers:{
“Content-Type“: “application/json“,
“Authorization“: “Bearer {{userToken}}“,
},
},
)
.then(“// Manejo de Respuesta”);
Modificación datos usuario
Body:
{
name: nombre real (Opcional),
profilePhoto: foto de perfil - imagen en string-base64 (Opcional),
twitter: cuenta de twitter (Opcional),
instagram: cuenta de instagram (Opcional)
}
Respuesta:
{
message: “Usuario modificado con exito”
}
Ejemplo:
fetch(
“https://healthydev.herokuapp.com/v1/users/me”,
{
method: “PUT”,
headers:{
'Content-Type': 'application/json',
'Authorization': 'Bearer {{userToken}}',
},
body: JSON.stringify(
{
“name”: “ Juan Lopez“
“profilePhoto”: imagen en string-base64
“twitter”: “@juan”
“instagram”: “@juan”
}
)
},
)
.then(“// Manejo de Respuesta”);
Devuelve el user con el id pasado como parámetro.
Parámetros:
id: id del user que se necesita mostrar (Obligatorio), se pasa en la url, reemplaza a “:id”
Respuesta:
Objeto del user:
{
"id": id,
"name": Test Healthy,
"profilePhoto": "http://res.cloudinary.com/du7xgj6ms/image/upload/v1599004796/placeholder.jpg"
}
Ejemplo:
fetch(
“https://healthydev.herokuapp.com/v1/users/1”,
{
method: “GET”,
},
)
.then(“// Manejo de Respuesta”);
Eliminación de cuenta por opción de verificación de cuenta de email para activar usuario.
Parámetros:
Enviados por URL
- token: token encriptado previamente enviado por email para activar usuario en caso de que no lo hubiera solicitado (Obligatorio)
Respuesta:
{
message: “Healthy Dev le informa que el usuario ha sido eliminado”
}
Ejemplo:
fetch(
“https://healthydev.herokuapp.com/v1/users/?token=xxxxxxxxxxxxxxxx”,
{
method: “DELETE”,
headers:{
'Content-Type': 'application/json',
},
},
)
.then(“// Manejo de Respuesta”);
Cambiar contraseña de usuario actual
Nota: El cambio de contraseña invalidará todos los tokens generados previos al cambio.
Body:
{
password: contraseña (Obligatorio - al menos una mayúscula, una minúscula y un número, sin espacios - 8 a 250 caracteres),
}
Respuesta:
{
message: “Contraseña Cambiada con éxito.”
}
Ejemplo:
fetch(
“https://healthydev.herokuapp.com/v1/auth/new-password”,
{
method: “POST”,
headers:{
'Content-Type': 'application/json',
'Authorization': 'Bearer {{userToken}}',
},
body: JSON.stringify(
{
“password”: “ SuperPass21“
}
)
},
)
.then(“// Manejo de Respuesta”);
Login con facebok, al llamar a esta url se redireccionara a facebook para loguearse con la cuenta de facebook y luego a una screen del frontend con el token como parametro
Respuesta:
Redireccionara a una screen del frontend con el token como parametro
Ejemplo:
fetch(
“https://healthydev.herokuapp.com/v1/auth/facebook,
{
method: GET,
},
)
.then(“// Manejo de Respuesta”);
Envio de email crear nueva contraseña usuario.
Parámetros:
Enviado por URL
- email: email asociado a cuenta (Obligatorio - formato de email válido),
Respuesta:
{
message: “Healthy Dev le informa que se ha enviado el email para crear nueva contraseña correctamente”
}
Ejemplo:
fetch(
“https://healthydev.herokuapp.com/v1/auth/forgot-password/juanperez@gmail.com”,
{
method: “GET”,
headers:{
'Content-Type': 'application/json',
},
},
)
.then(“// Manejo de Respuesta”);
Login con google, al llamar a esta url se redireccionara a google para loguearse con la cuenta de google y luego a una screen del frontend con el token como parametro
Respuesta:
Redireccionara a una screen del frontend con el token como parametro
Ejemplo:
fetch(
“https://healthydev.herokuapp.com/v1/auth/google”,
{
method: GET,
headers:{
'Content-Type': 'application/json',
},
},
)
.then(“// Manejo de Respuesta”);
Cambiar contraseña de usuario solicitada por email
Nota: El cambio de contraseña invalidará todos los tokens generados previos al cambio.
Body:
{
password: contraseña (Obligatorio - al menos una mayúscula, una minúscula y un número, sin espacios - 8 a 250 caracteres),
}
Parámetros:
Enviados por URL
- token: token encriptado previamente enviado por email para crear nueva contraseña (Obligatorio)
Respuesta:
{
message: “Contraseña Cambiada con éxito.”
}
Ejemplo:
fetch(
“https://healthydev.herokuapp.com/v1/auth/reset-password/?token=xxxxxxxxxxxxxxxx”,
{
method: “POST”,
headers:{
'Content-Type': 'application/json',
},
body: JSON.stringify(
{
“password”: “SuperPass21“
}
)
},
)
.then(“// Manejo de Respuesta”);