Feat: Agregar opcion para eliminar chats completamente
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m8s
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m8s
- Crear endpoint DELETE /api/messages/:instanceId/:chatId - Agregar boton de eliminar en ChatItem - Crear modal de confirmacion con advertencia - Elimina el chat y todos los mensajes relacionados (CASCADE) - Muestra cantidad de mensajes eliminados en notificacion
This commit is contained in:
180
README.md
180
README.md
@@ -33,21 +33,181 @@ node .output/server/index.mjs
|
||||
|
||||
---
|
||||
|
||||
## API Endpoints
|
||||
## API REST
|
||||
|
||||
### Autenticación
|
||||
|
||||
Todos los endpoints requieren autenticación mediante API Key:
|
||||
|
||||
```
|
||||
Authorization: Bearer <NUXT_MASTER_API_KEY>
|
||||
```
|
||||
|
||||
### Instancias
|
||||
- `GET /api/instances` - Lista instancias
|
||||
- `POST /api/instances` - Crear instancia
|
||||
- `POST /api/instances/:id/connect` - Conectar instancia
|
||||
- `POST /api/instances/:id/disconnect` - Desconectar
|
||||
|
||||
| Método | Endpoint | Descripción |
|
||||
|--------|----------|-------------|
|
||||
| GET | `/api/instances` | Listar todas las instancias |
|
||||
| POST | `/api/instances` | Crear nueva instancia |
|
||||
| GET | `/api/instances/:id` | Obtener detalles de instancia |
|
||||
| GET | `/api/instances/:id/qr` | Obtener código QR |
|
||||
| POST | `/api/instances/:id/connect` | Conectar instancia |
|
||||
| POST | `/api/instances/:id/disconnect` | Desconectar instancia |
|
||||
| DELETE | `/api/instances/:id` | Eliminar instancia |
|
||||
|
||||
**Ejemplo - Listar instancias:**
|
||||
```bash
|
||||
curl -X GET "https://whatsapp.nucleoriofrio.com/api/instances" \
|
||||
-H "Authorization: Bearer <API_KEY>"
|
||||
```
|
||||
|
||||
**Ejemplo - Crear instancia:**
|
||||
```bash
|
||||
curl -X POST "https://whatsapp.nucleoriofrio.com/api/instances" \
|
||||
-H "Authorization: Bearer <API_KEY>" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"name": "Mi WhatsApp"}'
|
||||
```
|
||||
|
||||
### Chats y Contactos
|
||||
|
||||
| Método | Endpoint | Descripción |
|
||||
|--------|----------|-------------|
|
||||
| GET | `/api/messages/:instanceId/chats` | Listar todos los chats |
|
||||
| POST | `/api/messages/:instanceId/new-chat` | Crear nuevo chat |
|
||||
|
||||
**Ejemplo - Listar chats:**
|
||||
```bash
|
||||
curl -X GET "https://whatsapp.nucleoriofrio.com/api/messages/{instanceId}/chats" \
|
||||
-H "Authorization: Bearer <API_KEY>"
|
||||
```
|
||||
|
||||
**Respuesta:**
|
||||
```json
|
||||
[
|
||||
{
|
||||
"id": "abc123",
|
||||
"jid": "5491155551234@s.whatsapp.net",
|
||||
"name": "Juan Pérez",
|
||||
"isGroup": false,
|
||||
"unreadCount": 2,
|
||||
"lastMessageAt": "2025-01-15T10:30:00Z"
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
### Mensajes
|
||||
- `POST /api/messages/:instanceId/:chatId/send` - Enviar mensaje
|
||||
- `GET /api/messages/:instanceId/:chatId` - Obtener mensajes
|
||||
- `POST /api/messages/:instanceId/react` - Reaccionar a mensaje
|
||||
|
||||
### MCP
|
||||
- `POST /api/mcp` - Endpoint JSON-RPC para agentes IA
|
||||
| Método | Endpoint | Descripción |
|
||||
|--------|----------|-------------|
|
||||
| GET | `/api/messages/:instanceId/:chatId` | Obtener mensajes del chat |
|
||||
| POST | `/api/messages/send` | Enviar mensaje (simple) |
|
||||
| POST | `/api/messages/:instanceId/:chatId/send` | Enviar mensaje (avanzado) |
|
||||
|
||||
**Ejemplo - Obtener mensajes:**
|
||||
```bash
|
||||
curl -X GET "https://whatsapp.nucleoriofrio.com/api/messages/{instanceId}/{chatId}?limit=50" \
|
||||
-H "Authorization: Bearer <API_KEY>"
|
||||
```
|
||||
|
||||
**Ejemplo - Enviar mensaje de texto:**
|
||||
```bash
|
||||
curl -X POST "https://whatsapp.nucleoriofrio.com/api/messages/send" \
|
||||
-H "Authorization: Bearer <API_KEY>" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{
|
||||
"instanceId": "inst_abc123",
|
||||
"to": "5491155551234",
|
||||
"message": "Hola! Este es un mensaje de prueba"
|
||||
}'
|
||||
```
|
||||
|
||||
**Ejemplo - Enviar imagen:**
|
||||
```bash
|
||||
curl -X POST "https://whatsapp.nucleoriofrio.com/api/messages/{instanceId}/{chatId}/send" \
|
||||
-H "Authorization: Bearer <API_KEY>" \
|
||||
-F "file=@imagen.jpg" \
|
||||
-F "caption=Descripción de la imagen"
|
||||
```
|
||||
|
||||
**Ejemplo - Enviar documento:**
|
||||
```bash
|
||||
curl -X POST "https://whatsapp.nucleoriofrio.com/api/messages/{instanceId}/{chatId}/send" \
|
||||
-H "Authorization: Bearer <API_KEY>" \
|
||||
-F "file=@documento.pdf" \
|
||||
-F "caption=Reporte mensual"
|
||||
```
|
||||
|
||||
**Ejemplo - Enviar contacto:**
|
||||
```bash
|
||||
curl -X POST "https://whatsapp.nucleoriofrio.com/api/messages/{instanceId}/{chatId}/send" \
|
||||
-H "Authorization: Bearer <API_KEY>" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{
|
||||
"type": "contact",
|
||||
"contacts": [{
|
||||
"displayName": "Juan Pérez",
|
||||
"phoneNumber": "+5491155551234"
|
||||
}]
|
||||
}'
|
||||
```
|
||||
|
||||
**Ejemplo - Enviar encuesta:**
|
||||
```bash
|
||||
curl -X POST "https://whatsapp.nucleoriofrio.com/api/messages/{instanceId}/{chatId}/send" \
|
||||
-H "Authorization: Bearer <API_KEY>" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{
|
||||
"type": "poll",
|
||||
"name": "¿Qué día prefieres?",
|
||||
"options": ["Lunes", "Martes", "Miércoles"],
|
||||
"selectableCount": 1
|
||||
}'
|
||||
```
|
||||
|
||||
### Reacciones
|
||||
|
||||
**Ejemplo - Reaccionar a mensaje:**
|
||||
```bash
|
||||
curl -X POST "https://whatsapp.nucleoriofrio.com/api/messages/{instanceId}/react" \
|
||||
-H "Authorization: Bearer <API_KEY>" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{
|
||||
"messageId": "3EB0A1B2C3D4E5F6",
|
||||
"emoji": "👍"
|
||||
}'
|
||||
```
|
||||
|
||||
**Quitar reacción:** enviar `emoji` como string vacío `""`
|
||||
|
||||
### Formato de Destinatarios (JID)
|
||||
|
||||
- **Contacto individual:** `5491155551234@s.whatsapp.net` (código país sin +)
|
||||
- **Grupo:** `123456789012345678@g.us`
|
||||
|
||||
### Tipos de Mensaje Soportados
|
||||
|
||||
| Tipo | Descripción |
|
||||
|------|-------------|
|
||||
| `text` | Mensaje de texto |
|
||||
| `image` | Imagen con caption opcional |
|
||||
| `video` | Video con caption opcional |
|
||||
| `audio` | Audio o nota de voz |
|
||||
| `document` | Documento/archivo |
|
||||
| `sticker` | Sticker |
|
||||
| `contact` | Tarjeta de contacto |
|
||||
| `poll` | Encuesta (2-12 opciones) |
|
||||
| `event` | Evento con fecha/ubicación |
|
||||
|
||||
### Límites de Archivos
|
||||
|
||||
| Tipo | Tamaño Máximo |
|
||||
|------|---------------|
|
||||
| Imagen | 16 MB |
|
||||
| Video | 64 MB |
|
||||
| Audio | 16 MB |
|
||||
| Documento | 100 MB |
|
||||
| Sticker | 500 KB |
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user