[API-Riot] League Of Legends tournament

kain325

Hola!
Estoy tratando de aprender a usar la api de torneos de lol, tengo que "crear" un codigo de torneo desde mi pagina web, sin embargo no entiendo como poder crearlo. Cree las funciones, me pide una url y no tengo url para agregarle (es un proyecto local)

Si le sirve a alguien dejo el codigo:

//========================================================================================
// Torneos================================================================================
//========================================================================================
const baseUrl = 'https://americas.api.riotgames.com/lol/tournament-stub/v5';

// Función para crear un proveedor de torneo
async function crearProveedorTorneo() {
  const url = `${baseUrl}/providers`;
  const datos = {
    region: "LAS",
    url: "https://tu-sitio-web.com/callback" // Reemplaza con tu URL de callback
  };

  const opciones = {
    method: 'post',
    url: url,
    headers: {
      'Content-Type': 'application/json',
      'X-Riot-Token': apiKey
    },
    data: datos
  };

  try {
    const respuesta = await axios(opciones);
    console.log('ID del proveedor creado:', respuesta.data);
    return respuesta.data; // Este es tu providerId
  } catch (error) {
    console.error('Error al crear el proveedor del torneo:', error.message);
    if (error.response) {
      console.error('Detalles de la respuesta:', error.response.data);
    }
    throw error;
  }
}

// Función para crear un torneo
async function crearTorneo(providerId) {
  const url = `${baseUrl}/tournaments`;
  const datos = {
    name: "Mi Torneo de LoL",
    providerId: providerId
  };

  const opciones = {
    method: 'post',
    url: url,
    headers: {
      'Content-Type': 'application/json',
      'X-Riot-Token': apiKey
    },
    data: datos
  };

  try {
    const respuesta = await axios(opciones);
    console.log('ID del torneo creado:', respuesta.data);
    return respuesta.data; // Este es tu tournamentId
  } catch (error) {
    console.error('Error al crear el torneo:', error.message);
    if (error.response) {
      console.error('Detalles de la respuesta:', error.response.data);
    }
    throw error;
  }
}

// Función para generar un código de torneo
async function generarCodigoTorneo(providerId, tournamentId) {
  const url = `${baseUrl}/codes`;
  const datos = {
    mapType: "SUMMONERS_RIFT",
    metadata: "",
    pickType: "TOURNAMENT_DRAFT",
    spectatorType: "ALL",
    teamSize: 5
  };

  const opciones = {
    method: 'post',
    url: url,
    params: {
      count: 1,
      tournamentId: tournamentId
    },
    headers: {
      'Content-Type': 'application/json',
      'X-Riot-Token': apiKey
    },
    data: datos
  };

  try {
    const respuesta = await axios(opciones);
    console.log('Código de torneo generado:', respuesta.data);
    return respuesta.data;
  } catch (error) {
    console.error('Error al generar el código de torneo:', error.message);
    if (error.response) {
      console.error('Detalles de la respuesta:', error.response.data);
    }
    throw error;
  }
}

// Función principal para ejecutar todo el proceso
async function crearTorneoYGenerarCodigo() {
  try {
    const providerId = await crearProveedorTorneo();
    const tournamentId = await crearTorneo(providerId);
    const codigoTorneo = await generarCodigoTorneo(providerId, tournamentId);
    console.log('Proceso completo. Código de torneo:', codigoTorneo);
    return codigoTorneo;
  } catch (error) {
    console.error('Error en el proceso:', error);
    throw error;
  }
}

L
async function crearProveedorTorneo() {
  const url = `${baseUrl}/providers`;
  const datos = {
    region: "LAS",
    url: "https://tu-url-publica.ngrok.io/callback" // Reemplaza con tu URL pública de Ngrok
  };

  const opciones = {
    method: 'post',
    url: url,
    headers: {
      'Content-Type': 'application/json',
      'X-Riot-Token': apiKey
    },
    data: datos
  };

  try {
    const respuesta = await axios(opciones);
    console.log('ID del proveedor creado:', respuesta.data);
    return respuesta.data; // Este es tu providerId
  } catch (error) {
    console.error('Error al crear el proveedor del torneo:', error.message);
    if (error.response) {
      console.error('Detalles de la respuesta:', error.response.data);
    }
    throw error;
  }
}

Usuarios habituales

  • Lafayette
  • kain325