Pular para o conteúdo principal

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:

PropiedadTipoDescripción
idDeCategoriacadenaIdentificador único de la categoría
nombreDeCategoriacadenaNombre para mostrar de la categoría
_idcadenaIdentificador 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:

PropiedadTipoRequeridoDescripción
páginanúmeroNúmero de página a recuperar (a partir de 1)
límitenúmeroNúmero de elementos por página
orden'asc' | 'desc'NoOrden de clasificación
idONombrecadenaNoFiltrar por ID o nombre de juego
nombreDelJuegocadenaNoFiltrar por nombre de juego exacto
idDelJuegocadenaNoFiltrar por ID de juego exacto
proveedorDelJuegocadenaNoFiltrar por proveedor de juego
categoriaDelJuegocadenaNoFiltrar por categoría de juego

Devuelve:
Una Promesa que se resuelve en un objeto PaginationResponse<GameType[]> con la siguiente estructura:

PropiedadTipoDescripción
docsTipoDeJuego[]Matriz de objetos de juego que coinciden con los criterios de filtro
tieneSignientePáginabooleanoSi hay una próxima página de resultados
tienePáginaAnteriorbooleanoSi hay una página anterior de resultados
límitenúmeroNúmero de elementos por página
siguientePáginanúmeroNúmero de página siguiente
páginanúmeroNúmero de página actual
contadorDePaginaciónnúmeroEl índice de inicio del primer documento
páginaAnteriornúmero | nuloNúmero de página anterior o nulo si está en la primera página
totalDocsnúmeroNúmero total de documentos que coinciden con los criterios
totalPáginasnúmeroNúmero total de páginas

Cada objeto GameType en la matriz docs tiene las siguientes propiedades:

PropiedadTipoDescripción
_idcadenaIdentificador interno
idDeJuegocadenaIdentificador único para el juego
nombrecadenaNombre para mostrar del juego
idDelProveedorobjetoInformación sobre el proveedor del juego
idDelProveedor.idDelProveedorcadenaIdentificador único para el proveedor
idDelProveedor.nombrecadenaNombre del proveedor
idDeCategoriaobjetoInformación sobre la categoría del juego
idDeCategoria.idDeCategoriacadenaIdentificador único para la categoría
idDeCategoria.nombrecadenaNombre de la categoría
dispositivocadena[]Matriz de tipos de dispositivos compatibles
miniaturaDejJuegocadenaURL a la imagen en miniatura del juego
miniaturaDeDWidgetcadenaURL de la imagen en miniatura del widget
inicioDeJuegocadenaURL para iniciar el juego
inicioDeJuegoI18nobjetoURL de inicio de juego internacionalizadas
permitirCompraDeBonosbooleanoSi 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:

PropiedadTipoDescripción
_idcadenaIdentificador interno
idDelProveedorcadenaIdentificador único para el proveedor (opcional)
nombrecadenaNombre 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;
}