unoffical wafrn mirror wafrn.net
atproto social-network activitypub
at angular21 32 lines 915 B view raw
1import { User } from '../../models/index.js' 2import { isLocalRemoteId, getLocalUsernameFromLocalRemoteId } from '../../models/user.js' 3import { redisCache } from '../redis.js' 4 5async function getUserIdFromRemoteId(remoteId: string): Promise<string> { 6 let res = '' 7 const cacheResult = await redisCache.get('userRemoteId:' + remoteId.toLocaleLowerCase()) 8 if (cacheResult) { 9 res = cacheResult 10 } else { 11 const user = isLocalRemoteId(remoteId) 12 ? await User.findOne({ 13 attributes: ['id'], 14 where: { 15 url: getLocalUsernameFromLocalRemoteId(remoteId) 16 } 17 }) 18 : await User.findOne({ 19 attributes: ['id'], 20 where: { 21 remoteId: remoteId 22 } 23 }) 24 if (user) { 25 res = user.id 26 await redisCache.set('userRemoteId:' + remoteId.toLocaleLowerCase(), res, 'EX', 1000) 27 } 28 } 29 return res 30} 31 32export { getUserIdFromRemoteId }