@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
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"game.cache.service.js","sourceRoot":"","sources":["../../../../src/server/oracle/redis-cache-manager/game.cache.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import Redis from "ioredis";
|
|
2
|
-
export declare const saveGameProgressToCache: (gameObjectId: string, progressBPS: number, redisClient: Redis) => Promise<void>;
|
|
3
|
-
export declare const getAllGameProgressFromCache: (gameObjectId: string, redisClient: Redis) => Promise<number[]>;
|
|
4
|
-
export declare const getLatestGameProgressFromCache: (gameObjectId: string, redisClient: Redis) => Promise<number | null>;
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getLatestGameProgressFromCache = exports.getAllGameProgressFromCache = exports.saveGameProgressToCache = void 0;
|
|
4
|
-
const cacheKey = `game-progress:test:`;
|
|
5
|
-
const getCacheKey = (gameObjectId) => {
|
|
6
|
-
return `${cacheKey}${gameObjectId}`;
|
|
7
|
-
};
|
|
8
|
-
const saveGameProgressToCache = async (gameObjectId, progressBPS, redisClient) => {
|
|
9
|
-
const cacheKey = getCacheKey(gameObjectId);
|
|
10
|
-
await redisClient.lpush(cacheKey, progressBPS.toString());
|
|
11
|
-
};
|
|
12
|
-
exports.saveGameProgressToCache = saveGameProgressToCache;
|
|
13
|
-
const getAllGameProgressFromCache = async (gameObjectId, redisClient) => {
|
|
14
|
-
const cacheKey = getCacheKey(gameObjectId);
|
|
15
|
-
const results = await redisClient.lrange(cacheKey, 0, -1);
|
|
16
|
-
return results.map((val) => parseInt(val, 10));
|
|
17
|
-
};
|
|
18
|
-
exports.getAllGameProgressFromCache = getAllGameProgressFromCache;
|
|
19
|
-
const getLatestGameProgressFromCache = async (gameObjectId, redisClient) => {
|
|
20
|
-
const cacheKey = getCacheKey(gameObjectId);
|
|
21
|
-
const result = await redisClient.lindex(cacheKey, 0);
|
|
22
|
-
if (result === null)
|
|
23
|
-
return null;
|
|
24
|
-
return parseInt(result, 10);
|
|
25
|
-
};
|
|
26
|
-
exports.getLatestGameProgressFromCache = getLatestGameProgressFromCache;
|
|
27
|
-
//# sourceMappingURL=game.progress.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"game.progress.js","sourceRoot":"","sources":["../../../../src/server/oracle/redis-cache-manager/game.progress.ts"],"names":[],"mappings":";;;AAIA,MAAM,QAAQ,GAAG,qBAAqB,CAAA;AAEtC,MAAM,WAAW,GAAG,CAAC,YAAoB,EAAU,EAAE;IACjD,OAAO,GAAG,QAAQ,GAAG,YAAY,EAAE,CAAA;AACvC,CAAC,CAAA;AAEM,MAAM,uBAAuB,GAAG,KAAK,EAAE,YAAoB,EAAE,WAAmB,EAAE,WAAkB,EAAE,EAAE;IAC3G,MAAM,QAAQ,GAAG,WAAW,CAAC,YAAY,CAAC,CAAA;IAC1C,MAAM,WAAW,CAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAA;AAC7D,CAAC,CAAA;AAHY,QAAA,uBAAuB,2BAGnC;AAEM,MAAM,2BAA2B,GAAG,KAAK,EAAE,YAAoB,EAAE,WAAkB,EAAqB,EAAE;IAC7G,MAAM,QAAQ,GAAG,WAAW,CAAC,YAAY,CAAC,CAAA;IAC1C,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACzD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAA;AAClD,CAAC,CAAA;AAJY,QAAA,2BAA2B,+BAIvC;AAEM,MAAM,8BAA8B,GAAG,KAAK,EAAE,YAAoB,EAAE,WAAkB,EAA0B,EAAE;IACrH,MAAM,QAAQ,GAAG,WAAW,CAAC,YAAY,CAAC,CAAA;IAC1C,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;IACpD,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IAChC,OAAO,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;AAC/B,CAAC,CAAA;AALY,QAAA,8BAA8B,kCAK1C"}
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
import { Market, MarketType, Odds } from "@prisma/client";
|
|
2
|
-
import { Redis } from "ioredis";
|
|
3
|
-
import { MarketWithRelations } from "../../../core";
|
|
4
|
-
/**
|
|
5
|
-
* A collection of functions to manage market and odds data in Redis cache
|
|
6
|
-
* These functions handle operations like setting, getting, and invalidating market data and odds
|
|
7
|
-
*/
|
|
8
|
-
/**
|
|
9
|
-
* Sets market data in Redis cache using hash structure
|
|
10
|
-
* @param redis - Redis client instance
|
|
11
|
-
* @param market - Market object to be cached
|
|
12
|
-
* @dev This function stores market data in a hash where the key is derived from the game unique identifier (gameUniqueIdentifier)
|
|
13
|
-
* and the field is the market type (e.g., Fulltime, Halftime).
|
|
14
|
-
* The market data is serialized to JSON format before being stored.
|
|
15
|
-
* This allows for efficient retrieval of market data by game and market type.
|
|
16
|
-
* @returns {Promise<void>} - Resolves when the operation is complete
|
|
17
|
-
*/
|
|
18
|
-
export declare const setMarketDataCache: (redis: Redis, markets: Market[]) => Promise<void>;
|
|
19
|
-
/**
|
|
20
|
-
* @dev this function sets only a map of game unique identifiers to their completed markets game unique identifiers
|
|
21
|
-
* FullTime:Completed => {"gameUniqueIdentifier1:Fulltime": gameUniqueIdentifier1, "gameUniqueIdentifier2:Fulltime", "gameUniqueIdentifier2"}
|
|
22
|
-
* by market type in Redis cache.
|
|
23
|
-
* It allows for efficient retrieval of completed markets by their game unique identifier and market type.
|
|
24
|
-
* Sets the completed markets keys and fields in Redis cache
|
|
25
|
-
* This enables efficient retrieval of completed markets by their game unique identifier and market type
|
|
26
|
-
* @param redis - Redis client instance
|
|
27
|
-
* @param gameUniqueIdentifier - Unique identifier for the game
|
|
28
|
-
* @param marketType - Type of market (e.g., Fulltime)
|
|
29
|
-
* @audit @dev might look into the field, seems this operations could be simpler
|
|
30
|
-
*/
|
|
31
|
-
export declare const setCompletedMarketsKeysAndFields: (redis: Redis, markets: Market[]) => Promise<void>;
|
|
32
|
-
/**
|
|
33
|
-
* Retrieves completed markets data for multiple games
|
|
34
|
-
* @param redis - Redis client instance
|
|
35
|
-
* @param gameUniqueIdentifiers - Array of game unique identifiers
|
|
36
|
-
* @param marketType - Type of market to retrieve
|
|
37
|
-
* @returns Array of Market objects or null if none found
|
|
38
|
-
*/
|
|
39
|
-
export declare const getCompletedMarkets: (redis: Redis, marketType: MarketType) => Promise<Market[] | null>;
|
|
40
|
-
/**
|
|
41
|
-
* Retrieves market data from cache for a specific game and market type
|
|
42
|
-
* @param redis - Redis client instance
|
|
43
|
-
* @param gameUniqueIdentifier - Unique identifier for the game
|
|
44
|
-
* @param marketType - Type of market to retrieve
|
|
45
|
-
* @returns Market object or null if not found
|
|
46
|
-
*/
|
|
47
|
-
export declare const getMarketDataCache: (redis: Redis, gameUniqueIdentifier: string, marketType: MarketType) => Promise<Market | null>;
|
|
48
|
-
/**
|
|
49
|
-
* Retrieves market data with associated odds for multiple games and market types
|
|
50
|
-
* @param redis - Redis client instance
|
|
51
|
-
* @param query - Array of query objects with gameUniqueIdentifier and marketType
|
|
52
|
-
* @returns Map of game IDs to their markets with odds
|
|
53
|
-
*/
|
|
54
|
-
export declare const getMarketDataCacheWithOdds: (redis: Redis, query: Array<{
|
|
55
|
-
gameUniqueIdentifier: string;
|
|
56
|
-
marketType: MarketType;
|
|
57
|
-
}>) => Promise<Record<string, MarketWithRelations[]>>;
|
|
58
|
-
/**
|
|
59
|
-
* Retrieves all odds from cache for a specific game and market type
|
|
60
|
-
* @param redis - Redis client instance
|
|
61
|
-
* @param gameUniqueIdentifier - Unique identifier for the game
|
|
62
|
-
* @param marketType - Type of market
|
|
63
|
-
* @returns Array of Odds objects
|
|
64
|
-
*/
|
|
65
|
-
export declare const getOddsCache: (redis: Redis, gameUniqueIdentifier: string, marketType: MarketType) => Promise<Odds[]>;
|
|
66
|
-
/**
|
|
67
|
-
* Retrieves the latest odds from cache for a specific game and market type
|
|
68
|
-
* @param redis - Redis client instance
|
|
69
|
-
* @param gameUniqueIdentifier - Unique identifier for the game
|
|
70
|
-
* @param marketType - Type of market
|
|
71
|
-
* @returns Latest Odds object or null if not found
|
|
72
|
-
*/
|
|
73
|
-
export declare const getLatestOddsCache: (redis: Redis, gameUniqueIdentifier: string, marketType: MarketType) => Promise<Odds | null>;
|
|
74
|
-
/**
|
|
75
|
-
* Invalidates the market odds cache for a specific game and market
|
|
76
|
-
* @param gameUniqueIdentifier - Unique identifier for the game
|
|
77
|
-
* @param marketType - Type of market
|
|
78
|
-
*/
|
|
79
|
-
export declare const invalidateMarketOddsCache: (redis: Redis, gameUniqueIdentifier: string, marketType: MarketType) => Promise<void>;
|
|
80
|
-
/**
|
|
81
|
-
* Adds new odds to the cache for a specific game and market type
|
|
82
|
-
* @param redis - Redis client instance
|
|
83
|
-
* @param gameUniqueIdentifier - Unique identifier for the game
|
|
84
|
-
* @param marketType - Type of market
|
|
85
|
-
* @param odds - Array of new odds to add
|
|
86
|
-
*/
|
|
87
|
-
export declare const addOddsCache: (redis: Redis, gameUniqueIdentifier: string, marketType: MarketType, odds: Odds[]) => Promise<void>;
|
|
@@ -1,139 +0,0 @@
|
|
|
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.addOddsCache = exports.invalidateMarketOddsCache = exports.getLatestOddsCache = exports.getOddsCache = exports.getMarketDataCacheWithOdds = exports.getMarketDataCache = exports.getCompletedMarkets = exports.setCompletedMarketsKeysAndFields = exports.setMarketDataCache = void 0;
|
|
7
|
-
const client_1 = require("@prisma/client");
|
|
8
|
-
const winston_1 = __importDefault(require("../../config/winston"));
|
|
9
|
-
const cache_keys_utils_1 = require("./cache.keys.utils");
|
|
10
|
-
const market_query_engine_1 = require("./market.query.engine");
|
|
11
|
-
/**
|
|
12
|
-
* A collection of functions to manage market and odds data in Redis cache
|
|
13
|
-
* These functions handle operations like setting, getting, and invalidating market data and odds
|
|
14
|
-
*/
|
|
15
|
-
/**
|
|
16
|
-
* Sets market data in Redis cache using hash structure
|
|
17
|
-
* @param redis - Redis client instance
|
|
18
|
-
* @param market - Market object to be cached
|
|
19
|
-
* @dev This function stores market data in a hash where the key is derived from the game unique identifier (gameUniqueIdentifier)
|
|
20
|
-
* and the field is the market type (e.g., Fulltime, Halftime).
|
|
21
|
-
* The market data is serialized to JSON format before being stored.
|
|
22
|
-
* This allows for efficient retrieval of market data by game and market type.
|
|
23
|
-
* @returns {Promise<void>} - Resolves when the operation is complete
|
|
24
|
-
*/
|
|
25
|
-
const setMarketDataCache = async (redis, markets) => {
|
|
26
|
-
(0, market_query_engine_1.updateMarketCache)(redis, markets);
|
|
27
|
-
};
|
|
28
|
-
exports.setMarketDataCache = setMarketDataCache;
|
|
29
|
-
/**
|
|
30
|
-
* @dev this function sets only a map of game unique identifiers to their completed markets game unique identifiers
|
|
31
|
-
* FullTime:Completed => {"gameUniqueIdentifier1:Fulltime": gameUniqueIdentifier1, "gameUniqueIdentifier2:Fulltime", "gameUniqueIdentifier2"}
|
|
32
|
-
* by market type in Redis cache.
|
|
33
|
-
* It allows for efficient retrieval of completed markets by their game unique identifier and market type.
|
|
34
|
-
* Sets the completed markets keys and fields in Redis cache
|
|
35
|
-
* This enables efficient retrieval of completed markets by their game unique identifier and market type
|
|
36
|
-
* @param redis - Redis client instance
|
|
37
|
-
* @param gameUniqueIdentifier - Unique identifier for the game
|
|
38
|
-
* @param marketType - Type of market (e.g., Fulltime)
|
|
39
|
-
* @audit @dev might look into the field, seems this operations could be simpler
|
|
40
|
-
*/
|
|
41
|
-
const setCompletedMarketsKeysAndFields = async (redis, markets) => {
|
|
42
|
-
await (0, market_query_engine_1.updateMarketCache)(redis, markets);
|
|
43
|
-
};
|
|
44
|
-
exports.setCompletedMarketsKeysAndFields = setCompletedMarketsKeysAndFields;
|
|
45
|
-
/**
|
|
46
|
-
* Retrieves completed markets data for multiple games
|
|
47
|
-
* @param redis - Redis client instance
|
|
48
|
-
* @param gameUniqueIdentifiers - Array of game unique identifiers
|
|
49
|
-
* @param marketType - Type of market to retrieve
|
|
50
|
-
* @returns Array of Market objects or null if none found
|
|
51
|
-
*/
|
|
52
|
-
const getCompletedMarkets = async (redis, marketType) => {
|
|
53
|
-
const results = await (0, market_query_engine_1.searchMarkets)(redis, {
|
|
54
|
-
status: client_1.MarketStatus.Closed,
|
|
55
|
-
marketType: marketType,
|
|
56
|
-
});
|
|
57
|
-
return results.length > 0 ? results : null;
|
|
58
|
-
};
|
|
59
|
-
exports.getCompletedMarkets = getCompletedMarkets;
|
|
60
|
-
/**
|
|
61
|
-
* Retrieves market data from cache for a specific game and market type
|
|
62
|
-
* @param redis - Redis client instance
|
|
63
|
-
* @param gameUniqueIdentifier - Unique identifier for the game
|
|
64
|
-
* @param marketType - Type of market to retrieve
|
|
65
|
-
* @returns Market object or null if not found
|
|
66
|
-
*/
|
|
67
|
-
const getMarketDataCache = async (redis, gameUniqueIdentifier, marketType) => {
|
|
68
|
-
const value = await (0, market_query_engine_1.searchMarketsFallback)(redis, gameUniqueIdentifier, marketType);
|
|
69
|
-
if (!value)
|
|
70
|
-
return null;
|
|
71
|
-
return value;
|
|
72
|
-
};
|
|
73
|
-
exports.getMarketDataCache = getMarketDataCache;
|
|
74
|
-
/**
|
|
75
|
-
* Retrieves market data with associated odds for multiple games and market types
|
|
76
|
-
* @param redis - Redis client instance
|
|
77
|
-
* @param query - Array of query objects with gameUniqueIdentifier and marketType
|
|
78
|
-
* @returns Map of game IDs to their markets with odds
|
|
79
|
-
*/
|
|
80
|
-
const getMarketDataCacheWithOdds = async (redis, query) => {
|
|
81
|
-
try {
|
|
82
|
-
const results = await (0, market_query_engine_1.searchMultipleMarketsWithOddsFallback)(redis, query);
|
|
83
|
-
return results?.results || {};
|
|
84
|
-
}
|
|
85
|
-
catch (error) {
|
|
86
|
-
winston_1.default.error("Error getting market data cache with odds", error);
|
|
87
|
-
return {};
|
|
88
|
-
}
|
|
89
|
-
};
|
|
90
|
-
exports.getMarketDataCacheWithOdds = getMarketDataCacheWithOdds;
|
|
91
|
-
/**
|
|
92
|
-
* Retrieves all odds from cache for a specific game and market type
|
|
93
|
-
* @param redis - Redis client instance
|
|
94
|
-
* @param gameUniqueIdentifier - Unique identifier for the game
|
|
95
|
-
* @param marketType - Type of market
|
|
96
|
-
* @returns Array of Odds objects
|
|
97
|
-
*/
|
|
98
|
-
const getOddsCache = async (redis, gameUniqueIdentifier, marketType) => {
|
|
99
|
-
const data = await (0, market_query_engine_1.getOddsList)(redis, gameUniqueIdentifier, marketType);
|
|
100
|
-
return data;
|
|
101
|
-
};
|
|
102
|
-
exports.getOddsCache = getOddsCache;
|
|
103
|
-
/**
|
|
104
|
-
* Retrieves the latest odds from cache for a specific game and market type
|
|
105
|
-
* @param redis - Redis client instance
|
|
106
|
-
* @param gameUniqueIdentifier - Unique identifier for the game
|
|
107
|
-
* @param marketType - Type of market
|
|
108
|
-
* @returns Latest Odds object or null if not found
|
|
109
|
-
*/
|
|
110
|
-
const getLatestOddsCache = async (redis, gameUniqueIdentifier, marketType) => {
|
|
111
|
-
return await (0, market_query_engine_1.getLatestOdds)(redis, gameUniqueIdentifier, marketType);
|
|
112
|
-
};
|
|
113
|
-
exports.getLatestOddsCache = getLatestOddsCache;
|
|
114
|
-
/**
|
|
115
|
-
* Invalidates the market odds cache for a specific game and market
|
|
116
|
-
* @param gameUniqueIdentifier - Unique identifier for the game
|
|
117
|
-
* @param marketType - Type of market
|
|
118
|
-
*/
|
|
119
|
-
const invalidateMarketOddsCache = async (redis, gameUniqueIdentifier, marketType) => {
|
|
120
|
-
const key = cache_keys_utils_1.marketOddsKey;
|
|
121
|
-
const field = (0, cache_keys_utils_1.getMarketOddsField)(gameUniqueIdentifier, marketType);
|
|
122
|
-
const success = (await redis.hdel(key, field));
|
|
123
|
-
if (success <= cache_keys_utils_1.RedisNumStates.failure) {
|
|
124
|
-
winston_1.default.error(`Failed to invalidate market odds cache for game ${gameUniqueIdentifier} and market type ${marketType}`);
|
|
125
|
-
}
|
|
126
|
-
};
|
|
127
|
-
exports.invalidateMarketOddsCache = invalidateMarketOddsCache;
|
|
128
|
-
/**
|
|
129
|
-
* Adds new odds to the cache for a specific game and market type
|
|
130
|
-
* @param redis - Redis client instance
|
|
131
|
-
* @param gameUniqueIdentifier - Unique identifier for the game
|
|
132
|
-
* @param marketType - Type of market
|
|
133
|
-
* @param odds - Array of new odds to add
|
|
134
|
-
*/
|
|
135
|
-
const addOddsCache = async (redis, gameUniqueIdentifier, marketType, odds) => {
|
|
136
|
-
await (0, market_query_engine_1.addOddsToOddsCache)(redis, gameUniqueIdentifier, marketType, odds);
|
|
137
|
-
};
|
|
138
|
-
exports.addOddsCache = addOddsCache;
|
|
139
|
-
//# sourceMappingURL=market.cache.service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"market.cache.service.js","sourceRoot":"","sources":["../../../../src/server/oracle/redis-cache-manager/market.cache.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { SportGroup } from "@prisma/client";
|
|
2
|
-
import { OddsServices } from "../../../core";
|
|
3
|
-
export declare const calculateSoccerProgress: (currentPeriod: number, gameClock: string, sportGroup: SportGroup, provider: OddsServices) => number | null;
|
|
4
|
-
export declare const calculateBasketballProgress: (currentPeriod: number, gameClock: string, sportGroup: SportGroup, provider: OddsServices) => number | null;
|
|
5
|
-
export declare const calculateFootballProgress: (currentPeriod: number, gameClock: string, sportGroup: SportGroup, provider: OddsServices) => number | null;
|
|
6
|
-
export declare const calculateBaseballProgress: (currentPeriod: number, gameClock: string, sportGroup: SportGroup, provider: OddsServices) => number | null;
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.calculateBaseballProgress = exports.calculateFootballProgress = exports.calculateBasketballProgress = exports.calculateSoccerProgress = void 0;
|
|
4
|
-
const client_1 = require("@prisma/client");
|
|
5
|
-
const game_utils_1 = require("../game_progress/game.utils");
|
|
6
|
-
const parser_1 = require("./parser");
|
|
7
|
-
const oracle_1 = require("../../oracle");
|
|
8
|
-
const core_1 = require("../../../core");
|
|
9
|
-
const PERIOD_MAPPERS = {
|
|
10
|
-
[core_1.OddsServices.LSPORTS]: {
|
|
11
|
-
[client_1.SportGroup.Soccer]: (currentPeriod) => {
|
|
12
|
-
if (currentPeriod === 10)
|
|
13
|
-
return 1;
|
|
14
|
-
if (currentPeriod === 20)
|
|
15
|
-
return 2;
|
|
16
|
-
return null;
|
|
17
|
-
},
|
|
18
|
-
[client_1.SportGroup.Basketball]: (currentPeriod, totalPeriods) => {
|
|
19
|
-
if (currentPeriod >= 1 && currentPeriod <= totalPeriods)
|
|
20
|
-
return currentPeriod;
|
|
21
|
-
return null;
|
|
22
|
-
},
|
|
23
|
-
[client_1.SportGroup.Football]: (currentPeriod, totalPeriods) => {
|
|
24
|
-
if (currentPeriod >= 1 && currentPeriod <= totalPeriods)
|
|
25
|
-
return currentPeriod;
|
|
26
|
-
return null;
|
|
27
|
-
},
|
|
28
|
-
[client_1.SportGroup.Baseball]: (currentPeriod, totalPeriods) => {
|
|
29
|
-
if (currentPeriod >= 1 && currentPeriod <= totalPeriods)
|
|
30
|
-
return currentPeriod;
|
|
31
|
-
return null;
|
|
32
|
-
},
|
|
33
|
-
},
|
|
34
|
-
[core_1.OddsServices.OPTIC_ODDS]: {
|
|
35
|
-
[client_1.SportGroup.Soccer]: (currentPeriod, totalPeriods) => {
|
|
36
|
-
if (currentPeriod >= 1 && currentPeriod <= totalPeriods)
|
|
37
|
-
return currentPeriod;
|
|
38
|
-
return null;
|
|
39
|
-
},
|
|
40
|
-
[client_1.SportGroup.Basketball]: (currentPeriod, totalPeriods) => {
|
|
41
|
-
if (currentPeriod >= 1 && currentPeriod <= totalPeriods)
|
|
42
|
-
return currentPeriod;
|
|
43
|
-
return null;
|
|
44
|
-
},
|
|
45
|
-
[client_1.SportGroup.Football]: (currentPeriod, totalPeriods) => {
|
|
46
|
-
if (currentPeriod >= 1 && currentPeriod <= totalPeriods)
|
|
47
|
-
return currentPeriod;
|
|
48
|
-
return null;
|
|
49
|
-
},
|
|
50
|
-
[client_1.SportGroup.Baseball]: (currentPeriod, totalPeriods) => {
|
|
51
|
-
if (currentPeriod >= 1 && currentPeriod <= totalPeriods)
|
|
52
|
-
return currentPeriod;
|
|
53
|
-
return null;
|
|
54
|
-
},
|
|
55
|
-
},
|
|
56
|
-
};
|
|
57
|
-
const calculateGameProgress = (currentPeriod, gameClock, sportGroup, provider) => {
|
|
58
|
-
const config = oracle_1.SportsGamePeriodClockConfig[sportGroup];
|
|
59
|
-
if (!config?.[provider].sportPeriods.regular.includes(currentPeriod))
|
|
60
|
-
return null;
|
|
61
|
-
const periodMapper = PERIOD_MAPPERS[provider]?.[sportGroup];
|
|
62
|
-
if (!periodMapper)
|
|
63
|
-
return null;
|
|
64
|
-
const period = periodMapper(currentPeriod, config.totalPeriods);
|
|
65
|
-
if (period === null)
|
|
66
|
-
return null;
|
|
67
|
-
const gameClockInSeconds = (0, parser_1.parseGameClockToSeconds)(gameClock);
|
|
68
|
-
if (gameClockInSeconds === null)
|
|
69
|
-
return null;
|
|
70
|
-
return (0, game_utils_1.getGameProgressBPS)(gameClockInSeconds, config.totalPeriodDurationInSeconds, config.totalPeriods, period, sportGroup);
|
|
71
|
-
};
|
|
72
|
-
const calculateSoccerProgress = (currentPeriod, gameClock, sportGroup, provider) => {
|
|
73
|
-
if (sportGroup !== client_1.SportGroup.Soccer)
|
|
74
|
-
throw new Error("Sport group is not soccer");
|
|
75
|
-
return calculateGameProgress(currentPeriod, gameClock, sportGroup, provider);
|
|
76
|
-
};
|
|
77
|
-
exports.calculateSoccerProgress = calculateSoccerProgress;
|
|
78
|
-
const calculateBasketballProgress = (currentPeriod, gameClock, sportGroup, provider) => {
|
|
79
|
-
if (sportGroup !== client_1.SportGroup.Basketball)
|
|
80
|
-
throw new Error("Sport group is not basketball");
|
|
81
|
-
return calculateGameProgress(currentPeriod, gameClock, sportGroup, provider);
|
|
82
|
-
};
|
|
83
|
-
exports.calculateBasketballProgress = calculateBasketballProgress;
|
|
84
|
-
const calculateFootballProgress = (currentPeriod, gameClock, sportGroup, provider) => {
|
|
85
|
-
if (sportGroup !== client_1.SportGroup.Football)
|
|
86
|
-
throw new Error("Sport group is not football");
|
|
87
|
-
return calculateGameProgress(currentPeriod, gameClock, sportGroup, provider);
|
|
88
|
-
};
|
|
89
|
-
exports.calculateFootballProgress = calculateFootballProgress;
|
|
90
|
-
const calculateBaseballProgress = (currentPeriod, gameClock, sportGroup, provider) => {
|
|
91
|
-
if (sportGroup !== client_1.SportGroup.Baseball)
|
|
92
|
-
throw new Error("Sport group is not baseball");
|
|
93
|
-
return calculateGameProgress(currentPeriod, gameClock, sportGroup, provider);
|
|
94
|
-
};
|
|
95
|
-
exports.calculateBaseballProgress = calculateBaseballProgress;
|
|
96
|
-
//# sourceMappingURL=caclulate.game.progress.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"caclulate.game.progress.js","sourceRoot":"","sources":["../../../../src/server/utils/game_progress/caclulate.game.progress.ts"],"names":[],"mappings":";;;AAAA,2CAA2C;AAC3C,4DAAgE;AAChE,qCAAkD;AAClD,yCAA0D;AAC1D,wCAA4C;AAI5C,MAAM,cAAc,GAA2D;IAC3E,CAAC,mBAAY,CAAC,OAAO,CAAC,EAAE;QACpB,CAAC,mBAAU,CAAC,MAAM,CAAC,EAAE,CAAC,aAAa,EAAE,EAAE;YACnC,IAAI,aAAa,KAAK,EAAE;gBAAE,OAAO,CAAC,CAAA;YAClC,IAAI,aAAa,KAAK,EAAE;gBAAE,OAAO,CAAC,CAAA;YAClC,OAAO,IAAI,CAAA;QACf,CAAC;QACD,CAAC,mBAAU,CAAC,UAAU,CAAC,EAAE,CAAC,aAAa,EAAE,YAAY,EAAE,EAAE;YACrD,IAAI,aAAa,IAAI,CAAC,IAAI,aAAa,IAAI,YAAY;gBAAE,OAAO,aAAa,CAAA;YAC7E,OAAO,IAAI,CAAA;QACf,CAAC;QACD,CAAC,mBAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,aAAa,EAAE,YAAY,EAAE,EAAE;YACnD,IAAI,aAAa,IAAI,CAAC,IAAI,aAAa,IAAI,YAAY;gBAAE,OAAO,aAAa,CAAA;YAC7E,OAAO,IAAI,CAAA;QACf,CAAC;QACD,CAAC,mBAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,aAAa,EAAE,YAAY,EAAE,EAAE;YACnD,IAAI,aAAa,IAAI,CAAC,IAAI,aAAa,IAAI,YAAY;gBAAE,OAAO,aAAa,CAAA;YAC7E,OAAO,IAAI,CAAA;QACf,CAAC;KACJ;IACD,CAAC,mBAAY,CAAC,UAAU,CAAC,EAAE;QACvB,CAAC,mBAAU,CAAC,MAAM,CAAC,EAAE,CAAC,aAAa,EAAE,YAAY,EAAE,EAAE;YACjD,IAAI,aAAa,IAAI,CAAC,IAAI,aAAa,IAAI,YAAY;gBAAE,OAAO,aAAa,CAAA;YAC7E,OAAO,IAAI,CAAA;QACf,CAAC;QACD,CAAC,mBAAU,CAAC,UAAU,CAAC,EAAE,CAAC,aAAa,EAAE,YAAY,EAAE,EAAE;YACrD,IAAI,aAAa,IAAI,CAAC,IAAI,aAAa,IAAI,YAAY;gBAAE,OAAO,aAAa,CAAA;YAC7E,OAAO,IAAI,CAAA;QACf,CAAC;QACD,CAAC,mBAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,aAAa,EAAE,YAAY,EAAE,EAAE;YACnD,IAAI,aAAa,IAAI,CAAC,IAAI,aAAa,IAAI,YAAY;gBAAE,OAAO,aAAa,CAAA;YAC7E,OAAO,IAAI,CAAA;QACf,CAAC;QACD,CAAC,mBAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,aAAa,EAAE,YAAY,EAAE,EAAE;YACnD,IAAI,aAAa,IAAI,CAAC,IAAI,aAAa,IAAI,YAAY;gBAAE,OAAO,aAAa,CAAA;YAC7E,OAAO,IAAI,CAAA;QACf,CAAC;KACJ;CACJ,CAAA;AAED,MAAM,qBAAqB,GAAG,CAAC,aAAqB,EAAE,SAAiB,EAAE,UAAsB,EAAE,QAAsB,EAAE,EAAE;IACvH,MAAM,MAAM,GAAG,oCAA2B,CAAC,UAAU,CAAC,CAAA;IACtD,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;QAAE,OAAO,IAAI,CAAA;IAEjF,MAAM,YAAY,GAAG,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,CAAA;IAC3D,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAA;IAE9B,MAAM,MAAM,GAAG,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,YAAY,CAAC,CAAA;IAC/D,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IAEhC,MAAM,kBAAkB,GAAG,IAAA,gCAAuB,EAAC,SAAS,CAAC,CAAA;IAC7D,IAAI,kBAAkB,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IAE5C,OAAO,IAAA,+BAAkB,EAAC,kBAAkB,EAAE,MAAM,CAAC,4BAA4B,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,CAAC,CAAA;AAC/H,CAAC,CAAA;AAEM,MAAM,uBAAuB,GAAG,CACnC,aAAqB,EACrB,SAAiB,EACjB,UAAsB,EACtB,QAAsB,EACxB,EAAE;IACA,IAAI,UAAU,KAAK,mBAAU,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;IAClF,OAAO,qBAAqB,CAAC,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAA;AAChF,CAAC,CAAA;AARY,QAAA,uBAAuB,2BAQnC;AAEM,MAAM,2BAA2B,GAAG,CACvC,aAAqB,EACrB,SAAiB,EACjB,UAAsB,EACtB,QAAsB,EACxB,EAAE;IACA,IAAI,UAAU,KAAK,mBAAU,CAAC,UAAU;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;IAC1F,OAAO,qBAAqB,CAAC,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAA;AAChF,CAAC,CAAA;AARY,QAAA,2BAA2B,+BAQvC;AAEM,MAAM,yBAAyB,GAAG,CACrC,aAAqB,EACrB,SAAiB,EACjB,UAAsB,EACtB,QAAsB,EACxB,EAAE;IACA,IAAI,UAAU,KAAK,mBAAU,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;IACtF,OAAO,qBAAqB,CAAC,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAA;AAChF,CAAC,CAAA;AARY,QAAA,yBAAyB,6BAQrC;AAEM,MAAM,yBAAyB,GAAG,CACrC,aAAqB,EACrB,SAAiB,EACjB,UAAsB,EACtB,QAAsB,EACxB,EAAE;IACA,IAAI,UAAU,KAAK,mBAAU,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;IACtF,OAAO,qBAAqB,CAAC,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAA;AAChF,CAAC,CAAA;AARY,QAAA,yBAAyB,6BAQrC"}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getGameProgressBPS = void 0;
|
|
4
|
-
const client_1 = require("@prisma/client");
|
|
5
|
-
const calculateGameProgressBPSWithPeriodsOnly = (period, totalPeriods) => {
|
|
6
|
-
if (period > totalPeriods)
|
|
7
|
-
return 1e4;
|
|
8
|
-
const progress = period / totalPeriods;
|
|
9
|
-
return Math.round(progress * 1e4);
|
|
10
|
-
};
|
|
11
|
-
//{ totalPeriods: 2, totalPeriodDurationInSeconds: 45 * 60 },
|
|
12
|
-
// gameClock: '57:20',
|
|
13
|
-
//levr-v1-dev-oracle-core | gamePeriod: 20,
|
|
14
|
-
const calculateGameProgressBPS = (elapsedSeconds, totalPeriodDurationInSeconds, totalPeriods, period) => {
|
|
15
|
-
if (totalPeriodDurationInSeconds === 0)
|
|
16
|
-
return 0;
|
|
17
|
-
if (elapsedSeconds > totalPeriodDurationInSeconds)
|
|
18
|
-
elapsedSeconds = totalPeriodDurationInSeconds;
|
|
19
|
-
const progress = elapsedSeconds / totalPeriodDurationInSeconds;
|
|
20
|
-
const periodsPassed = period - 1;
|
|
21
|
-
const pastProgress = calculateGameProgressBPSWithPeriodsOnly(periodsPassed, totalPeriods);
|
|
22
|
-
const currentPeriodProgress = (progress * 1e4) / totalPeriods;
|
|
23
|
-
const value = Math.round(pastProgress + currentPeriodProgress);
|
|
24
|
-
//TODO: revise time tracking
|
|
25
|
-
if (value > 1e4)
|
|
26
|
-
return 1e4;
|
|
27
|
-
if (value < 0)
|
|
28
|
-
return 0;
|
|
29
|
-
return value;
|
|
30
|
-
};
|
|
31
|
-
// Example: { totalPeriods: 2, totalPeriodDurationInSeconds: 45 * 60 }, gameClock: '57:20', period: 2
|
|
32
|
-
// gameClock is cumulative (57:20 = 57 mins into game, which is 12:20 into period 2)
|
|
33
|
-
// Expected: elapsedInPeriod = 3440 - 2700 = 740 seconds → ~63.7% game progress
|
|
34
|
-
const calculateGameProgressBPSWithGameClockCountUp = (gameClockInSeconds, totalPeriodDurationInSeconds, totalPeriods, period) => {
|
|
35
|
-
const cumulativeElapsedSeconds = gameClockInSeconds;
|
|
36
|
-
if (cumulativeElapsedSeconds === null)
|
|
37
|
-
return null;
|
|
38
|
-
// Subtract time from previous periods since gameClock is cumulative
|
|
39
|
-
const previousPeriodsSeconds = (period - 1) * totalPeriodDurationInSeconds;
|
|
40
|
-
const elapsedSecondsInCurrentPeriod = cumulativeElapsedSeconds - previousPeriodsSeconds;
|
|
41
|
-
return calculateGameProgressBPS(elapsedSecondsInCurrentPeriod, totalPeriodDurationInSeconds, totalPeriods, period);
|
|
42
|
-
};
|
|
43
|
-
const calculateGameProgressBPSWithGameClockCountDown = (gameClockInSeconds, totalPeriodDurationInSeconds, totalPeriods, period) => {
|
|
44
|
-
const remainingSeconds = gameClockInSeconds;
|
|
45
|
-
if (remainingSeconds === null)
|
|
46
|
-
return null;
|
|
47
|
-
const elapsedSeconds = totalPeriodDurationInSeconds - remainingSeconds;
|
|
48
|
-
return calculateGameProgressBPS(elapsedSeconds, totalPeriodDurationInSeconds, totalPeriods, period);
|
|
49
|
-
};
|
|
50
|
-
const getGameProgressBPS = (gameClockInSeconds, totalPeriodDurationInSeconds, period, totalPeriods, sportGroup) => {
|
|
51
|
-
switch (sportGroup) {
|
|
52
|
-
case client_1.SportGroup.Soccer:
|
|
53
|
-
return calculateGameProgressBPSWithGameClockCountUp(gameClockInSeconds, totalPeriodDurationInSeconds, totalPeriods, period);
|
|
54
|
-
case client_1.SportGroup.Basketball:
|
|
55
|
-
return calculateGameProgressBPSWithGameClockCountDown(gameClockInSeconds, totalPeriodDurationInSeconds, totalPeriods, period);
|
|
56
|
-
case client_1.SportGroup.Football:
|
|
57
|
-
return calculateGameProgressBPSWithGameClockCountDown(gameClockInSeconds, totalPeriodDurationInSeconds, totalPeriods, period);
|
|
58
|
-
case client_1.SportGroup.Baseball:
|
|
59
|
-
return calculateGameProgressBPSWithPeriodsOnly(period, totalPeriods);
|
|
60
|
-
default:
|
|
61
|
-
return null;
|
|
62
|
-
}
|
|
63
|
-
};
|
|
64
|
-
exports.getGameProgressBPS = getGameProgressBPS;
|
|
65
|
-
//# sourceMappingURL=game.utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"game.utils.js","sourceRoot":"","sources":["../../../../src/server/utils/game_progress/game.utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { SportGroup } from "@prisma/client";
|
|
2
|
-
export declare const calculateSoccerProgress: (currentPeriod: number, gameClock: string, sportGroup: SportGroup) => number | null;
|
|
3
|
-
export declare const calculateBasketballProgress: (currentPeriod: number, gameClock: string, sportGroup: SportGroup) => number | null;
|
|
4
|
-
export declare const calculateFootballProgress: (currentPeriod: number, gameClock: string, sportGroup: SportGroup) => number | null;
|
|
5
|
-
export declare const calculateBaseballProgress: (currentPeriod: number, gameClock: string, sportGroup: SportGroup) => number | null;
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.calculateBaseballProgress = exports.calculateFootballProgress = exports.calculateBasketballProgress = exports.calculateSoccerProgress = void 0;
|
|
4
|
-
const client_1 = require("@prisma/client");
|
|
5
|
-
const game_utils_1 = require("../game_progress/game.utils");
|
|
6
|
-
const parser_1 = require("./parser");
|
|
7
|
-
const oracle_1 = require("../../oracle");
|
|
8
|
-
// identify the period, match it to the equivalent levr period
|
|
9
|
-
// then identify the clock, maket sure the clock is convert to seconds
|
|
10
|
-
// then calculate the progress based on that
|
|
11
|
-
// 1st half 0-45 minutes
|
|
12
|
-
// 2nd half 46-90 minutes
|
|
13
|
-
// assumptions, use only regular time to calculate progress
|
|
14
|
-
// extra time 91-105 minutes
|
|
15
|
-
// extra time 106-120 minutes
|
|
16
|
-
// penalties 121 minutes +
|
|
17
|
-
// we want seconds for game clock here
|
|
18
|
-
// calculate for soccer
|
|
19
|
-
const calculateSoccerProgress = (currentPeriod, gameClock, sportGroup) => {
|
|
20
|
-
// Implementation here
|
|
21
|
-
if (sportGroup !== client_1.SportGroup.Soccer)
|
|
22
|
-
throw new Error("Sport group is not soccer");
|
|
23
|
-
let config = oracle_1.SportsGamePeriodClockConfig[sportGroup];
|
|
24
|
-
if (!config)
|
|
25
|
-
return null;
|
|
26
|
-
const period = currentPeriod === 10 ? 1 : currentPeriod === 20 ? 2 : currentPeriod > 20 ? config.totalPeriods + 1 : 0;
|
|
27
|
-
if (period === 0)
|
|
28
|
-
return null;
|
|
29
|
-
const gameClockInSeconds = (0, parser_1.parseGameClockToSeconds)(gameClock);
|
|
30
|
-
if (gameClockInSeconds === null)
|
|
31
|
-
return null;
|
|
32
|
-
return (0, game_utils_1.getGameProgressBPS)(gameClockInSeconds, config.totalPeriodDurationInSeconds, config.totalPeriods, period, sportGroup);
|
|
33
|
-
};
|
|
34
|
-
exports.calculateSoccerProgress = calculateSoccerProgress;
|
|
35
|
-
// parse game clock to seconds
|
|
36
|
-
const calculateBasketballProgress = (currentPeriod, gameClock, sportGroup) => {
|
|
37
|
-
// Implementation here
|
|
38
|
-
if (sportGroup !== client_1.SportGroup.Basketball)
|
|
39
|
-
throw new Error("Sport group is not basketball");
|
|
40
|
-
let config = oracle_1.SportsGamePeriodClockConfig[sportGroup];
|
|
41
|
-
if (!config)
|
|
42
|
-
return null;
|
|
43
|
-
const period = currentPeriod >= 1 && currentPeriod <= 4 ? currentPeriod : currentPeriod === 40 ? config.totalPeriods + 1 : 0;
|
|
44
|
-
if (period === 0)
|
|
45
|
-
return null;
|
|
46
|
-
const gameClockInSeconds = (0, parser_1.parseGameClockToSeconds)(gameClock);
|
|
47
|
-
if (gameClockInSeconds === null)
|
|
48
|
-
return null;
|
|
49
|
-
return (0, game_utils_1.getGameProgressBPS)(gameClockInSeconds, config.totalPeriodDurationInSeconds, config.totalPeriods, period, sportGroup);
|
|
50
|
-
};
|
|
51
|
-
exports.calculateBasketballProgress = calculateBasketballProgress;
|
|
52
|
-
const calculateFootballProgress = (currentPeriod, gameClock, sportGroup) => {
|
|
53
|
-
// Implementation here
|
|
54
|
-
if (sportGroup !== client_1.SportGroup.Football)
|
|
55
|
-
throw new Error("Sport group is not football");
|
|
56
|
-
let config = oracle_1.SportsGamePeriodClockConfig[sportGroup];
|
|
57
|
-
if (!config)
|
|
58
|
-
return null;
|
|
59
|
-
const period = currentPeriod >= 1 && currentPeriod <= 4 ? currentPeriod : currentPeriod === 40 ? config.totalPeriods + 1 : 0;
|
|
60
|
-
if (period === 0)
|
|
61
|
-
return null;
|
|
62
|
-
const gameClockInSeconds = (0, parser_1.parseGameClockToSeconds)(gameClock);
|
|
63
|
-
if (gameClockInSeconds === null)
|
|
64
|
-
return null;
|
|
65
|
-
return (0, game_utils_1.getGameProgressBPS)(gameClockInSeconds, config.totalPeriodDurationInSeconds, config.totalPeriods, period, sportGroup);
|
|
66
|
-
};
|
|
67
|
-
exports.calculateFootballProgress = calculateFootballProgress;
|
|
68
|
-
const calculateBaseballProgress = (currentPeriod, gameClock, sportGroup) => {
|
|
69
|
-
// Implementation here
|
|
70
|
-
if (sportGroup !== client_1.SportGroup.Baseball)
|
|
71
|
-
throw new Error("Sport group is not baseball");
|
|
72
|
-
const config = oracle_1.SportsGamePeriodClockConfig[sportGroup];
|
|
73
|
-
if (!config)
|
|
74
|
-
return null;
|
|
75
|
-
const period = currentPeriod >= 1 && currentPeriod <= 9 ? currentPeriod : currentPeriod === 40 ? config.totalPeriods + 1 : 0;
|
|
76
|
-
if (period === 0)
|
|
77
|
-
return null;
|
|
78
|
-
const gameClockInSeconds = (0, parser_1.parseGameClockToSeconds)(gameClock);
|
|
79
|
-
if (gameClockInSeconds === null)
|
|
80
|
-
return null;
|
|
81
|
-
return (0, game_utils_1.getGameProgressBPS)(gameClockInSeconds, config.totalPeriodDurationInSeconds, config.totalPeriods, period, sportGroup);
|
|
82
|
-
};
|
|
83
|
-
exports.calculateBaseballProgress = calculateBaseballProgress;
|
|
84
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/server/utils/game_progress/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../../src/server/utils/game_progress/parser.ts"],"names":[],"mappings":"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"}
|