unoffical wafrn mirror
wafrn.net
atproto
social-network
activitypub
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 }