Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .air.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ tmp_dir = "tmp"
include_file = []
kill_delay = "0s"
log = "build-errors.log"
poll = false
poll_interval = 0
poll = true
poll_interval = 1000
post_cmd = []
pre_cmd = []
rerun = false
Expand Down
137 changes: 122 additions & 15 deletions docs/docs.go
Original file line number Diff line number Diff line change
Expand Up @@ -179,12 +179,6 @@ const docTemplate = `{
"description": "Límite de mensajes a obtener",
"name": "limit",
"in": "query"
},
{
"type": "string",
"description": "Timestamp para obtener mensajes anteriores",
"name": "before",
"in": "query"
}
],
"responses": {
Expand Down Expand Up @@ -543,7 +537,7 @@ const docTemplate = `{
"BearerAuth": []
}
],
"description": "Devuelve los mensajes de una sala específica",
"description": "Devuelve los mensajes de una sala específica con soporte para paginación ordernada por fecha de creación descendente",
"consumes": [
"application/json"
],
Expand Down Expand Up @@ -571,19 +565,17 @@ const docTemplate = `{
},
{
"type": "string",
"description": "Timestamp para obtener mensajes anteriores",
"name": "before",
"default": "\"1747441934\"",
"description": "Cursor para paginación (timestamp)",
"name": "cursor",
"in": "query"
}
],
"responses": {
"200": {
"description": "Lista de mensajes de la sala",
"description": "Mensajes paginados de la sala",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/models.Message"
}
"$ref": "#/definitions/models.PaginatedMessagesResponse"
}
},
"401": {
Expand All @@ -607,13 +599,73 @@ const docTemplate = `{
}
}
},
"/chat/ws": {
"/chat/rooms/{roomId}/messages/simple": {
"get": {
"security": [
{
"BearerAuth": []
}
],
"description": "Devuelve los mensajes de una sala específica sin paginación",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Chat"
],
"summary": "Obtiene mensajes de una sala (versión simple)",
"parameters": [
{
"type": "string",
"description": "ID de la sala",
"name": "roomId",
"in": "path",
"required": true
},
{
"type": "integer",
"default": 50,
"description": "Límite de mensajes a obtener",
"name": "limit",
"in": "query"
}
],
"responses": {
"200": {
"description": "Lista de mensajes de la sala",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/models.MessageResponse"
}
}
},
"401": {
"description": "No autorizado",
"schema": {
"type": "string"
}
},
"404": {
"description": "Sala no encontrada",
"schema": {
"type": "string"
}
},
"500": {
"description": "Error interno del servidor",
"schema": {
"type": "string"
}
}
}
}
},
"/chat/ws": {
"get": {
"description": "Establece una conexión WebSocket para mensajería en tiempo real",
"consumes": [
"application/json"
Expand All @@ -625,6 +677,15 @@ const docTemplate = `{
"Chat"
],
"summary": "Conexión WebSocket para chat en tiempo real",
"parameters": [
{
"type": "string",
"description": "Firebase Auth Token",
"name": "token",
"in": "query",
"required": true
}
],
"responses": {
"101": {
"description": "Switching Protocols a WebSocket",
Expand Down Expand Up @@ -730,6 +791,52 @@ const docTemplate = `{
}
}
},
"models.MessageResponse": {
"type": "object",
"properties": {
"content": {
"type": "string"
},
"createdAt": {
"type": "string"
},
"displayName": {
"type": "string"
},
"id": {
"type": "string"
},
"isDeleted": {
"type": "boolean"
},
"roomId": {
"type": "string"
},
"updatedAt": {
"type": "string"
},
"userId": {
"type": "string"
}
}
},
"models.PaginatedMessagesResponse": {
"type": "object",
"properties": {
"hasMore": {
"type": "boolean"
},
"messages": {
"type": "array",
"items": {
"$ref": "#/definitions/models.MessageResponse"
}
},
"nextCursor": {
"type": "string"
}
}
},
"models.Room": {
"type": "object",
"properties": {
Expand Down
137 changes: 122 additions & 15 deletions docs/swagger.json
Original file line number Diff line number Diff line change
Expand Up @@ -172,12 +172,6 @@
"description": "Límite de mensajes a obtener",
"name": "limit",
"in": "query"
},
{
"type": "string",
"description": "Timestamp para obtener mensajes anteriores",
"name": "before",
"in": "query"
}
],
"responses": {
Expand Down Expand Up @@ -536,7 +530,7 @@
"BearerAuth": []
}
],
"description": "Devuelve los mensajes de una sala específica",
"description": "Devuelve los mensajes de una sala específica con soporte para paginación ordernada por fecha de creación descendente",
"consumes": [
"application/json"
],
Expand Down Expand Up @@ -564,19 +558,17 @@
},
{
"type": "string",
"description": "Timestamp para obtener mensajes anteriores",
"name": "before",
"default": "\"1747441934\"",
"description": "Cursor para paginación (timestamp)",
"name": "cursor",
"in": "query"
}
],
"responses": {
"200": {
"description": "Lista de mensajes de la sala",
"description": "Mensajes paginados de la sala",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/models.Message"
}
"$ref": "#/definitions/models.PaginatedMessagesResponse"
}
},
"401": {
Expand All @@ -600,13 +592,73 @@
}
}
},
"/chat/ws": {
"/chat/rooms/{roomId}/messages/simple": {
"get": {
"security": [
{
"BearerAuth": []
}
],
"description": "Devuelve los mensajes de una sala específica sin paginación",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Chat"
],
"summary": "Obtiene mensajes de una sala (versión simple)",
"parameters": [
{
"type": "string",
"description": "ID de la sala",
"name": "roomId",
"in": "path",
"required": true
},
{
"type": "integer",
"default": 50,
"description": "Límite de mensajes a obtener",
"name": "limit",
"in": "query"
}
],
"responses": {
"200": {
"description": "Lista de mensajes de la sala",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/models.MessageResponse"
}
}
},
"401": {
"description": "No autorizado",
"schema": {
"type": "string"
}
},
"404": {
"description": "Sala no encontrada",
"schema": {
"type": "string"
}
},
"500": {
"description": "Error interno del servidor",
"schema": {
"type": "string"
}
}
}
}
},
"/chat/ws": {
"get": {
"description": "Establece una conexión WebSocket para mensajería en tiempo real",
"consumes": [
"application/json"
Expand All @@ -618,6 +670,15 @@
"Chat"
],
"summary": "Conexión WebSocket para chat en tiempo real",
"parameters": [
{
"type": "string",
"description": "Firebase Auth Token",
"name": "token",
"in": "query",
"required": true
}
],
"responses": {
"101": {
"description": "Switching Protocols a WebSocket",
Expand Down Expand Up @@ -723,6 +784,52 @@
}
}
},
"models.MessageResponse": {
"type": "object",
"properties": {
"content": {
"type": "string"
},
"createdAt": {
"type": "string"
},
"displayName": {
"type": "string"
},
"id": {
"type": "string"
},
"isDeleted": {
"type": "boolean"
},
"roomId": {
"type": "string"
},
"updatedAt": {
"type": "string"
},
"userId": {
"type": "string"
}
}
},
"models.PaginatedMessagesResponse": {
"type": "object",
"properties": {
"hasMore": {
"type": "boolean"
},
"messages": {
"type": "array",
"items": {
"$ref": "#/definitions/models.MessageResponse"
}
},
"nextCursor": {
"type": "string"
}
}
},
"models.Room": {
"type": "object",
"properties": {
Expand Down
Loading