@levrbet/shared 0.2.81 → 0.3.1
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.
- package/dist/core/config/urls.js +4 -4
- package/dist/core/config/urls.js.map +1 -1
- package/dist/core/utils/game.utils.d.ts +2 -0
- package/dist/core/utils/game.utils.js +69 -1
- package/dist/core/utils/game.utils.js.map +1 -1
- package/dist/server/oracle/config/game-periods/providers/lsports.periods.js +3 -3
- package/dist/server/oracle/config/game-periods/providers/lsports.periods.js.map +1 -1
- package/dist/server/oracle/config/game-periods/providers/optic-odds.periods.d.ts +4 -27
- package/dist/server/oracle/config/game-periods/providers/optic-odds.periods.js +4 -27
- package/dist/server/oracle/config/game-periods/providers/optic-odds.periods.js.map +1 -1
- package/dist/server/oracle/config/game-periods/sports.config.js +8 -65
- package/dist/server/oracle/config/game-periods/sports.config.js.map +1 -1
- package/dist/server/oracle/config/game-periods/types.d.ts +2 -5
- package/dist/server/oracle/config/game-periods/types.js +0 -1
- package/dist/server/oracle/config/game-periods/types.js.map +1 -1
- package/dist/server/oracle/redis-cache-manager/cache.keys.utils.d.ts +45 -74
- package/dist/server/oracle/redis-cache-manager/cache.keys.utils.js +65 -120
- package/dist/server/oracle/redis-cache-manager/cache.keys.utils.js.map +1 -1
- package/dist/server/oracle/redis-cache-manager/game.query.engine.d.ts +90 -0
- package/dist/server/oracle/redis-cache-manager/game.query.engine.js +436 -0
- package/dist/server/oracle/redis-cache-manager/game.query.engine.js.map +1 -0
- package/dist/server/oracle/redis-cache-manager/index.d.ts +2 -3
- package/dist/server/oracle/redis-cache-manager/index.js +2 -3
- package/dist/server/oracle/redis-cache-manager/index.js.map +1 -1
- package/dist/server/oracle/redis-cache-manager/market.query.engine.d.ts +50 -97
- package/dist/server/oracle/redis-cache-manager/market.query.engine.js +310 -467
- package/dist/server/oracle/redis-cache-manager/market.query.engine.js.map +1 -1
- package/dist/server/oracle/types/providers/game-clock/index.d.ts +1 -1
- package/dist/server/oracle/types/providers/game-clock/index.js +1 -1
- package/dist/server/oracle/types/providers/game-clock/index.js.map +1 -1
- package/dist/server/{utils/game_progress → oracle/types/providers/game-clock}/parser.d.ts +7 -1
- package/dist/server/{utils/game_progress → oracle/types/providers/game-clock}/parser.js +13 -2
- package/dist/server/oracle/types/providers/game-clock/parser.js.map +1 -0
- package/dist/server/utils/index.d.ts +0 -1
- package/dist/server/utils/index.js +0 -1
- package/dist/server/utils/index.js.map +1 -1
- package/package.json +5 -4
- package/scripts/setup-prisma.js +0 -0
- package/dist/server/oracle/redis-cache-manager/game.cache.service.d.ts +0 -185
- package/dist/server/oracle/redis-cache-manager/game.cache.service.js +0 -712
- package/dist/server/oracle/redis-cache-manager/game.cache.service.js.map +0 -1
- package/dist/server/oracle/redis-cache-manager/game.progress.d.ts +0 -4
- package/dist/server/oracle/redis-cache-manager/game.progress.js +0 -27
- package/dist/server/oracle/redis-cache-manager/game.progress.js.map +0 -1
- package/dist/server/oracle/redis-cache-manager/market.cache.service.d.ts +0 -87
- package/dist/server/oracle/redis-cache-manager/market.cache.service.js +0 -139
- package/dist/server/oracle/redis-cache-manager/market.cache.service.js.map +0 -1
- package/dist/server/utils/game_progress/caclulate.game.progress.d.ts +0 -6
- package/dist/server/utils/game_progress/caclulate.game.progress.js +0 -96
- package/dist/server/utils/game_progress/caclulate.game.progress.js.map +0 -1
- package/dist/server/utils/game_progress/game.utils.d.ts +0 -2
- package/dist/server/utils/game_progress/game.utils.js +0 -65
- package/dist/server/utils/game_progress/game.utils.js.map +0 -1
- package/dist/server/utils/game_progress/index.d.ts +0 -5
- package/dist/server/utils/game_progress/index.js +0 -84
- package/dist/server/utils/game_progress/index.js.map +0 -1
- package/dist/server/utils/game_progress/parser.js.map +0 -1
|
@@ -0,0 +1,436 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.dropGameIndex = exports.searchGames = exports.getScoresCacheBatch = exports.getScoreCache = exports.setScoreCache = exports.updateGameCache = exports.createGameIndex = void 0;
|
|
7
|
+
const winston_1 = __importDefault(require("../../config/winston"));
|
|
8
|
+
const cache_keys_utils_1 = require("./cache.keys.utils");
|
|
9
|
+
// =====================================================
|
|
10
|
+
// GAME INDEX SCHEMA
|
|
11
|
+
// =====================================================
|
|
12
|
+
// Schema version - increment when schema changes to trigger re-indexing
|
|
13
|
+
const GAME_INDEX_SCHEMA_VERSION = 1;
|
|
14
|
+
/**
|
|
15
|
+
* Expected schema fields for validation
|
|
16
|
+
*/
|
|
17
|
+
const GAME_INDEX_SCHEMA = [
|
|
18
|
+
"objectId",
|
|
19
|
+
"TAG",
|
|
20
|
+
"gameId",
|
|
21
|
+
"NUMERIC",
|
|
22
|
+
"chainId",
|
|
23
|
+
"NUMERIC",
|
|
24
|
+
"gamePhase",
|
|
25
|
+
"TAG",
|
|
26
|
+
"sportGroup",
|
|
27
|
+
"TAG",
|
|
28
|
+
"paused",
|
|
29
|
+
"TAG",
|
|
30
|
+
"levrFixtureId",
|
|
31
|
+
"TAG",
|
|
32
|
+
"opticOddsFixtureId",
|
|
33
|
+
"TAG",
|
|
34
|
+
"tournamentObjectId",
|
|
35
|
+
"TAG",
|
|
36
|
+
"leagueObjectId",
|
|
37
|
+
"TAG",
|
|
38
|
+
"lsportsFixtureId",
|
|
39
|
+
"TAG",
|
|
40
|
+
"liveScoreMatchId",
|
|
41
|
+
"TAG",
|
|
42
|
+
"fixtureObjectId",
|
|
43
|
+
"TAG",
|
|
44
|
+
];
|
|
45
|
+
/**
|
|
46
|
+
* Validates if existing index schema matches expected schema
|
|
47
|
+
*/
|
|
48
|
+
const validateIndexSchema = (indexInfo, expectedSchema) => {
|
|
49
|
+
try {
|
|
50
|
+
// FT.INFO returns array with alternating key-value pairs
|
|
51
|
+
// Find the "attributes" section which contains field definitions
|
|
52
|
+
const attributesIndex = indexInfo.indexOf("attributes");
|
|
53
|
+
if (attributesIndex === -1 || attributesIndex + 1 >= indexInfo.length) {
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
const attributes = indexInfo[attributesIndex + 1];
|
|
57
|
+
if (!Array.isArray(attributes)) {
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
// Extract field names from attributes
|
|
61
|
+
const existingFields = new Set();
|
|
62
|
+
for (const attr of attributes) {
|
|
63
|
+
if (Array.isArray(attr)) {
|
|
64
|
+
// Field name is typically the first element or after "identifier"
|
|
65
|
+
const identifierIndex = attr.indexOf("identifier");
|
|
66
|
+
if (identifierIndex !== -1 && identifierIndex + 1 < attr.length) {
|
|
67
|
+
existingFields.add(attr[identifierIndex + 1]);
|
|
68
|
+
}
|
|
69
|
+
else if (typeof attr[0] === "string") {
|
|
70
|
+
existingFields.add(attr[0]);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
// Check if all expected fields exist
|
|
75
|
+
const expectedFields = expectedSchema.filter((_, i) => i % 2 === 0); // Get field names (even indices)
|
|
76
|
+
for (const field of expectedFields) {
|
|
77
|
+
if (!existingFields.has(field)) {
|
|
78
|
+
winston_1.default.info(`Missing field in index: ${field}`);
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return true;
|
|
83
|
+
}
|
|
84
|
+
catch (error) {
|
|
85
|
+
winston_1.default.warn("Error validating index schema", error);
|
|
86
|
+
return false;
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
/**
|
|
90
|
+
* Create game index with proper schema.
|
|
91
|
+
* Validates existing index schema and recreates if schema has changed.
|
|
92
|
+
*/
|
|
93
|
+
const createGameIndex = async (redis) => {
|
|
94
|
+
// Check if index already exists
|
|
95
|
+
const indexInfo = (await redis.call("FT.INFO", cache_keys_utils_1.game_index_name).catch(() => null));
|
|
96
|
+
if (indexInfo) {
|
|
97
|
+
// Validate existing schema matches expected schema
|
|
98
|
+
const schemaValid = validateIndexSchema(indexInfo, GAME_INDEX_SCHEMA);
|
|
99
|
+
if (schemaValid) {
|
|
100
|
+
winston_1.default.info(`Index ${cache_keys_utils_1.game_index_name} exists with valid schema (v${GAME_INDEX_SCHEMA_VERSION})`);
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
// Schema mismatch - drop and recreate
|
|
104
|
+
winston_1.default.info(`Index ${cache_keys_utils_1.game_index_name} schema mismatch, dropping and recreating...`);
|
|
105
|
+
await redis.call("FT.DROPINDEX", cache_keys_utils_1.game_index_name, "DD").catch((err) => {
|
|
106
|
+
// DD flag drops associated documents too - use without DD to keep data
|
|
107
|
+
winston_1.default.warn(`Error dropping index with DD flag, trying without: ${err}`);
|
|
108
|
+
return redis.call("FT.DROPINDEX", cache_keys_utils_1.game_index_name);
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
await redis.call("FT.CREATE", cache_keys_utils_1.game_index_name, "ON", "HASH", "PREFIX", "1", cache_keys_utils_1.levrGamesHashKey, "SCHEMA", ...GAME_INDEX_SCHEMA);
|
|
112
|
+
winston_1.default.info(`Created index: ${cache_keys_utils_1.game_index_name} (v${GAME_INDEX_SCHEMA_VERSION})`);
|
|
113
|
+
};
|
|
114
|
+
exports.createGameIndex = createGameIndex;
|
|
115
|
+
/** Maximum games per pipeline batch to avoid memory/timeout issues */
|
|
116
|
+
const PIPELINE_BATCH_SIZE = 500;
|
|
117
|
+
/**
|
|
118
|
+
* Updates the Redis cache with an array of LevrGame objects using pipelined batch operations.
|
|
119
|
+
*
|
|
120
|
+
* @param redis - The Redis client instance used for cache operations
|
|
121
|
+
* @param games - An array of LevrGame objects to be cached
|
|
122
|
+
* @returns A Promise resolving to UpdateGameCacheResult with success/failure counts
|
|
123
|
+
*
|
|
124
|
+
* @remarks
|
|
125
|
+
* This function uses Redis pipelining to efficiently batch multiple HSET operations,
|
|
126
|
+
* reducing network round trips. Large arrays are chunked to avoid memory/timeout issues.
|
|
127
|
+
* Each game is stored as a Redis hash with a key generated from the game's objectId.
|
|
128
|
+
* Date fields are converted to timestamps, booleans to "1"/"0" strings, and numbers to strings.
|
|
129
|
+
*
|
|
130
|
+
* @example
|
|
131
|
+
* ```typescript
|
|
132
|
+
* const redis = new Redis();
|
|
133
|
+
* const games: LevrGame[] = [...];
|
|
134
|
+
* const result = await updateGameCache(redis, games);
|
|
135
|
+
* console.log(`Updated ${result.success}/${result.total} games`);
|
|
136
|
+
* ```
|
|
137
|
+
*/
|
|
138
|
+
const updateGameCache = async (redis, games) => {
|
|
139
|
+
const result = {
|
|
140
|
+
success: 0,
|
|
141
|
+
failed: [],
|
|
142
|
+
total: games.length,
|
|
143
|
+
};
|
|
144
|
+
if (games.length === 0) {
|
|
145
|
+
return result;
|
|
146
|
+
}
|
|
147
|
+
// Process in batches to avoid memory/timeout issues
|
|
148
|
+
for (let i = 0; i < games.length; i += PIPELINE_BATCH_SIZE) {
|
|
149
|
+
const batch = games.slice(i, i + PIPELINE_BATCH_SIZE);
|
|
150
|
+
const pipeline = redis.pipeline();
|
|
151
|
+
const batchKeys = [];
|
|
152
|
+
for (const game of batch) {
|
|
153
|
+
const key = (0, cache_keys_utils_1.getGameHashKey)(game.objectId);
|
|
154
|
+
batchKeys.push(game.objectId);
|
|
155
|
+
pipeline.hset(key, {
|
|
156
|
+
objectId: game.objectId,
|
|
157
|
+
gameId: game.gameId.toString(),
|
|
158
|
+
txHash: game.txHash,
|
|
159
|
+
chainId: game.chainId.toString(),
|
|
160
|
+
seasonType: game.seasonType,
|
|
161
|
+
venue: game.venue,
|
|
162
|
+
eventName: game.eventName,
|
|
163
|
+
location: game.location,
|
|
164
|
+
venueLocation: game.venueLocation,
|
|
165
|
+
gameClock: game.gameClock,
|
|
166
|
+
gameProgressBps: game.gameProgressBps.toString(),
|
|
167
|
+
paused: game.paused ? "1" : "0",
|
|
168
|
+
fixtureDate: game.fixtureDate.getTime().toString(),
|
|
169
|
+
wentLiveAt: game.wentLiveAt?.getTime().toString() ?? "",
|
|
170
|
+
currentPeriod: game.currentPeriod.toString(),
|
|
171
|
+
actualDuration: game.actualDuration.toString(),
|
|
172
|
+
gamePhase: game.gamePhase,
|
|
173
|
+
levrFixtureId: game.levrFixtureId,
|
|
174
|
+
opticOddsFixtureId: game.opticOddsFixtureId ?? "",
|
|
175
|
+
lsportsFixtureId: game.lsportsFixtureId ?? "",
|
|
176
|
+
liveScoreMatchId: game.liveScoreMatchId ?? "",
|
|
177
|
+
sportGroup: game.sportGroup,
|
|
178
|
+
tournamentObjectId: game.tournamentObjectId,
|
|
179
|
+
fixtureObjectId: game.fixtureObjectId,
|
|
180
|
+
leagueObjectId: game.leagueObjectId,
|
|
181
|
+
homeTeam: game.homeTeam,
|
|
182
|
+
awayTeam: game.awayTeam,
|
|
183
|
+
createdAt: game.createdAt.getTime().toString(),
|
|
184
|
+
updatedAt: game.updatedAt.getTime().toString(),
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
const execResults = await pipeline.exec();
|
|
188
|
+
// Check for errors in pipeline results
|
|
189
|
+
// pipeline.exec() returns Array<[Error | null, unknown]>
|
|
190
|
+
if (execResults) {
|
|
191
|
+
for (let j = 0; j < execResults.length; j++) {
|
|
192
|
+
const execResult = execResults[j];
|
|
193
|
+
if (!execResult)
|
|
194
|
+
continue;
|
|
195
|
+
const [err] = execResult;
|
|
196
|
+
const objectId = batchKeys[j];
|
|
197
|
+
if (err) {
|
|
198
|
+
if (objectId)
|
|
199
|
+
result.failed.push(objectId);
|
|
200
|
+
winston_1.default.warn(`Failed to cache game ${objectId}`, err);
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
result.success++;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
if (result.failed.length > 0) {
|
|
209
|
+
winston_1.default.warn(`Updated ${result.success}/${result.total} game(s) in cache. Failed: ${result.failed.length}`);
|
|
210
|
+
}
|
|
211
|
+
else {
|
|
212
|
+
winston_1.default.info(`Updated ${result.success} game(s) in cache`);
|
|
213
|
+
}
|
|
214
|
+
return result;
|
|
215
|
+
};
|
|
216
|
+
exports.updateGameCache = updateGameCache;
|
|
217
|
+
// =====================================================
|
|
218
|
+
// SCORES CACHE FUNCTIONS
|
|
219
|
+
// =====================================================
|
|
220
|
+
/**
|
|
221
|
+
* Set a game score in the Redis cache
|
|
222
|
+
* @param redis - Redis client instance
|
|
223
|
+
* @param gameObjectId - The game object ID to key the score
|
|
224
|
+
* @param score - The LevrScores object to cache
|
|
225
|
+
*/
|
|
226
|
+
const setScoreCache = async (redis, gameObjectId, score) => {
|
|
227
|
+
const key = (0, cache_keys_utils_1.getScoreHashKey)(gameObjectId);
|
|
228
|
+
await redis.set(key, JSON.stringify(score));
|
|
229
|
+
};
|
|
230
|
+
exports.setScoreCache = setScoreCache;
|
|
231
|
+
/**
|
|
232
|
+
* Get a game score from the Redis cache
|
|
233
|
+
* @param redis - Redis client instance
|
|
234
|
+
* @param gameObjectId - The game object ID to retrieve
|
|
235
|
+
* @returns The LevrScores object or null if not found
|
|
236
|
+
*/
|
|
237
|
+
const getScoreCache = async (redis, gameObjectId) => {
|
|
238
|
+
const key = (0, cache_keys_utils_1.getScoreHashKey)(gameObjectId);
|
|
239
|
+
const data = await redis.get(key);
|
|
240
|
+
return data ? JSON.parse(data) : null;
|
|
241
|
+
};
|
|
242
|
+
exports.getScoreCache = getScoreCache;
|
|
243
|
+
/**
|
|
244
|
+
* Get multiple game scores from the Redis cache
|
|
245
|
+
* @param redis - Redis client instance
|
|
246
|
+
* @param gameObjectIds - Array of game object IDs to retrieve
|
|
247
|
+
* @returns Map of gameObjectId to LevrScores
|
|
248
|
+
*/
|
|
249
|
+
const getScoresCacheBatch = async (redis, gameObjectIds) => {
|
|
250
|
+
const result = new Map();
|
|
251
|
+
if (gameObjectIds.length === 0)
|
|
252
|
+
return result;
|
|
253
|
+
const pipeline = redis.pipeline();
|
|
254
|
+
for (const gameObjectId of gameObjectIds) {
|
|
255
|
+
pipeline.get((0, cache_keys_utils_1.getScoreHashKey)(gameObjectId));
|
|
256
|
+
}
|
|
257
|
+
const execResults = await pipeline.exec();
|
|
258
|
+
if (execResults) {
|
|
259
|
+
for (let i = 0; i < execResults.length; i++) {
|
|
260
|
+
const execResult = execResults[i];
|
|
261
|
+
const gameObjectId = gameObjectIds[i];
|
|
262
|
+
if (!execResult || !gameObjectId)
|
|
263
|
+
continue;
|
|
264
|
+
const [err, data] = execResult;
|
|
265
|
+
if (err || !data)
|
|
266
|
+
continue;
|
|
267
|
+
result.set(gameObjectId, JSON.parse(data));
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
return result;
|
|
271
|
+
};
|
|
272
|
+
exports.getScoresCacheBatch = getScoresCacheBatch;
|
|
273
|
+
const searchGames = async (redis, params) => {
|
|
274
|
+
const { gameId, objectId, gamePhase, paused, levrFixtureId, chainId, lsportsFixtureId, opticOddsFixtureId, liveScoreMatchId, tournamentObjectId, leagueObjectId, fixtureObjectId, sportGroup, limit, offset, } = params;
|
|
275
|
+
const filters = [];
|
|
276
|
+
// NUMERIC field exact match (RediSearch syntax: @field:[value value] where min=max)
|
|
277
|
+
if (gameId !== undefined) {
|
|
278
|
+
filters.push(`@gameId:[${gameId} ${gameId}]`);
|
|
279
|
+
}
|
|
280
|
+
if (chainId !== undefined) {
|
|
281
|
+
filters.push(`@chainId:[${chainId} ${chainId}]`);
|
|
282
|
+
}
|
|
283
|
+
// Tag filters (exact match)
|
|
284
|
+
if (gamePhase !== undefined) {
|
|
285
|
+
filters.push(`@gamePhase:{${gamePhase}}`);
|
|
286
|
+
}
|
|
287
|
+
if (objectId) {
|
|
288
|
+
filters.push(`@objectId:{${objectId}}`);
|
|
289
|
+
}
|
|
290
|
+
if (sportGroup !== undefined) {
|
|
291
|
+
filters.push(`@sportGroup:{${sportGroup}}`);
|
|
292
|
+
}
|
|
293
|
+
if (paused !== undefined) {
|
|
294
|
+
filters.push(`@paused:{${paused === 1 ? "1" : "0"}}`);
|
|
295
|
+
}
|
|
296
|
+
if (levrFixtureId) {
|
|
297
|
+
filters.push(`@levrFixtureId:{${levrFixtureId}}`);
|
|
298
|
+
}
|
|
299
|
+
if (opticOddsFixtureId) {
|
|
300
|
+
filters.push(`@opticOddsFixtureId:{${opticOddsFixtureId}}`);
|
|
301
|
+
}
|
|
302
|
+
if (lsportsFixtureId) {
|
|
303
|
+
filters.push(`@lsportsFixtureId:{${lsportsFixtureId}}`);
|
|
304
|
+
}
|
|
305
|
+
if (liveScoreMatchId) {
|
|
306
|
+
filters.push(`@liveScoreMatchId:{${liveScoreMatchId}}`);
|
|
307
|
+
}
|
|
308
|
+
if (tournamentObjectId) {
|
|
309
|
+
filters.push(`@tournamentObjectId:{${tournamentObjectId}}`);
|
|
310
|
+
}
|
|
311
|
+
if (leagueObjectId) {
|
|
312
|
+
filters.push(`@leagueObjectId:{${leagueObjectId}}`);
|
|
313
|
+
}
|
|
314
|
+
if (fixtureObjectId) {
|
|
315
|
+
filters.push(`@fixtureObjectId:{${fixtureObjectId}}`);
|
|
316
|
+
}
|
|
317
|
+
// Combine into one query (AND). If no filters, wildcard (*).
|
|
318
|
+
const query = filters.length ? filters.join(" ") : "*";
|
|
319
|
+
// Execute the search
|
|
320
|
+
let result;
|
|
321
|
+
try {
|
|
322
|
+
if (limit) {
|
|
323
|
+
const offset_ = offset ?? 0;
|
|
324
|
+
result = await redis.call("FT.SEARCH", cache_keys_utils_1.game_index_name, query, "LIMIT", offset_, limit);
|
|
325
|
+
}
|
|
326
|
+
else {
|
|
327
|
+
result = await redis.call("FT.SEARCH", cache_keys_utils_1.game_index_name, query);
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
catch (error) {
|
|
331
|
+
winston_1.default.error("Error searching games", error);
|
|
332
|
+
return { games: [], total: 0, error: error instanceof Error ? error.message : "Search failed" };
|
|
333
|
+
}
|
|
334
|
+
if (!Array.isArray(result) || result.length === 0) {
|
|
335
|
+
return { games: [], total: 0 };
|
|
336
|
+
}
|
|
337
|
+
// First element is total count, then alternating key/fields pairs
|
|
338
|
+
const totalCount = result[0];
|
|
339
|
+
const items = result.slice(1);
|
|
340
|
+
const games = [];
|
|
341
|
+
// Helper to get value from parsed object
|
|
342
|
+
const get = (obj, key) => obj[key] ?? "";
|
|
343
|
+
// Parse results array: [count, key1, fields1, key2, fields2, ...]
|
|
344
|
+
for (let i = 0; i < items.length; i += 2) {
|
|
345
|
+
const fieldsArr = items[i + 1];
|
|
346
|
+
const obj = {};
|
|
347
|
+
if (Array.isArray(fieldsArr)) {
|
|
348
|
+
for (let j = 0; j < fieldsArr.length; j += 2) {
|
|
349
|
+
const key = fieldsArr[j];
|
|
350
|
+
const value = fieldsArr[j + 1];
|
|
351
|
+
if (key && value !== undefined) {
|
|
352
|
+
obj[key] = value;
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
// Convert stored attributes back into LevrGame shape
|
|
357
|
+
// Handle empty string as null for optional fields
|
|
358
|
+
const parseOptionalTimestamp = (val) => {
|
|
359
|
+
if (!val || val === "" || val === "0")
|
|
360
|
+
return null;
|
|
361
|
+
const num = Number(val);
|
|
362
|
+
return Number.isNaN(num) ? null : new Date(num);
|
|
363
|
+
};
|
|
364
|
+
games.push({
|
|
365
|
+
objectId: get(obj, "objectId"),
|
|
366
|
+
gameId: Number(get(obj, "gameId")),
|
|
367
|
+
txHash: get(obj, "txHash"),
|
|
368
|
+
chainId: Number(get(obj, "chainId")),
|
|
369
|
+
seasonType: get(obj, "seasonType"),
|
|
370
|
+
venue: get(obj, "venue"),
|
|
371
|
+
eventName: get(obj, "eventName"),
|
|
372
|
+
location: get(obj, "location"),
|
|
373
|
+
venueLocation: get(obj, "venueLocation"),
|
|
374
|
+
gameClock: get(obj, "gameClock"),
|
|
375
|
+
gameProgressBps: Number(get(obj, "gameProgressBps")),
|
|
376
|
+
paused: get(obj, "paused") === "1",
|
|
377
|
+
fixtureDate: new Date(Number(get(obj, "fixtureDate"))),
|
|
378
|
+
wentLiveAt: parseOptionalTimestamp(get(obj, "wentLiveAt")),
|
|
379
|
+
homeTeam: get(obj, "homeTeam"),
|
|
380
|
+
awayTeam: get(obj, "awayTeam"),
|
|
381
|
+
currentPeriod: Number(get(obj, "currentPeriod")),
|
|
382
|
+
actualDuration: Number(get(obj, "actualDuration")),
|
|
383
|
+
gamePhase: get(obj, "gamePhase"),
|
|
384
|
+
levrFixtureId: get(obj, "levrFixtureId"),
|
|
385
|
+
opticOddsFixtureId: get(obj, "opticOddsFixtureId") || null,
|
|
386
|
+
lsportsFixtureId: get(obj, "lsportsFixtureId") || null,
|
|
387
|
+
liveScoreMatchId: get(obj, "liveScoreMatchId") || null,
|
|
388
|
+
sportGroup: get(obj, "sportGroup"),
|
|
389
|
+
tournamentObjectId: get(obj, "tournamentObjectId"),
|
|
390
|
+
fixtureObjectId: get(obj, "fixtureObjectId"),
|
|
391
|
+
leagueObjectId: get(obj, "leagueObjectId"),
|
|
392
|
+
createdAt: new Date(Number(get(obj, "createdAt"))),
|
|
393
|
+
updatedAt: new Date(Number(get(obj, "updatedAt"))),
|
|
394
|
+
});
|
|
395
|
+
}
|
|
396
|
+
return { games, total: totalCount };
|
|
397
|
+
};
|
|
398
|
+
exports.searchGames = searchGames;
|
|
399
|
+
/**
|
|
400
|
+
* Drop game search index
|
|
401
|
+
* @param redis - Redis client instance
|
|
402
|
+
* @returns Result object with dropped, notFound, and failed indices
|
|
403
|
+
*/
|
|
404
|
+
const dropGameIndex = async (redis) => {
|
|
405
|
+
const result = {
|
|
406
|
+
dropped: [],
|
|
407
|
+
notFound: [],
|
|
408
|
+
failed: [],
|
|
409
|
+
};
|
|
410
|
+
// Game index managed by this module
|
|
411
|
+
const indices = [cache_keys_utils_1.game_index_name];
|
|
412
|
+
for (const idx of indices) {
|
|
413
|
+
try {
|
|
414
|
+
await redis.call("FT.DROPINDEX", idx);
|
|
415
|
+
result.dropped.push(idx);
|
|
416
|
+
}
|
|
417
|
+
catch (error) {
|
|
418
|
+
// Redis returns error if index doesn't exist
|
|
419
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
420
|
+
if (errorMsg.includes("Unknown index name") || errorMsg.includes("no such index")) {
|
|
421
|
+
result.notFound.push(idx);
|
|
422
|
+
winston_1.default.warn(`Index ${idx} does not exist`);
|
|
423
|
+
}
|
|
424
|
+
else {
|
|
425
|
+
result.failed.push(idx);
|
|
426
|
+
winston_1.default.error(`Failed to drop index ${idx}`, error);
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
if (result.dropped.length > 0) {
|
|
431
|
+
winston_1.default.info(`Dropped game index: ${result.dropped.join(", ")}`);
|
|
432
|
+
}
|
|
433
|
+
return result;
|
|
434
|
+
};
|
|
435
|
+
exports.dropGameIndex = dropGameIndex;
|
|
436
|
+
//# sourceMappingURL=game.query.engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"game.query.engine.js","sourceRoot":"","sources":["../../../../src/server/oracle/redis-cache-manager/game.query.engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export * from "./cache.keys.utils";
|
|
2
2
|
export * from "./channels";
|
|
3
|
-
export * from "./game.
|
|
4
|
-
export * from "./market.cache.service";
|
|
3
|
+
export * from "./game.query.engine";
|
|
5
4
|
export * from "./leagues.cache.service";
|
|
6
|
-
export * from "./
|
|
5
|
+
export * from "./market.query.engine";
|
|
@@ -16,8 +16,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./cache.keys.utils"), exports);
|
|
18
18
|
__exportStar(require("./channels"), exports);
|
|
19
|
-
__exportStar(require("./game.
|
|
20
|
-
__exportStar(require("./market.cache.service"), exports);
|
|
19
|
+
__exportStar(require("./game.query.engine"), exports);
|
|
21
20
|
__exportStar(require("./leagues.cache.service"), exports);
|
|
22
|
-
__exportStar(require("./
|
|
21
|
+
__exportStar(require("./market.query.engine"), exports);
|
|
23
22
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/server/oracle/redis-cache-manager/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAkC;AAClC,6CAA0B;AAC1B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/server/oracle/redis-cache-manager/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAkC;AAClC,6CAA0B;AAC1B,sDAAmC;AACnC,0DAAuC;AACvC,wDAAqC"}
|