'use strict';

const config = require('config');
const style = require('./style');

function getLeaders(points, user, ping = true, limit = Infinity) {
	return Object.entries(points)
		.sort(([, scoreA], [, scoreB]) => scoreB - scoreA)
		.slice(0, limit)
		.map(([userKey, score], index) => {
			const username = userKey.split(':')[1] || userKey; // process the points file

			if (index === 0) {
				return `${style.bold(style.yellow(`${ping || username === user.username ? config.usernamePrefix : ''}${username}`))} with ${style.bold(`${score}`)} points`;
			}

			return `${style.bold(style.cyan(`${ping ? config.usernamePrefix : ''}${username}`))} with ${style.bold(`${score}`)} points`;
		})
		.join(', ');
}

module.exports = getLeaders;
