Page MenuHomePhabricator

D13639.diff
No OneTemporary

D13639.diff

diff --git a/keyserver/src/utils/redis-cache.js b/keyserver/src/utils/redis-cache.js
--- a/keyserver/src/utils/redis-cache.js
+++ b/keyserver/src/utils/redis-cache.js
@@ -4,6 +4,7 @@
import redis from 'redis';
import type { NeynarChannel } from 'lib/types/farcaster-types.js';
+import type { Identity } from 'lib/types/identity-service-types.js';
import { redisConfig } from '../socket/redis.js';
@@ -47,6 +48,37 @@
});
});
}
+
+ setUserIdentity(userID: string, userIdentity: Identity): Promise<void> {
+ const stringifiedUserIdentity = JSON.stringify(userIdentity);
+ return new Promise((resolve, reject) => {
+ this.cacheClient.set(
+ `user:${userID}`,
+ stringifiedUserIdentity,
+ 'EX',
+ 60, // item expires after 1 minute
+ err => {
+ if (err) {
+ return reject(err);
+ }
+ return resolve();
+ },
+ );
+ });
+ }
+
+ getUserIdentity(userID: string): Promise<?Identity> {
+ return new Promise((resolve, reject) => {
+ this.cacheClient.get(`user:${userID}`, (err, result) => {
+ if (err) {
+ return reject(err);
+ }
+ // Reset the expiration when the cached data is successfully retrieved
+ this.cacheClient.expire(`user:${userID}`, 60);
+ return resolve(result ? JSON.parse(result) : null);
+ });
+ });
+ }
}
const redisCache: RedisCache = new RedisCache();

File Metadata

Mime Type
text/plain
Expires
Mon, Dec 23, 3:46 PM (15 h, 21 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2695201
Default Alt Text
D13639.diff (1 KB)

Event Timeline