Documentation ¶
Overview ¶
Package handlers define las funciones de tratamiento de cada ruta a la API
Package handlers define las funciones de tratamiento de cada ruta a la API
Index ¶
- func AbandonarLobby(writer http.ResponseWriter, request *http.Request)
- func AbandonarPartida(writer http.ResponseWriter, request *http.Request)
- func AceptarSolicitudAmistad(writer http.ResponseWriter, request *http.Request)
- func Atacar(writer http.ResponseWriter, request *http.Request)
- func CambiarCartas(writer http.ResponseWriter, request *http.Request)
- func ComprarObjeto(writer http.ResponseWriter, request *http.Request)
- func ConsultarCartas(writer http.ResponseWriter, request *http.Request)
- func ConsultarColeccion(writer http.ResponseWriter, request *http.Request)
- func ConsultarTienda(writer http.ResponseWriter, request *http.Request)
- func CrearPartida(writer http.ResponseWriter, request *http.Request)
- func EliminarAmigo(writer http.ResponseWriter, request *http.Request)
- func EnviarMensaje(writer http.ResponseWriter, request *http.Request)
- func EnviarSolicitudAmistad(writer http.ResponseWriter, request *http.Request)
- func Fortificar(writer http.ResponseWriter, request *http.Request)
- func JugandoEnPartida(writer http.ResponseWriter, request *http.Request)
- func ListarAmigos(writer http.ResponseWriter, request *http.Request)
- func Login(writer http.ResponseWriter, request *http.Request)
- func ModificarAspecto(writer http.ResponseWriter, request *http.Request)
- func ModificarBiografia(writer http.ResponseWriter, request *http.Request)
- func ModificarEmail(writer http.ResponseWriter, request *http.Request)
- func ModificarEmailYBiografia(writer http.ResponseWriter, request *http.Request)
- func ObtenerAvatar(writer http.ResponseWriter, request *http.Request)
- func ObtenerDados(writer http.ResponseWriter, request *http.Request)
- func ObtenerEstadoLobby(writer http.ResponseWriter, request *http.Request)
- func ObtenerEstadoPartida(writer http.ResponseWriter, request *http.Request)
- func ObtenerEstadoPartidaCompleto(writer http.ResponseWriter, request *http.Request)
- func ObtenerImagenItem(writer http.ResponseWriter, request *http.Request)
- func ObtenerJugadoresPartida(writer http.ResponseWriter, request *http.Request)
- func ObtenerNotificaciones(writer http.ResponseWriter, request *http.Request)
- func ObtenerNumeroNotificaciones(writer http.ResponseWriter, request *http.Request)
- func ObtenerPartidas(writer http.ResponseWriter, request *http.Request)
- func ObtenerPerfilUsuario(writer http.ResponseWriter, request *http.Request)
- func ObtenerRanking(writer http.ResponseWriter, request *http.Request)
- func ObtenerSolicitudesPendientes(writer http.ResponseWriter, request *http.Request)
- func ObtenerTokenResetPassword(writer http.ResponseWriter, request *http.Request)
- func ObtenerUsuariosSimilares(writer http.ResponseWriter, request *http.Request)
- func Ocupar(writer http.ResponseWriter, request *http.Request)
- func PasarDeFase(writer http.ResponseWriter, request *http.Request)
- func RechazarSolicitudAmistad(writer http.ResponseWriter, request *http.Request)
- func ReforzarTerritorio(writer http.ResponseWriter, request *http.Request)
- func Registro(writer http.ResponseWriter, request *http.Request)
- func ResetearContraseña(writer http.ResponseWriter, request *http.Request)
- func ResetearContraseñaLogin(writer http.ResponseWriter, request *http.Request)
- func ResumirPartida(writer http.ResponseWriter, request *http.Request)
- func UnirseAPartida(writer http.ResponseWriter, request *http.Request)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AbandonarLobby ¶
func AbandonarLobby(writer http.ResponseWriter, request *http.Request)
AbandonarLobby deja el lobby en el que el usuario esté participando. Responde con status 200 si ha habido éxito, o status 500 si ha habido un error junto a su motivo en el cuerpo.
Ruta: /api/abandonarLobby Tipo: POST
func AbandonarPartida ¶ added in v0.6.4
func AbandonarPartida(writer http.ResponseWriter, request *http.Request)
AbandonarPartida deja la partida en la que el usuario esté participando. Responde con status 200 si ha habido éxito, o status 500 si ha habido un error junto a su motivo en el cuerpo.
Ruta: /api/abandonarPartida Tipo: POST
func AceptarSolicitudAmistad ¶
func AceptarSolicitudAmistad(writer http.ResponseWriter, request *http.Request)
AceptarSolicitudAmistad acepta una solicitud de amistad entre el usuario que genera la solicitud y el indicado en el nombre. Responde con status 200 si ha habido éxito, o status 500 si ha habido un error junto a su motivo en el cuerpo.
Ruta: /api/aceptarSolicitudAmistad/{nombre} Tipo: POST
func Atacar ¶ added in v0.4.0
func Atacar(writer http.ResponseWriter, request *http.Request)
Atacar permite a un usuario atacar a un territorio adyacente a alguna de sus regiones. Para ello, debe de tener por lo menos dos ejércitos en el territorio desde el que ataca. Al atacar deberá elegir el número de dados a lanzar, entre 1 y 3. Cabe destacar que será necesario tener al menos un ejército más que el número de dados a lanzar, por ejemplo, si quiero lanzar 3 dados, el territorio tendrá que tener 4 ejércitos por lo menos. Por otro lado el defensor tirará 2 dados si tiene 2 ejércitos o más, o 1 en el caso contrario.
Para calcular el resultado del ataque, se compararán los dados con mayor valor de ambos jugadores. Si el atacante consigue un resultado mayor, el territorio defensor perderá una tropa. Por otro lado, si empatan o gana el defensor el territorio atacante perderá un ejército. En caso de que ambos jugadores hayan lanzado más de un dado, se repetirá el mismo proceso comparando el valor del segundo dado más alto de cada uno
No se puede atacar en los siguientes casos: no es el turno deñ jugador, no es la fase de ataque, el jugador tiene más de 4 cartas, hay algún territorio sin ocupar, el territorio atacado no es adyacente, el territorio atacado no es de un rival, el número de dados no está entre 1 y 3 o el número de ejércitos no supera el número de dados.
Ruta: /api/atacar/{id_territorio_origen}/{id_territorio_destino}/{num_dados} Tipo: POST
func CambiarCartas ¶ added in v0.1.5
func CambiarCartas(writer http.ResponseWriter, request *http.Request)
CambiarCartas permite a un jugador cambiar un conjunto de 3 cartas por tropas. El número de tropas recibidas dependerá del número de cambios totales realizados:
- En el primer cambio se recibirán 4 cartas
- Por cada cambio, se recibirán 2 cartas más que en el anterior
- En el sexto cambio se recibirán 15 cartas
- A partir del sexto cambio, se recibirán 5 cartas más que en el cambio anterior
Los cambios válidos son los siguientes:
- 3 cartas del mismo tipo
- 2 cartas del mismo tipo más un comodín
- 3 cartas, una de cada tipo
Si el jugador cambia una carta en la que aparece un territorio ocupado por él, se añadirán dos tropas a ese territorio. Ruta: /api/cambiarCartas/{carta1}/{carta2}/{carta3}/ Tipo: POST
func ComprarObjeto ¶ added in v0.5.0
func ComprarObjeto(writer http.ResponseWriter, request *http.Request)
ComprarObjeto permite al jugador comprar un objeto de la tienda siempre y cuando tenga los puntos necesarios. Para ello, especificará como parte de la URL el identificador del objeto que desea comprar. La compra se realizará siempre que dicho objeto exista, no sea uno de los objetos iniciales, el jugador tenga los puntos suficientes para comprarlo y el jugador no lo haya comprado ya.
Devuelve status 500 en caso de error y 200 en caso contrario ¶
Ruta: /api/comprarObjeto/{id_objeto} Tipo: POST
func ConsultarCartas ¶ added in v0.2.0
func ConsultarCartas(writer http.ResponseWriter, request *http.Request)
ConsultarCartas permite al usuario consultar las cartas que tiene en la mano mientras juega una partida Un usuario podrá consultar únicamente sus propias cartas. El JSON enviado como respuesta tendrá el siguiente formato: [{carta}, {carta}, ...]
Por ejemplo: [
{ "IdCarta": 1, "Tipo": 0, "Region": 29, "EsComodin": false }, { "IdCarta": 20, "Tipo": 1, "Region": 22, "EsComodin": false }
] Ruta: /api/consultarCartas Tipo: GET
func ConsultarColeccion ¶ added in v0.5.0
func ConsultarColeccion(writer http.ResponseWriter, request *http.Request)
ConsultarColeccion permite consultar los objetos que ha comprado un usuario, cuyo nombre se especifica como parte de la URL. Devuelve una lista de objetos codificada en JSON, con el siguiente formato:
[ { Id: int Nombre: string Descripcion: string Precio: int Tipo: string ({"avatar", "dado"}) Imagen: string (blob) }, {...}, ...
]
Devuelve status 500 en caso de error y 200 en caso contrario ¶
Ruta: /api/consultarColeccion/{usuario} Tipo: GET
func ConsultarTienda ¶ added in v0.5.0
func ConsultarTienda(writer http.ResponseWriter, request *http.Request)
ConsultarTienda devuelve la lista de objetos disponibles en la tienda en formato JSON. La estructura de la lista devuelta es la siguiente:
[ { Id: int Nombre: string Descripcion: string Precio: int Tipo: string ({"avatar", "dado"}) Imagen: string (blob) }, {...}, ...
]
Devuelve status 500 en caso de error y 200 en caso contrario ¶
Ruta: /api/consultarTienda Tipo: GET
func CrearPartida ¶
func CrearPartida(writer http.ResponseWriter, request *http.Request)
CrearPartida crea una nueva partida, para la que se definirá el número máximo de jugadores, si es pública o privada, y la contraseña en caso de que fuera necesario Parámetros del formulario recibido:
El campo "maxJugadores" indica el número máximo de jugadores, "tipo" indica si la partida es pública o privada. Si la cadena "tipo" equivale a "Publica", la partida será pública, en cualquier otro caso será privada. El campo "password" define la contraseña necesaria para el acceso a una partida privada.
Si se produjera un error durante el procesado, se devolverá código 500 En cualquier otro caso, se devolverá código 200
Ruta: /api/crearPartida Tipo: POST
func EliminarAmigo ¶ added in v0.6.3
func EliminarAmigo(writer http.ResponseWriter, request *http.Request)
EliminarAmigo elimina una relación de amistad entre dos usuarios, el nombre del usuario a borrar de tu lista se especificará como parte de la URL. Devolverá status 500 en caso de error, 200 en cualquier otro caso.
Ruta: /api/eliminarAmigo/{nombre} Tipo: GET
func EnviarMensaje ¶ added in v0.6.4
func EnviarMensaje(writer http.ResponseWriter, request *http.Request)
EnviarMensaje permite al usuario enviar un mensaje al resto de jugadores de la partida. Para ello, deberá especificar su contenido en el campo "mensaje" del formulario. En caso de que el jugador no esté en una partida, devolverá status 500. En el caso contrario, la llamada devolverá siempre status 200.
Ruta: /api/enviarMensaje Tipo: POST
func EnviarSolicitudAmistad ¶
func EnviarSolicitudAmistad(writer http.ResponseWriter, request *http.Request)
EnviarSolicitudAmistad envía una solicitud de amistad entre el usuario que genera la solicitud y el indicado en el nombre. Responde con status 200 si ha habido éxito, o status 500 si ha habido un error junto a su motivo en el cuerpo.
Ruta: /api/enviarSolicitudAmistad/{nombre} Tipo: POST
func Fortificar ¶ added in v0.3.0
func Fortificar(writer http.ResponseWriter, request *http.Request)
Fortificar permite al jugador mover un número determinado de tropas de un territorio dado a otro.
Las condiciones para poder fortificar son las siguientes:
Ambos territorios pertenecen al jugador y son diferentes Ambos territorios se encuentran conectados por algún camino en el mapa que cruce únicamente territorios controlados por dicho jugador El número de tropas del territorio origen debe ser mayor que 1 El número de tropas a mover es un número comprendido entre [1, num_tropas_territorio_1 - 1], de tal forma que no se puede dejar el territorio origen sin tropas
Si no es el turno del jugador, no está en una partida o no se cumplen las condiciones para la fortificación, se devolverá un status 500 junto a un mensaje de error en el cuerpo, en otro caso devolverá status 200 y generará una acción de fortificación.
Ruta: /api/fortificar/{id_territorio_origen}/{id_territorio_destino}/{num_tropas} Tipo: POST
func JugandoEnPartida ¶ added in v0.6.0
func JugandoEnPartida(writer http.ResponseWriter, request *http.Request)
JugandoEnPartida devuelve verdad si el jugador está participando en una partida, o falso en caso contrario. El formato es un booleano codificado en JSON de la siguiente forma: true false
Ruta: /api/jugandoEnPartida Tipo: GET
func ListarAmigos ¶
func ListarAmigos(writer http.ResponseWriter, request *http.Request)
ListarAmigos devuelve una lista con los nombres de los amigos del usuario que genera la solicitud Si ocurre algún error durante el procesamiento, enviará código de error 500 En cualquier otro caso, enviará códgo 200 Dicha lista se devuelve en el siguiente formato JSON:
[ string, string, ...]
Ruta: /api/listarAmigos Tipo: GET
func Login ¶
func Login(writer http.ResponseWriter, request *http.Request)
Login atiende respuestas de un formulario de campos 'nombre' y 'password' y loguea a un usuario acordemente. Responde con status 200 y una cookie de usuario si ha habido éxito, o status 500 si ha habido un error junto a su motivo en el cuerpo.
Ruta: /login Tipo: POST
func ModificarAspecto ¶ added in v0.5.0
func ModificarAspecto(writer http.ResponseWriter, request *http.Request)
ModificarAspecto permite al usuario equipar un aspecto que haya comprado previamente. Para ello, especificará el aspecto con el identificador del objeto en la URL. En caso de que ese objeto no exista, o no esté en la colección del usuario, no lo podrá equipar.
Devuelve status 500 en caso de error, 200 en cualquier otro caso ¶
Ruta: /api/modificarAspecto/{id_aspecto} Tipo: POST
func ModificarBiografia ¶ added in v0.5.0
func ModificarBiografia(writer http.ResponseWriter, request *http.Request)
ModificarBiografia permite al usuario modificar su biografía, especificando una nueva en el campo "biografia" del formulario enviado.
Devuelve status 500 en caso de error y 200 en caso contrario ¶
Ruta: /api/modificarBiografia Tipo: Post
func ModificarEmail ¶ added in v1.0.0
func ModificarEmail(writer http.ResponseWriter, request *http.Request)
ModificarEmail permite al usuario modificar su email, especificando una nueva en el campo "email" del formulario enviado.
Devuelve status 500 en caso de error y 200 en caso contrario ¶
Ruta: /api/modificarEmail Tipo: Post
func ModificarEmailYBiografia ¶ added in v1.0.0
func ModificarEmailYBiografia(writer http.ResponseWriter, request *http.Request)
ModificarEmailYBiografia permite al usuario modificar su email y su biografía al mismo tiempo, especificando los nuevos en los campos "email" y "biografia" del formulario enviado.
Devuelve status 500 en caso de error y 200 en caso contrario ¶
Ruta: /api/modificarEmailYBiografia Tipo: Post
func ObtenerAvatar ¶ added in v0.6.4
func ObtenerAvatar(writer http.ResponseWriter, request *http.Request)
ObtenerAvatar devuelve una imagen codificada como octet-stream para el avatar del usuario indicado.
Devuelve un error 500 en caso de que el usuario no exista u ocurra cualquier otro error ¶
Ruta: /api/obtenerFotoPerfil/{usuario} Tipo: GET
func ObtenerDados ¶ added in v0.6.4
func ObtenerDados(writer http.ResponseWriter, request *http.Request)
ObtenerDados devuelve una imagen codificada como octet-stream para la cara indicada de los dados equipados del usuario indicado. La cara debe ser un valor entre 1 y 6, correspondiente al valor de los dados.
Devuelve un error 500 en caso de que la cara sea inválida, el usuario no exista u ocurra cualquier otro error.
Ruta: /api/obtenerDados/{usuario}/{cara} Tipo: GET
func ObtenerEstadoLobby ¶
func ObtenerEstadoLobby(writer http.ResponseWriter, request *http.Request)
ObtenerEstadoLobby devuelve el estado del lobby de una partida identificada por su id Devuelve si es pública o no, si está o no en curso, el número máximo de jugadores y los jugadores que se encuentran en el lobby Devuelve código de error 500 en caso de error, código 200 en cualquier otro caso El JSON devuelto tiene el siguiente formato
{ "EnCurso":bool, "EsPublico":bool, "Jugadores":int, "MaxJugadores":int, "NombresJugadores": [string, string, ...] }
Ruta: /api/obtenerEstadoLobby/{id} Tipo: GET
func ObtenerEstadoPartida ¶
func ObtenerEstadoPartida(writer http.ResponseWriter, request *http.Request)
ObtenerEstadoPartida devuelve la lista de acciones transcurridas desde la última consulta del usuario hasta el momento, que deberán ser procesadas en orden. El formato es una lista de acciones, codificada en JSON de la siguiente forma: [{acción}, {acción}]
Donde cada acción es una acción específica a distinguir según el primer campo común a todas, "IDAccion", para su interpretación.
Ejemplo: [
{ "IDAccion":0, "Region":0, "TropasRestantes":19, "TerritoriosRestantes":41, "Jugador":"usuario4" }, { "IDAccion":1, "Jugador":"usuario5" }
]
La lista de acciones y su formato en JSON están disponibles en el módulo de logica_juego, en acciones.go
Ruta: /api/obtenerEstadoPartida Tipo: GET
func ObtenerEstadoPartidaCompleto ¶ added in v0.6.0
func ObtenerEstadoPartidaCompleto(writer http.ResponseWriter, request *http.Request)
ObtenerEstadoPartidaCompleto devuelve la lista de todas las acciones transcurridas desde el inicio de la partida hasta el momento, que deberán ser procesadas en orden. Las siguientes llamadas a ObtenerEstadoPartida consultarán las acciones desde dicho momento, pudiendo ser por tanto un sustituto a ObtenerEstadoPartida. El formato es una lista de acciones, codificada en JSON de la siguiente forma: [{acción}, {acción}]
Donde cada acción es una acción específica a distinguir según el primer campo común a todas, "IDAccion", para su interpretación.
Ejemplo: [
{ "IDAccion":0, "Region":0, "TropasRestantes":19, "TerritoriosRestantes":41, "Jugador":"usuario4" }, { "IDAccion":1, "Jugador":"usuario5" }
]
La lista de acciones y su formato en JSON están disponibles en el módulo de logica_juego, en acciones.go
Ruta: /api/obtenerEstadoPartida Tipo: GET
func ObtenerImagenItem ¶ added in v0.6.4
func ObtenerImagenItem(writer http.ResponseWriter, request *http.Request)
ObtenerImagenItem devuelve la imagen de un ítem, dado su ID, codificado como blob (octet-stream)
Devuelve un error 500 en caso de que el ID sea inválido u ocurra cualquier otro error ¶
Ruta: /api/obtenerImagenItem/{id} Tipo: GET
func ObtenerJugadoresPartida ¶ added in v0.6.2
func ObtenerJugadoresPartida(writer http.ResponseWriter, request *http.Request)
ObtenerJugadoresPartida devuelve una lista con los nombres de los jugadores de la partida en la que se está participando. Si no se está participando en una partida o la partida no está en curso, se devolverá un código 500 junto al error en el cuerpo. En otro caso, se devolverá un código 200 y una lista de nombres.
El formato es una lista de nombres, codificada en JSON de la siguiente forma: [string, string, ...]
Ruta: /api/obtenerJugadoresPartida Tipo: GET
func ObtenerNotificaciones ¶
func ObtenerNotificaciones(writer http.ResponseWriter, request *http.Request)
ObtenerNotificaciones devuelve un listado codificado en JSON de notificaciones a mostrar, relativas al usuario que lo solicita. Si ocurre algún error durante el procesamiento, enviará código de error 500 En cualquier otro caso, enviará código 200 y la lista de notificaciones.
El formato de la respuesta JSON es el siguiente:
[notificacion1..., notificacion2...]
Ejemplo:
[{"IDNotificacion":0,"Jugador":"usuario2"}, {"IDNotificacion":1,"JugadorPrevio":"usuario6"}]
La lista de notificaciones y su formato en JSON están disponibles en el módulo de logica_juego, en notificaciones.go
Ruta: /api/obtenerNotificaciones Tipo: GET
func ObtenerNumeroNotificaciones ¶ added in v0.8.1
func ObtenerNumeroNotificaciones(writer http.ResponseWriter, request *http.Request)
ObtenerNumeroNotificaciones devuelve el número de notificaciones que se van a recibir en ObtenerNotificaciones, sin consumirlas.
El formato de la respuesta JSON es el siguiente:
int
Ruta: /api/obtenerNumeroNotificaciones Tipo: GET
func ObtenerPartidas ¶
func ObtenerPartidas(writer http.ResponseWriter, request *http.Request)
ObtenerPartidas devuelve un listado de partidas codificado en JSON, con el siguiente orden:
1- partidas privadas, de más a menos amigos presentes 2- partidas públicas, de más a menos amigos presentes 3- partidas públicas sin amigos: de más a menos jugadores 4- partidas privadas sin amigos: de más a menos jugadores
El contenido JSON tendrá la siguiente forma:
[ // Lista de elementos de partida (Nota: Será nula si no existen partidas)
// Elemento de partida { "IdPartida": int, // ID de partida (Nota: Se deberá usar como referencia en el resto de peticiones relativas a ella) "EsPublica": bool, // Flag de partida pública o privada "NumeroJugadores": int, // Número de jugadores presentes en el lobby "MaxNumeroJugadores": int, // Número de jugadores máximo establecido "AmigosPresentes": [ string, string, ...], // Lista de nombres de amigos presentes en el lobby (Nota: Será nulo si "NumAmigosPresentes" tiene como valor 0) "NumAmigosPresentes": int // Número de amigos presentes en el lobby }, {...}
]
Ejemplo: [
{ "IdPartida": 1, "EsPublica": false, "NumeroJugadores": 4, "MaxNumeroJugadores": 6, "AmigosPresentes": [ "amigo1", "amigo2" ], "NumAmigosPresentes": 2 }, { "IdPartida": 2, "EsPublica": false, "NumeroJugadores": 4, "MaxNumeroJugadores": 6, "AmigosPresentes": [ "amigo3" ], "NumAmigosPresentes": 1 }, { "IdPartida": 3, "EsPublica": true, "NumeroJugadores": 3, "MaxNumeroJugadores": 6, "AmigosPresentes": null, "NumAmigosPresentes": 0 }
]
Si ocurre algún error durante el procesamiento, se devolverá un status 500.
Ruta: /api/obtenerPartidas Tipo: GET
func ObtenerPerfilUsuario ¶
func ObtenerPerfilUsuario(writer http.ResponseWriter, request *http.Request)
ObtenerPerfilUsuario devuelve la información del perfil de un usuario, definido como parte de la URL Si ocurre algún error durante el procesamiento, enviará código de error 500 En cualquier otro caso, enviará códgo 200
El formato de la respuesta JSON es el siguiente:
{ "Email": string "Nombre": string "Biografia": string "PartidasGanadas": int "PartidasTotales": int "Puntos": int "ID_dado": int "ID_avatar": int "EsAmigo": bool "SolicitudRecibida": bool "SolicitudPendiente": bool }
Ruta: /api/obtenerPerfil/{nombre} Tipo: GET
func ObtenerRanking ¶ added in v0.5.0
func ObtenerRanking(writer http.ResponseWriter, request *http.Request)
ObtenerRanking devuelve una lista de todos los usuarios registrados, ordenados por el número de partidas ganadas. Dicha lista se devolverá en el siguiente formato JSON: [
{ NombreUsuario: string PartidasGanadas: int PartidasTotales: int }, {...}, ...
]
Devolverá status 500 en caso de error y status 200 en cualquier otro caso ¶
Ruta: /api/ranking Tipo: GET
func ObtenerSolicitudesPendientes ¶ added in v0.1.2
func ObtenerSolicitudesPendientes(writer http.ResponseWriter, request *http.Request)
ObtenerSolicitudesPendientes devuelve una lista de nombres de usuario a los que se les ha enviado una solicitud de amistad aún pendiente por aceptar o rechazar, codificada en JSON.
El formato de la respuesta JSON es el siguiente: ["nombre1", "nombre2", ...]
Ruta: /api/obtenerSolicitudesPendientes Tipo: GET
func ObtenerTokenResetPassword ¶ added in v0.6.4
func ObtenerTokenResetPassword(writer http.ResponseWriter, request *http.Request)
ObtenerTokenResetPassword envía por email al usuario indicado un link de reset de contraseña, si existe. Devuelve status 500 en caso de error y status 200 en cualquier otro caso
Entrada: formulario con campo "usuario"
Ruta: /obtenerTokenResetPassword Tipo: POST
func ObtenerUsuariosSimilares ¶
func ObtenerUsuariosSimilares(writer http.ResponseWriter, request *http.Request)
ObtenerUsuariosSimilares devuelve una lista de nombres de usuario que coincidan con un patrón, especificado en al parámetro "patron" de la URL, ordenados alfabéticamente e indicando si son amigos del usuario que lo solicita o no Los nombres de usuario coincidirán con dicho patrón o empezarán por él Si ocurre algún error durante el procesamiento, enviará código de error 500 En cualquier otro caso, enviará código 200 El formato de la respuesta JSON es el siguiente:
[ { "Nombre": string, "EsAmigo": bool, "SolicitudRecibida": bool, "SolicitudPendiente": bool }, { "Nombre": string, "EsAmigo": bool, "SolicitudRecibida": bool, "SolicitudPendiente": bool }, ... ]
Ruta: /api/obtenerUsuariosSimilares/{patron} Tipo: GET
func Ocupar ¶ added in v0.4.0
func Ocupar(writer http.ResponseWriter, request *http.Request)
Ocupar permite a un usuario ocupar un territorio sin tropas, especificando el territorio a ocupar y el número de tropas que quiere mover a él. Dichas tropas se moverán desde el territorio con el que conquistó la región a ser ocupada.
Para ocupar se deben cumplir las siguientes condiciones: hay alguna región sin tropas, dicha región es adyacente a la región desde la que se inició el último ataque, la ocupación se realiza durante el turno del jugador y en la fase de ataque, el número de tropas asignadas por la ocupación no deja al territorio origen sin tropas, el número de tropas asignadas es mayor al número de dados usados en el último ataque menos el número de ejércitos que perdió el atacante en dicho ataque.
Cabe destacar que siempre que un territorio quede sin tropas tras un ataque, el juego no permitirá continuar atacando ni cambiar de fase o turno hasta que dicho territorio sea ocupado, de manera que solo podrá haber un territorio sin ocupar a la vez. Ruta: /api/ocupar/{territorio_a_ocupar}/{num_ejercitos} Tipo: POST
func PasarDeFase ¶ added in v0.2.0
func PasarDeFase(writer http.ResponseWriter, request *http.Request)
PasarDeFase permite al jugador actual cambiar de fase dentro de su propio turno, siendo estas fases Refuerzo, ataque y fortificación. Cada fase tendrá unas condiciones especiales para el cambio de turno: En el refuerzo, no podrá cambiar de fase si tiene más de 4 cartas o si le quedan tropas por asignar En el ataque, no podrá cambiar de fase si tiene más de 4 cartas o si tiene que ocupar un territorio y aún no lo ha hecho. En la fortificación podrá cambiar de fase (dándole el turno a otro jugador) libremente
Si no es el turno del jugador, no está en una partida o no se cumplen las condiciones para el cambio de fase, devolverá un status 500 junto a un mensaje de error en el cuerpo, en otro caso devolverá status 200.
Ruta: /api/pasarDeFase Tipo: POST
func RechazarSolicitudAmistad ¶
func RechazarSolicitudAmistad(writer http.ResponseWriter, request *http.Request)
RechazarSolicitudAmistad rechaza una solicitud de amistad entre el usuario que genera la solicitud y el indicado en el nombre. Responde con status 200 si ha habido éxito, o status 500 si ha habido un error junto a su motivo en el cuerpo.
Ruta: /api/rechazarSolicitudAmistad/{nombre} Tipo: POST
func ReforzarTerritorio ¶
func ReforzarTerritorio(writer http.ResponseWriter, request *http.Request)
ReforzarTerritorio refuerza un territorio con su identificador numérico "id" con un valor de tropas numérico codificado en "numTropas", ambos parámetros de la URL.
En caso de éxito, se devolverá un código HTTP 200 y aparecerá una nueva acción "AccionReforzar" en la siguiente consulta al estado indicando los detalles de la acción realizada.
En caso de error (número de tropas incorrecto, el turno del jugador es incorrecto, etc.) se devolverá un código HTTP 500 junto al mensaje de error en el cuerpo.
Ruta: /reforzarTerritorio/{id}/{numTropas} Tipo: POST
func Registro ¶
func Registro(writer http.ResponseWriter, request *http.Request)
Registro atiende respuestas de un formulario de campos 'nombre', 'email' y 'password' y registra un usuario acordemente. Responde con status 200 si ha habido éxito, o status 500 si ha habido un error junto a su motivo en el cuerpo.
Ruta: /registro Tipo: POST
func ResetearContraseña ¶ added in v0.6.4
func ResetearContraseña(writer http.ResponseWriter, request *http.Request)
ResetearContraseña resetea la contraseña del usuario que tiene el token indicado. Devuelve status 500 en caso de error y status 200 en cualquier otro caso
Entrada: formulario con campos "password" y "token"
Ruta: /resetearPassword Tipo: POST
func ResetearContraseñaLogin ¶ added in v1.0.0
func ResetearContraseñaLogin(writer http.ResponseWriter, request *http.Request)
ResetearContraseñaLogin permite al usuario cambiar su contraseña mientras está conectado (y por tanto proporciona una cookie válida), especificando su contraseña actual en el campo "passwordActual" y la contraseña nueva en el campo "passwordNueva" del formulario
Devuelve status 500 en caso de error y 200 en caso contrario ¶
Ruta: /api/resetearPasswordEnLogin Tipo: Post
func ResumirPartida ¶ added in v0.6.4
func ResumirPartida(writer http.ResponseWriter, request *http.Request)
ResumirPartida devuelve un resumen completo de la partida hasta el momento, actualizando el índice de acciones leídas en el proceso para permitir pasar directamente a solicitar acciones.
El formato es el siguiente:
{ Jugadores: [string...], TurnoJugador: string, Fase: {0..3} (Inicio, refuerzo, ataque y fortificar) Terminada: bool, EstadosJugadores: { string { NumCartas: int, Cartas [ // Solo poblado para el usuario que solicita el resumen { IdCarta: int Tipo: {0..2} (Infantería, Caballería, Artillería) Region: int, EsComodin: bool }, ... ], Tropas: int Expulsado: bool, Eliminado: bool } }, Mapa: { int :{ // Número de región Ocupante: string, NumTropas: int }, OcupacionPendiente: bool, // true si el jugador del turno tiene una ocupación pendiente TerritorioOcupacionOrigen: int, // Número de región desde la que se ocupa TerritorioOcupacionDestino: int, // Número de región que se ocupa }
Ejemplo:
{ "Jugadores":[ "jugador1", "jugador2", "jugador3", "jugador4", "jugador5", "jugador6" ], "TurnoJugador":"jugador1", "Fase":0, "Terminada":false, "EstadosJugadores":{ "jugador1":{ "NumCartas":4, "Cartas":[ { "IdCarta":1, "Tipo":0, "Region":3, "EsComodin":true }, { "IdCarta":4, "Tipo":2, "Region":22, "EsComodin":false }, { "IdCarta":5, "Tipo":2, "Region":0, "EsComodin":false }, { "IdCarta":6, "Tipo":2, "Region":27, "EsComodin":false } ], "Tropas":13, "Expulsado":false, "Eliminado":false }, "jugador2":{ "NumCartas":0, "Cartas":null, "Tropas":13, "Expulsado":false, "Eliminado":false }, "jugador3":{ "NumCartas":0, "Cartas":null, "Tropas":13, "Expulsado":false, "Eliminado":false }, "jugador4":{ "NumCartas":0, "Cartas":null, "Tropas":13, "Expulsado":false, "Eliminado":false }, "jugador5":{ "NumCartas":0, "Cartas":null, "Tropas":13, "Expulsado":false, "Eliminado":false }, "jugador6":{ "NumCartas":0, "Cartas":null, "Tropas":13, "Expulsado":false, "Eliminado":false } }, "Mapa":{ "0":{ "Ocupante":"jugador3", "NumTropas":6 }, ... "41":{ "Ocupante":"jugador5", "NumTropas":3 } }, "OcupacionPendiente": true, "TerritorioOcupacionOrigen": 2, "TerritorioOcupacionDestino": 5 }
Ruta: /api/resumirPartida Tipo: GET
func UnirseAPartida ¶
func UnirseAPartida(writer http.ResponseWriter, request *http.Request)
UnirseAPartida permite al usuario unirse a una partida en caso de que no esté en otra, no esté completa la partida, sea pública, o tenga su contraseña si es privada. Si se produciera algún error, devuelve código 500, en caso contrario 200 Los campos del formulario son "password" e "idPartida"
Ruta: /api/unirseAPartida Tipo: POST
Types ¶
This section is empty.