(async function() {
const token = sessionStorage.getItem('token')
const response = await fetch("https://sisualuno-api.sisualuno.mec.gov.br/api/v1/inscricao/ranking", {
"headers": {
"Accept": "application/json, text/plain, */*",
"Authorization": "Bearer " + token,
"Sec-GPC": "1",
"Sec-Fetch-Dest": "empty",
"Sec-Fetch-Mode": "cors",
"Sec-Fetch-Site": "same-site",
"Priority": "u=4",
},
"mode": "cors"
})
if (response.status !== 200) {
alert(`Houve um erro ao buscar o ranking [${response.status}]`)
throw new Error('Failed to fetch')
}
const data = await response.json()
const container = document.createElement('div')
container.className = 'max-w-2xl mx-auto p-4 space-y-3 font-sans'
for (const ranking of data.classificacoes) {
const card = document.createElement('div')
card.className = 'flex flex-col border-l-4 border-blue-500 bg-white p-3 shadow-sm border-y border-r border-gray-200'
const header = document.createElement('div')
header.className = 'text-xs text-gray-500 mb-2 truncate'
header.textContent = `${ranking.no_curso} | ${ranking.no_ies} | ${ranking.no_campus}`
card.appendChild(header)
for (const modalidade of ranking.modalidades) {
const row = document.createElement('div')
row.className = 'py-1 border-t border-gray-50'
const modTitle = document.createElement('div')
modTitle.className = 'text-[10px] uppercase text-gray-400 font-semibold leading-none mb-1'
modTitle.textContent = modalidade.no_mod_concorrencia
const rankText = document.createElement('div')
rankText.className = 'text-base text-gray-800'
rankText.innerHTML = `Você ocupa a posição ${modalidade.nu_classificacao} de ${modalidade.qt_vagas_modalidade} vagas.`
row.appendChild(modTitle)
row.appendChild(rankText)
card.appendChild(row)
}
container.appendChild(card)
}
document.body.appendChild(container)})()