curl --request POST \
--url https://api.example.com/api/recognition/grant \
--header 'Content-Type: application/json' \
--data '
{
"employeeId": "<string>",
"type": "<string>",
"customData": {
"customData.courseId": "<string>",
"customData.description": "<string>",
"customData.points": 123
}
}
'{
"success": true,
"message": "<string>",
"data.recognition": {
"_id": "<string>",
"employeeId": "<string>",
"recognitionType": "<string>",
"rewardType": "<string>",
"title": "<string>",
"description": "<string>",
"pointsAwarded": 123,
"badgeEarned": "<string>",
"level": 123,
"isPublic": true,
"issuedAt": "<string>"
}
}Award recognition badges and points to employees for achievements
curl --request POST \
--url https://api.example.com/api/recognition/grant \
--header 'Content-Type: application/json' \
--data '
{
"employeeId": "<string>",
"type": "<string>",
"customData": {
"customData.courseId": "<string>",
"customData.description": "<string>",
"customData.points": 123
}
}
'{
"success": true,
"message": "<string>",
"data.recognition": {
"_id": "<string>",
"employeeId": "<string>",
"recognitionType": "<string>",
"rewardType": "<string>",
"title": "<string>",
"description": "<string>",
"pointsAwarded": 123,
"badgeEarned": "<string>",
"level": 123,
"isPublic": true,
"issuedAt": "<string>"
}
}Authorization: Bearer YOUR_JWT_TOKEN
encuesta_completada - Survey completed (5 points)curso_terminado - Course completed (20 points)empleado_mes - Employee of the month (100 points)participacion_activa - Active participationmejora_continua - Continuous improvementlogro_especial - Special achievementShow recognition properties
puntos, diploma, mencion, premio_fisico| Type | Reward | Title | Points | Badge |
|---|---|---|---|---|
encuesta_completada | puntos | ¡Encuesta Completada! | 5 | participativo |
curso_terminado | diploma | ¡Curso Completado! | 20 | aprendiz |
empleado_mes | mencion | ¡Empleado del Mes! | 100 | estrella |
curl -X POST https://api.cuido.com/api/recognition/grant \
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"employeeId": "65a1b2c3d4e5f6a7b8c9d0e2",
"type": "curso_terminado",
"customData": {
"courseId": "65a1b2c3d4e5f6a7b8c9d0e1"
}
}'
{
"success": true,
"message": "Reconocimiento otorgado exitosamente",
"data": {
"recognition": {
"_id": "65a1b2c3d4e5f6a7b8c9d0e7",
"employeeId": "65a1b2c3d4e5f6a7b8c9d0e2",
"recognitionType": "curso_terminado",
"rewardType": "diploma",
"title": "¡Curso Completado!",
"description": "Has terminado exitosamente tu capacitación",
"pointsAwarded": 20,
"badgeEarned": "aprendiz",
"level": 1,
"achievementData": {
"courseId": "65a1b2c3d4e5f6a7b8c9d0e1"
},
"isPublic": true,
"sharedOnSocialMedia": false,
"issuedAt": "2024-01-15T10:30:00.000Z",
"createdAt": "2024-01-15T10:30:00.000Z",
"updatedAt": "2024-01-15T10:30:00.000Z"
}
}
}
{
"success": false,
"message": "Validation error",
"errors": [
{
"field": "type",
"message": "Invalid recognition type"
}
]
}
{
"success": false,
"message": "No autorizado. Token inválido o expirado."
}
{
"success": false,
"message": "Acceso denegado. Requiere rol de administrador."
}
{
"success": false,
"message": "Empleado no encontrado"
}
encuesta_completadacurso_terminadoempleado_messrc/routes/recognitionRoutes.js:17src/controllers/recognitionController.js:6src/services/recognitionService.js:9src/services/recognitionService.js:42src/validators/cuidoValidators.js:69src/models/Recognition.js