dao

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 23, 2022 License: MIT Imports: 17 Imported by: 0

Documentation

Overview

Package dao define funciones de comunicación directa con la base de datos

Index

Constants

View Source
const (
	LONGITUD_TOKEN_RESET_PASSWORD = 40
)

Variables

This section is empty.

Functions

func AbandonarLobby

func AbandonarLobby(db *sql.DB, usuario *vo.Usuario) (err error, borrada bool)

AbandonarLobby intenta abandonar una partida dada si no está en curso, o devuelve un error apropiado en caso contrario ya formateado. Adicionalmente, si la partida se queda sin jugadores, se borrará.

func AbandonarPartida added in v0.4.1

func AbandonarPartida(db *sql.DB, usuario *vo.Usuario) (err error)

AbandonarPartida intenta abandonar una partida dada si está en curso, o devuelve un error apropiado en caso contrario ya formateado. Adicionalmente, si la partida se queda sin jugadores, se borrará.

func AceptarSolicitudAmistad

func AceptarSolicitudAmistad(db *sql.DB, emisor *vo.Usuario, receptor *vo.Usuario) error

AceptarSolicitudAmistad registra una solicitud de amistad existente como aceptada entre los usuarios emisor y receptor. En caso de fallo o no encontrarse alguno de ellos o la solicitud, devuelve un error.

func AlmacenarEstadoSerializado

func AlmacenarEstadoSerializado(db *sql.DB, partida *vo.Partida) (err error)

AlmacenarEstadoSerializado almacena el estado una partida dada, serializado a bytes. Devuelve un error en fallo.

func AlmacenarMensajes

func AlmacenarMensajes(db *sql.DB, partida *vo.Partida) (err error)

AlmacenarMensajes almacena los mensajes una partida dada, serializados a bytes. Devuelve un error en fallo.

func AlmacenarNotificacionConEstado added in v0.5.0

func AlmacenarNotificacionConEstado(db *sql.DB, usuario *vo.Usuario, notificacion interface{}) (err error)

AlmacenarNotificacionConEstado guarda una notificación dependiente del estado del juego para el usuario dado. Se borrará junto al resto al ser consultadas en grupo

func BorrarPartida

func BorrarPartida(db *sql.DB, partida *vo.Partida) error

BorrarPartida borra la partida indicada si existe, o devuelve un error en caso contrario.

func ComprarObjeto added in v0.5.0

func ComprarObjeto(db *sql.DB, usuario string, item vo.ItemTienda, creacion bool) error

ComprarObjeto permite al jugador comprar un objeto de la tienda siempre y cuando tenga los puntos necesarios. Para ello, se especificará como parámetro 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. Si se indica que se está creando el usuario, se permite comprar objetos iniciales

func ConsultarAcceso

func ConsultarAcceso(db *sql.DB, partida *vo.Partida) (esPublica bool, hash string, err error)

ConsultarAcceso devuelve los permisos de acceso de una partida en concreto El parámetro de salida "esPublica" indicará si la partida es pública o no El parámetro hash corresponderá al hash de la contraseña para el acceso a la partida

func ConsultarColeccion added in v0.5.0

func ConsultarColeccion(db *sql.DB, usuario string) (items []vo.ItemTienda, err error)

ConsultarColeccion permite consultar los objetos que ha comprado un usuario

func ConsultarCookie

func ConsultarCookie(db *sql.DB, usuario *vo.Usuario) (cookie http.Cookie, err error)

ConsultarCookie devuelve una cookie del usuario dado, buscando por su nombre. En caso de fallo o no encontrarse, devuelve un error.

func ConsultarJugadoresPartida

func ConsultarJugadoresPartida(db *sql.DB, partida *vo.Partida) (jugadores []vo.Usuario, maxJugadores int, err error)

ConsultarJugadoresPartida devuelve los jugadores de una partida, además del número máximo de jugadores permitidos

func ConsultarPasswordHash

func ConsultarPasswordHash(db *sql.DB, usuario *vo.Usuario) (hash string, err error)

ConsultarPasswordHash devuelve el hash de contraseña del usuario dado, buscando por su nombre. En caso de fallo o no encontrarse, devuelve un error.

func ConsultarSolicitudesPendientes

func ConsultarSolicitudesPendientes(db *sql.DB, usuario *vo.Usuario) (usuarios []string, err error)

ConsultarSolicitudesPendientes devuelve una lista en la que se indican los nombres de usuario que han enviado una solicitud de amistad a "usuario", estando dicha solicitud pendiente.

func ConsultarTienda added in v0.5.0

func ConsultarTienda(db *sql.DB) (items []vo.ItemTienda, err error)

ConsultarTienda devuelve la lista de objetos disponibles en la tienda

func ContabilizarPartida added in v0.4.1

func ContabilizarPartida(db *sql.DB, usuario *vo.Usuario) (err error)

ContabilizarPartida añade una partida jugada al usuario

func ContabilizarPartidaGanada added in v0.4.1

func ContabilizarPartidaGanada(db *sql.DB, usuario *vo.Usuario) (err error)

ContabilizarPartidaGanada añade una partida ganada al usuario, contabilizándola también en el cómputo global

func CrearPartida

func CrearPartida(db *sql.DB, usuario *vo.Usuario, partida *vo.Partida) (err error)

CrearPartida crea una nueva partida, la cual será añadida a la base de datos El usuario especificará el número de jugadores máximos, si la partida es pública o privada, y la contraseña cuando sea necesario Modifica el objeto partida utilizando, especificando su identificador asignado al almacenarla en la base de datos

func CrearSolicitudAmistad

func CrearSolicitudAmistad(db *sql.DB, emisor *vo.Usuario, receptor *vo.Usuario) error

CrearSolicitudAmistad registra una solicitud de amistad entre los usuarios emisor y receptor. En caso de fallo o no encontrarse alguno de ellos, devuelve un error.

func CrearTokenResetPassword added in v0.6.4

func CrearTokenResetPassword(db *sql.DB, usuario string) (err error, token string)

CrearTokenResetPassword almacena y devuelve un token de reset de contraseña para el usuario indicado, o devuelve un error si el usuario no existe u ocurre algún otro error

func EliminarAmigo added in v0.6.3

func EliminarAmigo(db *sql.DB, usuario1 *vo.Usuario, usuario2 *vo.Usuario) error

EliminarAmigo elimina una relación de amistad entre los usuarios usuario1 y usuario2

func EmpezarPartida

func EmpezarPartida(db *sql.DB, idP int) error

func ExisteEmail

func ExisteEmail(db *sql.DB, email string) bool

ExisteEmail devuelve true si hay algún usuario con el email "email" registrado

func ExisteUsuario

func ExisteUsuario(db *sql.DB, nombre string) bool

ExisteUsuario devuelve true si hay algún usuario con el nombre "nombre" registrado

func InicializarConexionDb

func InicializarConexionDb(test bool) *sql.DB

InicializarConexionDb devuelve el objeto de base de datos, en el cual realiza la conexión a la misma

func InsertarCookie

func InsertarCookie(db *sql.DB, usuario *vo.Usuario) (err error)

InsertarCookie registra una cookie para el usuario dado, buscando por su nombre. En caso de fallo o no encontrarse, devuelve un error.

func InsertarUsuario

func InsertarUsuario(db *sql.DB, usuario *vo.Usuario) (err error)

InsertarUsuario registra un usuario dados sus datos. En caso de fallo, devuelve un error.

func ModificarAvatar added in v0.6.4

func ModificarAvatar(db *sql.DB, usuario *vo.Usuario, avatar vo.ItemTienda) error

ModificarAvatar modifica el avatar equipado por el usuario

func ModificarBiografia added in v0.5.0

func ModificarBiografia(db *sql.DB, usuario *vo.Usuario, biografia string) error

ModificarBiografia actualiza la biografia del usuario

func ModificarDados added in v0.5.0

func ModificarDados(db *sql.DB, usuario *vo.Usuario, dados vo.ItemTienda) error

ModificarDados modifica el aspecto de dados equipado por el usuario

func ModificarEmail added in v1.0.0

func ModificarEmail(db *sql.DB, usuario *vo.Usuario, email string) error

ModificarEmail actualiza el email del usuario

func MonitorizarCanalBorrado added in v0.6.0

func MonitorizarCanalBorrado(db *sql.DB, partidas chan int, stop chan struct{}, usuariosInactivos chan string)

MonitorizarCanalBorrado pone en marcha una Goroutine de atención a eliminado de partidas y usuarios. Diseñado para eliminar partidas terminadas o con usuarios inactivos y usuarios inactivos, sin necesitar la intervención de los handlers.

func MonitorizarCanalEnvioAlertas added in v0.6.4

func MonitorizarCanalEnvioAlertas(db *sql.DB, stop chan struct{}, jugadores chan string)

MonitorizarCanalEnvioAlertas pone en marcha una GOroutine de atención a envío de emails a usuarios. Diseñado para ser utilizado por el gestor de cache de partidas, evitando dependencias cíclicas en el dao.

func ObtenerAmigos

func ObtenerAmigos(db *sql.DB, usuario *vo.Usuario) (amigos []vo.Usuario, err error)

ObtenerAmigos devuelve una lista de usuarios (con su nombre de usuario rellenado) que son amigos del usuario indicado, o error en caso de fallo.

func ObtenerEmailUsuario added in v0.6.4

func ObtenerEmailUsuario(db *sql.DB, usuario string) (err error, email string)

ObtenerEmailUsuario devuelve el email de un usuario dado, o devuelve un error si el usuario no existe u ocurre algún otro error

func ObtenerEstadoLobby

func ObtenerEstadoLobby(db *sql.DB, idPartida int) (estado vo.EstadoLobby, err error)

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

func ObtenerEstadoSerializado

func ObtenerEstadoSerializado(db *sql.DB, partida *vo.Partida) (err error)

ObtenerEstadoSerializado obtiene una partida existente con el ID indicado y deserializa su estado en ella, o devuelve un error en fallo.

func ObtenerIDAvatar added in v0.6.4

func ObtenerIDAvatar(db *sql.DB, usuario string) (id int, err error)

ObtenerIDAvatar devuelve el ID de item del avatar equipado para el usuario dado

func ObtenerIDDado added in v0.6.4

func ObtenerIDDado(db *sql.DB, usuario string) (id int, err error)

ObtenerIDDado devuelve el ID de item de los dados equipados para el usuario dado

func ObtenerIDPartida added in v0.5.0

func ObtenerIDPartida(db *sql.DB, nombreUsuario string) (idPartida int, err error)

ObtenerIDPartida devuelve el ID de la partida en la que está participando el usuario, dado su nombre. En caso de error o de que no esté participando en ninguna partida, devuelve -1 y un error formateado

func ObtenerMensajes

func ObtenerMensajes(db *sql.DB, partida *vo.Partida) (err error)

ObtenerMensajes obtiene los mensajes partida existente con el ID indicado y los deserializa en ella, o devuelve un error en fallo.

func ObtenerNombreExpiracionTokenResetPassword added in v0.6.4

func ObtenerNombreExpiracionTokenResetPassword(db *sql.DB, token string) (err error, usuario string, expiracion time.Time)

ObtenerNombreExpiracionTokenResetPassword devuelve el nombre del usuario que tenga el token indicado junto a la expiración del token, o un error si el usuario no existe u ocurre algún otro error

func ObtenerNotificacionesConEstado added in v0.5.0

func ObtenerNotificacionesConEstado(db *sql.DB, usuario *vo.Usuario, borrar bool) (err error, notificaciones []interface{})

ObtenerNotificacionesConEstado devuelve un slice de notificaciones con estado almacenadas para el usuario. Todas las notificaciones se borrarán una vez consultadas si se indica

func ObtenerObjeto added in v0.5.0

func ObtenerObjeto(db *sql.DB, idItem int) (vo.ItemTienda, error)

ObtenerObjeto recupera un objeto de la tienda de la base de datos a partir de su identificador

func ObtenerPartida

func ObtenerPartida(db *sql.DB, idP int) (partida vo.Partida, err error)

ObtenerPartida devuelve una partida, dado su id, o error en cualquier otro caso.

func ObtenerPartidas

func ObtenerPartidas(db *sql.DB) (partidas []vo.Partida, err error)

ObtenerPartidas devuelve un listado de todas las partidas, ordenadas de privadas a públicas.

func ObtenerPartidasNoEnCurso

func ObtenerPartidasNoEnCurso(db *sql.DB) (partidas []vo.Partida, err error)

ObtenerPartidasNoEnCurso devuelve un listado de todas las partidas que no están en curso almacenadas, ordenadas de privadas a públicas.

func ObtenerToken added in v0.6.4

func ObtenerToken(db *sql.DB, usuario string) string

ObtenerToken devuelve el token de reset de contraseña dado un usuario. A utilizar solo para debugging y tests de integración.

func ObtenerUsuario

func ObtenerUsuario(db *sql.DB, nombreUsuario string) (usuario vo.Usuario, err error)

func ObtenerUsuariosSimilares

func ObtenerUsuariosSimilares(db *sql.DB, nombre string) (usuarios []string, err error)

ObtenerUsuariosSimilares devuelve el nombre de usuario de todos los usuarios registrados cuyo nombre sea similar a uno indicado, ordenados alfabéticamente

func OtorgarPuntos added in v0.4.1

func OtorgarPuntos(db *sql.DB, usuario *vo.Usuario, puntos int, partidaGanada bool) (err error)

OtorgarPuntos añade una cantidad de puntos determinada al usuario dado. Devuelve error en caso de fallo.

func PartidaUsuario

func PartidaUsuario(db *sql.DB, usuario *vo.Usuario) (idPartida int, err error)

PartidaUsuario devuelve el ID de la partida en la que participa un usuario, y error en cualquier otro caso

func Ranking added in v0.5.0

func Ranking(db *sql.DB) (ranking []vo.ElementoRankingUsuarios, err error)

Ranking devuelve la lista de usuarios del sistema ordenada por partidas ganadas

func RechazarSolicitudAmistad

func RechazarSolicitudAmistad(db *sql.DB, emisor *vo.Usuario, receptor *vo.Usuario) error

AceptarSolicitudAmistad elimina una solicitud de amistad existente entre los usuarios emisor y receptor. En caso de fallo o no encontrarse alguno de ellos o la solicitud, devuelve un error.

func ResetearContraseña added in v0.6.4

func ResetearContraseña(db *sql.DB, usuario string, hashContraseña string) (err error)

ResetearContraseña cambia el hash de contraseña del usuario indicado por el dado. Devuelve error si no existe u ocurre algún otro error

func RetirarPuntos added in v0.5.0

func RetirarPuntos(db *sql.DB, usuario *vo.Usuario, puntos int) (err error)

RetirarPuntos retira una cantidad de puntos determinada al usuario dado. Devuelve error en caso de fallo.

func TieneObjeto added in v0.5.0

func TieneObjeto(db *sql.DB, usuario *vo.Usuario, item vo.ItemTienda) (existe bool, err error)

TieneObjeto devuelve true si y solo si el objeto "item" está en la colección de objetos de "usuario"

func UnirseAPartida

func UnirseAPartida(db *sql.DB, usuario *vo.Usuario, partida *vo.Partida) (err error)

UnirseAPartida crea una nueva entrada en la tabla "Participa" indicando que el usuario forma parte de la partida

func UsuarioEnPartida

func UsuarioEnPartida(db *sql.DB, usuario *vo.Usuario) (EnPartida bool, err error)

UsuarioEnPartida devolverá true en caso de que un usuario ya esté participando en una partida

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL