Módulo de catálogo
El Módulo de catálogo proporciona funcionalidad para recuperar información sobre los juegos de casino, las categorías de juegos y los proveedores de juegos. Este módulo forma parte del SDK del cliente web Gamanza Engage y se instancia automáticamente cuando se inicializa el SDK.
Acceso al módulo
El CatalogModule se inicializa internamente por el SDK y no debe ser instanciado directamente. Es accesible a través de la instancia principal del SDK.
// Ejemplo de acceso al CrmModule a través del SDK
const { Catalog } = GamanzaEngageWebClientSDK.getInstance();
Métodos públicos
obtenerCategoríasDeJuegosDeCasino
Recupera la lista de categorías de juegos de casino.
obtenerCategoríasDeJuegosDeCasino(): Promise<CategoríaDeJuego[]>
Descripción:
Este método recupera una lista de todas las categorías de juegos de casino disponibles. Utiliza un mecanismo de almacenamiento en caché para optimizar el rendimiento: primero verifica si los datos están disponibles en la caché antes de hacer una llamada a la API. Si la llamada a la API falla, intenta devolver datos obsoletos de la caché.
Parámetros:
Ninguno
Devuelve:
Una promesa que se resuelve en una matriz de objetos GameCategory con las siguientes propiedades:
| Propiedad | Tipo | Descripción |
|---|---|---|
| idDeCategoria | cadena | Identificador único de la categoría |
| nombreDeCategoria | cadena | Nombre para mostrar de la categoría |
| _id | cadena | Identificador interno |
Ejemplo:
// Obtener todas las categorías de juegos
const categories = await sdk.Catalog.getCasinoGameCategories();
console.log(categories);
// [
// { categoryId: "slots", categoryName: "Slots", _id: "123" },
// { categoryId: "table-games", categoryName: "Table Games", _id: "456" },
// ...
// ]
obtenerJuegosDeCasino
Recupera una lista de juegos de casino en función de los criterios de filtro proporcionados.
obtenerJuegosDeCasino(solicitud: SolicitudDeFiltroDeJuego): Promise<RespuestaDePaginación<TipoDeJuego[]>>
Descripción:
Este método recupera una lista paginada de juegos de casino que coinciden con los criterios de filtro especificados. Utiliza el almacenamiento en caché para optimizar el rendimiento y reducir las llamadas redundantes a la API.
Parámetros:
request - Un objeto de tipo GameFilterRequest con las siguientes propiedades:
| Propiedad | Tipo | Requerido | Descripción |
|---|---|---|---|
| página | número | Sí | Número de página a recuperar (a partir de 1) |
| límite | número | Sí | Número de elementos por página |
| orden | 'asc' | 'desc' | No | Orden de clasificación |
| idONombre | cadena | No | Filtrar por ID o nombre de juego |
| nombreDelJuego | cadena | No | Filtrar por nombre de juego exacto |
| idDelJuego | cadena | No | Filtrar por ID de juego exacto |
| proveedorDelJuego | cadena | No | Filtrar por proveedor de juego |
| categoriaDelJuego | cadena | No | Filtrar por categoría de juego |
Devuelve:
Una Promesa que se resuelve en un objeto PaginationResponse<GameType[]> con la siguiente estructura:
| Propiedad | Tipo | Descripción |
|---|---|---|
| docs | TipoDeJuego[] | Matriz de objetos de juego que coinciden con los criterios de filtro |
| tieneSignientePágina | booleano | Si hay una próxima página de resultados |
| tienePáginaAnterior | booleano | Si hay una página anterior de resultados |
| límite | número | Número de elementos por página |
| siguientePágina | número | Número de página siguiente |
| página | número | Número de página actual |
| contadorDePaginación | número | El índice de inicio del primer documento |
| páginaAnterior | número | nulo | Número de página anterior o nulo si está en la primera página |
| totalDocs | número | Número total de documentos que coinciden con los criterios |
| totalPáginas | número | Número total de páginas |
Cada objeto GameType en la matriz docs tiene las siguientes propiedades:
| Propiedad | Tipo | Descripción |
|---|---|---|
| _id | cadena | Identificador interno |
| idDeJuego | cadena | Identificador único para el juego |
| nombre | cadena | Nombre para mostrar del juego |
| idDelProveedor | objeto | Información sobre el proveedor del juego |
| idDelProveedor.idDelProveedor | cadena | Identificador único para el proveedor |
| idDelProveedor.nombre | cadena | Nombre del proveedor |
| idDeCategoria | objeto | Información sobre la categoría del juego |
| idDeCategoria.idDeCategoria | cadena | Identificador único para la categoría |
| idDeCategoria.nombre | cadena | Nombre de la categoría |
| dispositivo | cadena[] | Matriz de tipos de dispositivos compatibles |
| miniaturaDejJuego | cadena | URL a la imagen en miniatura del juego |
| miniaturaDeDWidget | cadena | URL de la imagen en miniatura del widget |
| inicioDeJuego | cadena | URL para iniciar el juego |
| inicioDeJuegoI18n | objeto | URL de inicio de juego internacionalizadas |
| permitirCompraDeBonos | booleano | Si se permite la compra de bonos para este juego |
Ejemplo:
// Obtener la primera página de juegos con 10 artículos por página
const gamesResponse = await sdk.Catalog.getCasinoGames({
page: 1,
limit: 10,
gameCategory: "slots"
});
console.log(gamesResponse.totalDocs); // Número total de juegos
console.log(gamesResponse.docs); // Matriz de juegos en esta página
obtenerProveedoresDeJuegosDeCasino
Obtiene una lista de proveedores de juegos de casino.
obtenerProveedoresDeJuegosDeCasino(): Promise<TipoDeProveedorDeCasino[]>
Descripción:
Este método recupera una lista de todos los proveedores de juegos de casino disponibles. Utiliza un mecanismo de almacenamiento en caché para optimizar el rendimiento: primero verifica si los datos están disponibles en la caché antes de realizar una llamada API. Si falla la llamada API, intenta devolver datos obsoletos de la caché.
Parámetros:
Ninguno
Devuelve:
Una promesa que se resuelve en un array de objetos CasinoProviderType con las siguientes propiedades:
| Propiedad | Tipo | Descripción |
|---|---|---|
| _id | cadena | Identificador interno |
| idDelProveedor | cadena | Identificador único para el proveedor (opcional) |
| nombre | cadena | Nombre para mostrar del proveedor |
Ejemplo:
// Obtener todos los proveedores de juegos
const providers = await sdk.Catalog.getCasinoGamesProviders();
console.log(providers);
// [
// { _id: "123", providerId: "netent", name: "NetEnt" },
// { _id: "456", providerId: "microgaming", name: "Microgaming" },
// ...
// ]
Interfaces Relacionadas
CategoríaDeJuego
type CategoríaDeJuego = {
idDeCategoria: cadena;
nombreDeCategoria: cadena;
_id: cadena;
};
SolicitudDeFiltroDeJuego
interface SolicitudDeFiltroDeJuego extends Omit<SolicitudDePaginación, 'ordenarPor'> {
idONombre?: cadena;
nombreDeJuego?: cadena;
idDeJuego?: cadena;
proveedorDeJuego?: cadena;
categoríaDeJuego?: cadena;
}
TipoDeJuego
type TipoDeJuego = {
_id: cadena;
idDeJuego: cadena;
nombre: cadena;
proveedorId: {
proveedorId: cadena;
nombre: cadena;
};
idDeCategoria: {
idDeCategoria: cadena;
nombre: cadena;
};
dispositivo: cadena[];
miniaturaDejJuego: cadena;
miniaturaDeDWidget: cadena;
inicioDeJuego: cadena;
inicioDeJuegoI18n: TipoDeInicioDeJuegoI18n;
permitirCompraDeBonos: booleano;
};
TipoDeProveedorDeCasino
type CasinoProviderType = {
_id: string;
providerId?: string;
name: string;
};
TipoI18nLanzamientoJuego
type TipoI18nLanzamientoJuego = {
[locale: string]: {
locale: string;
url: string;
};
};
RespuestaPaginación
interface RespuestaPaginación<T> {
docs: T;
hasNextPage: boolean;
hasPrevPage: boolean;
limit: number;
nextPage: number;
page: number;
pagingCounter: number;
prevPage: number | null;
totalDocs: number;
totalPages: number;
}