UNPKG

pandoapi

Version:

API interna para los bots de PandoTeam

76 lines (49 loc) 2.75 kB
async function giveaway(client, users, winners){ if(!client || !users || !winners) return ('Api-Error on(Parameters) : No ha proporcionado los parametros necesarios.'); if(!client.user) return ('Api-Error on(getClientUser) : No se pudo obtener el usuario del cliente.'); if(!client.user.id) return ('Api-Error on(getClientUserID) : No se pudo obtener la ID del cliente.'); const authorization = require('../authorized.js'); const authorize = await authorization.authorize(client); if(authorize === false) return ('Api-Error on(Authorization) : El cliente no está autorizado para usar este servicio.'); if(Array.isArray(users) === false) return ('Api-Error on(validUsers) : El parametro de usuarios no es de tipo array.'); if(users.length === 0) return ('Api-Error on(validInputUsers) : El array de usuarios está vacío.'); if(typeof winners !== 'number') return ('Api-Error on(validOutputUsers) : La cantidad de ganadores no es de tipo número.'); if(winners <= 0) return ('Api-Error on(validOutputUsers) : La cantidad de ganadores es igual o inferior a 0'); let arrayOfWinnersNumber = []; let outputWinners = []; for (var i = 0; i < winners; i++) { arrayOfWinnersNumber.push('x'); } if(users.length <= arrayOfWinnersNumber.length){ if(users.length !== arrayOfWinnersNumber.length){ console.log('Api-Warning on(validInputUsers) : La cantidad de usuarios introducidos es inferior a la cantidad de ganadores.'); } users.forEach((user) => { outputWinners.push(user); }); }else{ arrayOfWinnersNumber.forEach(async () => { let randomNumber = Math.floor((Math.random() * users.length)); if (outputWinners.includes(users[randomNumber])) { while (outputWinners.includes(users[randomNumber])) { let randomNumber2 = Math.floor((Math.random() * users.length)); const alreadyRolled = outputWinners.includes(users[randomNumber2]); if (alreadyRolled) { if(outputWinners.length >= winners) break; continue; }else{ if (outputWinners.length >= winners) break; else { outputWinners.push(users[randomNumber2]); continue; } } } } else { outputWinners.push(users[randomNumber]); } }); } return outputWinners; } module.exports = giveaway;