Files
wx_pbzc/cloudfunctions/leaderboard/data.js
T
2026-07-29 11:03:44 +08:00

20 lines
602 B
JavaScript

const crypto = require('crypto')
const memberKey = (openid) =>
crypto.createHash('sha256').update(String(openid || '')).digest('hex')
const publicEntry = (entry) => {
if (!entry) return null
const { memberKey: _memberKey, openid: _openid, ...publicData } = entry
return publicData
}
const publicRanked = (ranked) => (ranked || []).map(publicEntry)
const findMyEntry = (ranked, key) => {
const item = (ranked || []).find(entry => entry.memberKey === key)
return item ? { ...publicEntry(item), isMe: true } : null
}
module.exports = { memberKey, publicEntry, publicRanked, findMyEntry }