@mulingai-npm/redis 1.2.6 → 1.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -16,6 +16,7 @@ export declare class MulingstreamListenerManager {
16
16
  addListener(listenerData: Omit<MulingstreamListenerData, 'listenerId'>): Promise<string>;
17
17
  getAllListeners(): Promise<MulingstreamListenerData[]>;
18
18
  getListenersByRoom(roomId: string): Promise<MulingstreamListenerData[]>;
19
- getListenerByToken(token: string): Promise<MulingstreamListenerData | null>;
19
+ getListener(listenerIdOrToken: string): Promise<MulingstreamListenerData | null>;
20
20
  removeListenerByToken(token: string): Promise<boolean>;
21
+ updateNameLanguage(listenerIdOrToken: string, name: string, language: string): Promise<boolean>;
21
22
  }
@@ -71,28 +71,28 @@ class MulingstreamListenerManager {
71
71
  }
72
72
  return listeners;
73
73
  }
74
- async getListenerByToken(token) {
75
- // get all listener keys
74
+ async getListener(listenerIdOrToken) {
75
+ // try direct lookup by listenerId:
76
+ const directData = await this.redisClient.hgetall(`listener:${listenerIdOrToken}`);
77
+ if (directData && directData.listenerId) {
78
+ return this.parseHashData(directData);
79
+ }
80
+ // if not found by listenerId, treat 'listenerIdOrToken' as a token and scan all listeners
76
81
  const keys = await this.redisClient.keys('listener:*');
77
82
  if (!keys || keys.length === 0) {
78
83
  return null;
79
84
  }
80
- // for each key, fetch the hash from Redis
81
85
  for (const key of keys) {
82
86
  const data = await this.redisClient.hgetall(key);
83
- console.log(key, data);
84
- // compare the token field
85
- if (data && data.token === token) {
86
- // if match, return the parsed data
87
+ if (data && data.token === listenerIdOrToken) {
87
88
  return this.parseHashData(data);
88
89
  }
89
90
  }
90
- // if not found, return null
91
91
  return null;
92
92
  }
93
93
  async removeListenerByToken(token) {
94
94
  // find the listener by token
95
- const listener = await this.getListenerByToken(token);
95
+ const listener = await this.getListener(token);
96
96
  if (!listener) {
97
97
  return false;
98
98
  }
@@ -102,5 +102,17 @@ class MulingstreamListenerManager {
102
102
  await this.redisClient.del(`listener:${listener.listenerId}`);
103
103
  return true;
104
104
  }
105
+ async updateNameLanguage(listenerIdOrToken, name, language) {
106
+ const listener = await this.getListener(listenerIdOrToken);
107
+ if (!listener) {
108
+ return false;
109
+ }
110
+ // Update the name/language on the listener’s hash key
111
+ await this.redisClient.hset(`listener:${listener.listenerId}`, {
112
+ name,
113
+ language
114
+ });
115
+ return true;
116
+ }
105
117
  }
106
118
  exports.MulingstreamListenerManager = MulingstreamListenerManager;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mulingai-npm/redis",
3
- "version": "1.2.6",
3
+ "version": "1.2.7",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "repository": {