/** * @param {string} key * @returns {Array} */ app.use("/getAllFactions.lvorex", express.json()) app.post("/getAllFactions.lvorex", async (req, res) => { const postBody = req.body const { keyFound, userKey } = await controlKey(req, postBody.key) if (keyFound === false) return res.json({ code: 404, message: "Not authorized." }) const PermissionCheck = await checkPermission(userKey.rank, "Factions", 0) if (!PermissionCheck) return res.json({ code: 401, message: "Your rank is not enough." }) if (!config.Framework.includes("qb")) return res.json({ code: 404, message: "This function only works on QBCore." }) const Factions = FrameworkObject.Shared.Gangs const toInsertFactions = [] for await (const [k, faction] of Object.entries(Factions)) { let result = await query(` select * from \`madmin_factions\` where \`faction\` = '${k}' `) if (result === false) return res.json({ code: 404, message: "SQL Error Appeared." }) let [factionImage, factionType] = ["img/DefaultFactionIcon.png", "gangs"] if (result.length === 0) { result = await query(` insert into \`madmin_factions\` (\`faction\`) values ('${k}') `) if (result === false) return res.json({ code: 404, message: "SQL Error Appeared." }) } else { result = result[0] factionImage = result.image factionType = result.type } let preparingFaction = { code: k, label: faction.label, type: factionType, image: factionImage, grades: faction.grades, mostRankedPlayer: { name: "", grade: { level: 0, name: "" } }, factionMembers: [] } result = await query(` select * from \`players\` where \`gang\` like '%"name":"${k}%' `) if (result === false) return if (result.length === 0) { preparingFaction.factionMembers = [] } else { for await (const factionMember of result) { let dcResult = await query(` select * from \`madmin_characters\` where \`identifier\` = '${factionMember.citizenid}' `) if (dcResult === false) return res.json({ code: 404, message: "SQL Error Appeared." }) let userAvatar = "img/DefaultIcon.png" if (dcResult.length !== 0) { userAvatar = await getPlayerDiscordProfile(dcResult[0].discord.split(":")[1]) } const factionCredentials = JSON.parse(factionMember.gang) const charInfo = JSON.parse(factionMember.charinfo) const preparePlayer = { name: charInfo.firstname+" "+charInfo.lastname, grade: factionCredentials.grade.level, gradeName: factionCredentials.grade.name, identifier: factionMember.citizenid, avatar: userAvatar } const mostRankedPlayer = preparingFaction.mostRankedPlayer if (mostRankedPlayer.grade.level < factionCredentials.grade.level) { preparingFaction.mostRankedPlayer = { name: factionCredentials.grade.name + ". " + charInfo.firstname+" "+charInfo.lastname, grade: factionCredentials.grade.level, identifier: factionMember.citizenid } } preparingFaction.factionMembers.push(preparePlayer) } } toInsertFactions.push(preparingFaction) } res.json({ code: 200, message: toInsertFactions }) })