@winible/winible-typed 1.0.7 → 1.0.8

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.
Files changed (217) hide show
  1. package/dist/index.d.ts +3 -0
  2. package/dist/migrations/20220601151258-custom_name_describing_your_migration.d.ts +6 -0
  3. package/dist/migrations/20220605225655-create-dashboard-user-permissions.d.ts +6 -0
  4. package/dist/migrations/20220606001300-update-dashboard-user-permissions.d.ts +6 -0
  5. package/dist/migrations/20220607091109-add-read-date-for-message.d.ts +6 -0
  6. package/dist/migrations/20220616225456-add-delete-columns.d.ts +6 -0
  7. package/dist/migrations/20220709202211-disable-feed.d.ts +6 -0
  8. package/dist/migrations/20220723215213-limit-promotion-claims.d.ts +6 -0
  9. package/dist/migrations/20220723220233-num_claims.d.ts +6 -0
  10. package/dist/migrations/20220723221907-default_false_promos.d.ts +6 -0
  11. package/dist/migrations/20220724172559-default_zero_claims.d.ts +6 -0
  12. package/dist/migrations/20220724201419-pinned_post.d.ts +6 -0
  13. package/dist/migrations/20220729164625-unsend_mass.d.ts +6 -0
  14. package/dist/migrations/20220823033002-interval-unit.d.ts +6 -0
  15. package/dist/migrations/20220830193530-processorId.d.ts +6 -0
  16. package/dist/migrations/20220907121932-add-processor-to-sub.d.ts +6 -0
  17. package/dist/migrations/20220907212232-add-trans-id.d.ts +6 -0
  18. package/dist/migrations/20220907220423-big-int-trans.d.ts +6 -0
  19. package/dist/migrations/20220909161902-add-stale.d.ts +6 -0
  20. package/dist/migrations/20220922000225-verified-spender.d.ts +6 -0
  21. package/dist/migrations/20220922212108-verified-spender-2.d.ts +6 -0
  22. package/dist/migrations/20221013223648-product-subscription-list.d.ts +6 -0
  23. package/dist/migrations/20221014001037-product-subscription-list.d.ts +6 -0
  24. package/dist/migrations/20221026055245-update-type.d.ts +6 -0
  25. package/dist/migrations/20221108060019-recurly-sub.d.ts +6 -0
  26. package/dist/migrations/20221110170148-rename-recurly-account.d.ts +6 -0
  27. package/dist/migrations/20221112212510-archive-promo.d.ts +6 -0
  28. package/dist/migrations/20221117044529-sub-status.d.ts +6 -0
  29. package/dist/migrations/20221122051433-default-plan.d.ts +6 -0
  30. package/dist/migrations/20221128034620-invoice-id.d.ts +6 -0
  31. package/dist/migrations/20230104055346-oddsjam.js +501 -0
  32. package/dist/migrations/20230104055346-oddsjam.js.map +1 -0
  33. package/dist/migrations/20230104233909-markets.js +28 -0
  34. package/dist/migrations/20230104233909-markets.js.map +1 -0
  35. package/dist/migrations/20230105005418-sportsbook.js +24 -0
  36. package/dist/migrations/20230105005418-sportsbook.js.map +1 -0
  37. package/dist/migrations/20230106044910-player-result.js +59 -0
  38. package/dist/migrations/20230106044910-player-result.js.map +1 -0
  39. package/dist/scripts/bet-syncing/gradeBets.js +109 -0
  40. package/dist/scripts/bet-syncing/gradeBets.js.map +1 -0
  41. package/dist/scripts/bet-syncing/pullGames.js +198 -0
  42. package/dist/scripts/bet-syncing/pullGames.js.map +1 -0
  43. package/dist/scripts/bet-syncing/pullLiveScores.js +187 -0
  44. package/dist/scripts/bet-syncing/pullLiveScores.js.map +1 -0
  45. package/dist/scripts/bet-syncing/pullOdds.js +255 -0
  46. package/dist/scripts/bet-syncing/pullOdds.js.map +1 -0
  47. package/dist/scripts/bet-syncing/pullPlayerResults.js +63 -0
  48. package/dist/scripts/bet-syncing/pullPlayerResults.js.map +1 -0
  49. package/dist/scripts/bet-syncing/pullPlayers.js +59 -0
  50. package/dist/scripts/bet-syncing/pullPlayers.js.map +1 -0
  51. package/dist/scripts/bet-syncing/pullScores.js +183 -0
  52. package/dist/scripts/bet-syncing/pullScores.js.map +1 -0
  53. package/dist/scripts/bet-syncing/pullTeams.d.ts +1 -0
  54. package/dist/scripts/bet-syncing/pullTeams.js +85 -0
  55. package/dist/scripts/bet-syncing/pullTeams.js.map +1 -0
  56. package/dist/scripts/cleanupRecurlyPlans.d.ts +1 -0
  57. package/dist/scripts/createDashboardLink.d.ts +1 -0
  58. package/dist/scripts/createDashboardLink.js +4 -4
  59. package/dist/scripts/createDashboardLink.js.map +1 -1
  60. package/dist/scripts/createRecurlyPlans.d.ts +1 -0
  61. package/dist/scripts/deleteMalformedImages.d.ts +1 -0
  62. package/dist/scripts/fixSaltedPasswords.js +40 -0
  63. package/dist/scripts/fixSaltedPasswords.js.map +1 -0
  64. package/dist/scripts/mapCurrentPaymentsToInvoiceId.d.ts +1 -0
  65. package/dist/scripts/payoutRecurlySubs.d.ts +1 -0
  66. package/dist/scripts/payoutSubscriptions.d.ts +1 -0
  67. package/dist/scripts/payoutSubscriptions.js +18 -10
  68. package/dist/scripts/payoutSubscriptions.js.map +1 -1
  69. package/dist/scripts/removeUnreferenceSubs.d.ts +1 -0
  70. package/dist/scripts/test.d.ts +1 -0
  71. package/dist/scripts/test.js +3 -21
  72. package/dist/scripts/test.js.map +1 -1
  73. package/dist/slack/index.d.ts +1 -0
  74. package/dist/{server → slack}/index.js +0 -4
  75. package/dist/slack/index.js.map +1 -0
  76. package/dist/slack/v1/bypassCreator.d.ts +8 -0
  77. package/dist/slack/v1/bypassCreator.js.map +1 -0
  78. package/dist/slack/v1/cancelSubscription.d.ts +6 -0
  79. package/dist/slack/v1/cancelSubscription.js.map +1 -0
  80. package/dist/slack/v1/changeName.d.ts +8 -0
  81. package/dist/slack/v1/changeName.js.map +1 -0
  82. package/dist/slack/v1/checkAuthSub.d.ts +6 -0
  83. package/dist/{server → slack}/v1/checkAuthSub.js +5 -5
  84. package/dist/slack/v1/checkAuthSub.js.map +1 -0
  85. package/dist/slack/v1/dashboardLink.d.ts +8 -0
  86. package/dist/{server → slack}/v1/dashboardLink.js +1 -1
  87. package/dist/slack/v1/dashboardLink.js.map +1 -0
  88. package/dist/slack/v1/index.d.ts +7 -0
  89. package/dist/{server → slack}/v1/index.js +1 -8
  90. package/dist/slack/v1/index.js.map +1 -0
  91. package/dist/slack/v1/refund.d.ts +6 -0
  92. package/dist/slack/v1/refund.js +42 -0
  93. package/dist/slack/v1/refund.js.map +1 -0
  94. package/dist/slack/v1/searchUser.d.ts +6 -0
  95. package/dist/slack/v1/searchUser.js.map +1 -0
  96. package/dist/src/index.d.ts +3 -0
  97. package/dist/src/pk-client.d.ts +151 -0
  98. package/dist/src/pk-sub.d.ts +77 -0
  99. package/dist/src/recurlyInstance.d.ts +3 -0
  100. package/dist/src/types.d.ts +30 -0
  101. package/dist/support/index.d.ts +2 -0
  102. package/dist/support/slack-client.d.ts +3 -0
  103. package/dist/support/uploadcare.d.ts +14 -0
  104. package/dist/support/utils.d.ts +2 -0
  105. package/dist/typed-model/asset-category.d.ts +9 -0
  106. package/dist/typed-model/asset-constent-person.d.ts +13 -0
  107. package/dist/typed-model/bet.d.ts +12 -0
  108. package/dist/typed-model/bet.js +64 -0
  109. package/dist/typed-model/bet.js.map +1 -0
  110. package/dist/typed-model/blocked-ip.d.ts +8 -0
  111. package/dist/typed-model/category-tag.d.ts +9 -0
  112. package/dist/typed-model/consent-person.d.ts +13 -0
  113. package/dist/typed-model/content-category-tag.d.ts +9 -0
  114. package/dist/typed-model/content-like.d.ts +10 -0
  115. package/dist/typed-model/credit-payment.d.ts +34 -0
  116. package/dist/typed-model/credit-payout.d.ts +10 -0
  117. package/dist/typed-model/credit-purchase.d.ts +10 -0
  118. package/dist/typed-model/customer-profile.d.ts +17 -0
  119. package/dist/typed-model/dashboard-user-permissions.d.ts +9 -0
  120. package/dist/typed-model/dashboard-user.d.ts +20 -0
  121. package/dist/typed-model/fan-list.d.ts +10 -0
  122. package/dist/typed-model/fraud.d.ts +9 -0
  123. package/dist/typed-model/game.d.ts +56 -0
  124. package/dist/typed-model/game.js +234 -0
  125. package/dist/typed-model/game.js.map +1 -0
  126. package/dist/typed-model/index.d.ts +46 -0
  127. package/dist/typed-model/index.js +15 -1
  128. package/dist/typed-model/index.js.map +1 -1
  129. package/dist/typed-model/league.d.ts +9 -0
  130. package/dist/typed-model/league.js +35 -0
  131. package/dist/typed-model/league.js.map +1 -0
  132. package/dist/typed-model/list-member.d.ts +9 -0
  133. package/dist/typed-model/market.js +36 -0
  134. package/dist/typed-model/market.js.map +1 -0
  135. package/dist/typed-model/mass-message.d.ts +11 -0
  136. package/dist/typed-model/media-asset.d.ts +15 -0
  137. package/dist/typed-model/media-category.d.ts +10 -0
  138. package/dist/typed-model/media.d.ts +14 -0
  139. package/dist/typed-model/message-media.d.ts +9 -0
  140. package/dist/typed-model/message.d.ts +27 -0
  141. package/dist/typed-model/notification.d.ts +18 -0
  142. package/dist/typed-model/odds.d.ts +30 -0
  143. package/dist/typed-model/odds.js +155 -0
  144. package/dist/typed-model/odds.js.map +1 -0
  145. package/dist/typed-model/parlay.d.ts +8 -0
  146. package/dist/typed-model/parlay.js +30 -0
  147. package/dist/typed-model/parlay.js.map +1 -0
  148. package/dist/typed-model/pb-sequelize.d.ts +3 -0
  149. package/dist/typed-model/phone-chat-participation.d.ts +20 -0
  150. package/dist/typed-model/phone-chat.d.ts +16 -0
  151. package/dist/typed-model/phone-owner.d.ts +53 -0
  152. package/dist/typed-model/phone-user.d.ts +21 -0
  153. package/dist/typed-model/player-result.js +67 -0
  154. package/dist/typed-model/player-result.js.map +1 -0
  155. package/dist/typed-model/player.d.ts +22 -0
  156. package/dist/typed-model/player.js +87 -0
  157. package/dist/typed-model/player.js.map +1 -0
  158. package/dist/typed-model/premium-content.d.ts +23 -0
  159. package/dist/typed-model/purchased-content.d.ts +11 -0
  160. package/dist/typed-model/recurly-account.d.ts +9 -0
  161. package/dist/typed-model/short-url.d.ts +12 -0
  162. package/dist/typed-model/sportsbook.js +31 -0
  163. package/dist/typed-model/sportsbook.js.map +1 -0
  164. package/dist/typed-model/subscription-bundle.d.ts +12 -0
  165. package/dist/typed-model/subscription-category-tags.d.ts +9 -0
  166. package/dist/typed-model/subscription-plan.d.ts +27 -0
  167. package/dist/typed-model/subscription-promotion.d.ts +19 -0
  168. package/dist/typed-model/subscription.d.ts +26 -0
  169. package/dist/typed-model/team.d.ts +16 -0
  170. package/dist/typed-model/team.js +70 -0
  171. package/dist/typed-model/team.js.map +1 -0
  172. package/dist/typed-model/twilio-phone.d.ts +17 -0
  173. package/dist/typed-model/user-follow.d.ts +13 -0
  174. package/dist/typed-model/verification-code.d.ts +11 -0
  175. package/dist/webhooks/index.d.ts +1 -0
  176. package/dist/webhooks/index.js +48 -0
  177. package/dist/webhooks/index.js.map +1 -0
  178. package/dist/webhooks/payment/index.d.ts +1 -0
  179. package/dist/webhooks/payment/index.js +9 -0
  180. package/dist/webhooks/payment/index.js.map +1 -0
  181. package/dist/webhooks/payment/refund.d.ts +2 -0
  182. package/dist/webhooks/payment/refund.js +39 -0
  183. package/dist/webhooks/payment/refund.js.map +1 -0
  184. package/package.json +3 -1
  185. package/typed-model/bet.ts +84 -0
  186. package/typed-model/game.ts +311 -0
  187. package/typed-model/index.ts +7 -0
  188. package/typed-model/league.ts +53 -0
  189. package/typed-model/market.ts +54 -0
  190. package/typed-model/odds.ts +232 -0
  191. package/typed-model/parlay.ts +47 -0
  192. package/typed-model/player-result.ts +93 -0
  193. package/typed-model/player.ts +118 -0
  194. package/typed-model/sportsbook.ts +48 -0
  195. package/typed-model/team.ts +91 -0
  196. package/dist/scripts/authorizeTransfer.js +0 -188
  197. package/dist/scripts/authorizeTransfer.js.map +0 -1
  198. package/dist/server/index.js.map +0 -1
  199. package/dist/server/v1/bypassCreator.js.map +0 -1
  200. package/dist/server/v1/cancelSubscription.js.map +0 -1
  201. package/dist/server/v1/changeName.js.map +0 -1
  202. package/dist/server/v1/checkAuthSub.js.map +0 -1
  203. package/dist/server/v1/dashboardLink.js.map +0 -1
  204. package/dist/server/v1/getSuspendedSubs.js +0 -76
  205. package/dist/server/v1/getSuspendedSubs.js.map +0 -1
  206. package/dist/server/v1/index.js.map +0 -1
  207. package/dist/server/v1/manualCreateSub.js +0 -159
  208. package/dist/server/v1/manualCreateSub.js.map +0 -1
  209. package/dist/server/v1/refund.js +0 -78
  210. package/dist/server/v1/refund.js.map +0 -1
  211. package/dist/server/v1/retrySubscription.js +0 -81
  212. package/dist/server/v1/retrySubscription.js.map +0 -1
  213. package/dist/server/v1/searchUser.js.map +0 -1
  214. /package/dist/{server → slack}/v1/bypassCreator.js +0 -0
  215. /package/dist/{server → slack}/v1/cancelSubscription.js +0 -0
  216. /package/dist/{server → slack}/v1/changeName.js +0 -0
  217. /package/dist/{server → slack}/v1/searchUser.js +0 -0
@@ -0,0 +1,255 @@
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
+ const dotenv = require("dotenv");
7
+ const oddsjam_js_wrapper_1 = __importDefault(require("@winible/oddsjam-js-wrapper"));
8
+ const typed_model_1 = require("../../typed-model");
9
+ const sequelize_1 = require("sequelize");
10
+ const market_1 = __importDefault(require("../../typed-model/market"));
11
+ const sportsbook_1 = __importDefault(require("../../typed-model/sportsbook"));
12
+ const moment_1 = __importDefault(require("moment"));
13
+ const PULL_FOR_BOOKS = [
14
+ "Barstool",
15
+ "BetMGM",
16
+ "Caesars (Tennessee)",
17
+ "DraftKings",
18
+ "Caesars (Ontario)",
19
+ "DraftKings",
20
+ "DraftKings (Tennessee)",
21
+ "FanDuel",
22
+ "Pinnacle",
23
+ "PrizePicks",
24
+ ];
25
+ const PULL_FOR_MARKETS = [
26
+ "1st 3 Innings Moneyline",
27
+ "1st 3 Innings Run Line",
28
+ "1st 3 Innings Total Runs",
29
+ "1st 7 Innings Moneyline",
30
+ "1st 7 Innings Run Line",
31
+ "1st 7 Innings Total Runs",
32
+ "1st Half Moneyline",
33
+ "1st Half Moneyline 3-Way",
34
+ "1st Half Point Spread",
35
+ "1st Half Run Line",
36
+ "1st Half Team Total",
37
+ "1st Half Total Points",
38
+ "1st Half Total Runs",
39
+ "1st Inning Moneyline",
40
+ "1st Inning Moneyline 3-Way",
41
+ "1st Inning Run Line",
42
+ "1st Inning Total Runs",
43
+ "1st Period Both Teams To Score",
44
+ "1st Period Moneyline",
45
+ "1st Period Puck Line",
46
+ "1st Period Total Goals",
47
+ "1st Quarter Moneyline",
48
+ "1st Quarter Point Spread",
49
+ "1st Quarter Team Total",
50
+ "1st Quarter Total Points",
51
+ "2nd Inning Moneyline",
52
+ "2nd Inning Run Line",
53
+ "2nd Inning Total Runs",
54
+ "2nd Period Moneyline",
55
+ "2nd Period Puck Line",
56
+ "2nd Period Total Goals",
57
+ "2nd Quarter Moneyline",
58
+ "2nd Quarter Point Spread",
59
+ "2nd Quarter Team Total",
60
+ "2nd Quarter Total Points",
61
+ "Both Teams To Score",
62
+ "Moneyline",
63
+ "Moneyline 3-Way",
64
+ "Player Assists",
65
+ "Player Blocks",
66
+ "Player Earned Runs",
67
+ "Player Extra Points Made",
68
+ "Player Field Goals Made",
69
+ "Player Goals",
70
+ "Player Goals Against",
71
+ "Player Hits",
72
+ "Player Hits Allowed",
73
+ "Player Home Runs",
74
+ "Player Interceptions",
75
+ "Player Kicking Points",
76
+ "Player Longest Reception",
77
+ "Player Longest Rush",
78
+ "Player Passing Attempts",
79
+ "Player Passing Completions",
80
+ "Player Passing Touchdowns",
81
+ "Player Passing Yards",
82
+ "Player Points",
83
+ "Player Points + Assists",
84
+ "Player Points + Rebounds",
85
+ "Player Points + Rebounds + Assists",
86
+ "Player RBIs",
87
+ "Player Rebounds",
88
+ "Player Rebounds + Assists",
89
+ "Player Receiving Touchdowns",
90
+ "Player Receiving Yards",
91
+ "Player Receptions",
92
+ "Player Runs",
93
+ "Player Rushing Attempts",
94
+ "Player Rushing Touchdowns",
95
+ "Player Rushing Yards",
96
+ "Player Sacks",
97
+ "Player Saves",
98
+ "Player Shots On Goal",
99
+ "Player Steals",
100
+ "Player Steals + Blocks",
101
+ "Player Strikeouts",
102
+ "Player Tackles",
103
+ "Player Tackles + Assists",
104
+ "Player Turnovers",
105
+ "Player Walks",
106
+ "Point Spread",
107
+ "Puck Line",
108
+ "Puck Line Reg Time",
109
+ "Run Line",
110
+ "Team Total",
111
+ "Team Total Reg Time",
112
+ "Total Goals",
113
+ "Total Goals Reg Time",
114
+ "Total Points",
115
+ "Total Rounds",
116
+ "Total Runs",
117
+ ];
118
+ dotenv.config();
119
+ const mapOJOddsToOdds = (odds, market, sportsbook, game, player) => {
120
+ let team;
121
+ if (game.homeTeamInstance &&
122
+ odds.name.includes(game.homeTeamInstance.teamName)) {
123
+ team = game.homeTeamInstance;
124
+ }
125
+ else if (game.awayTeamInstance &&
126
+ odds.name.includes(game.awayTeamInstance.teamName)) {
127
+ team = game.awayTeamInstance;
128
+ }
129
+ return {
130
+ oddsJamId: odds.id,
131
+ sportsBookName: odds.sports_book_name,
132
+ name: odds.name,
133
+ price: odds.price,
134
+ checkedDate: odds.checked_date,
135
+ betPoints: odds.bet_points,
136
+ isMain: odds.is_main,
137
+ isLive: odds.is_live,
138
+ marketName: odds.market_name,
139
+ homeRotationNumber: odds.home_rotation_number,
140
+ awayRotationNumber: odds.away_rotation_number,
141
+ deepLinkUrl: odds.deep_link_url,
142
+ oddsJamPlayerId: odds.player_id,
143
+ marketId: market.id,
144
+ sportsbookId: sportsbook.id,
145
+ gameId: game.id,
146
+ oddsJamGameId: game.oddsJamId,
147
+ teamId: team && team.id,
148
+ playerId: player === null || player === void 0 ? void 0 : player.id,
149
+ oddsJamPayerId: odds.player_id,
150
+ };
151
+ };
152
+ const OddsJamClient = (0, oddsjam_js_wrapper_1.default)(process.env.ODDS_JAM_API_KEY);
153
+ const run = async () => {
154
+ const upcomingGames = await typed_model_1.Game.findAll({
155
+ where: {
156
+ startDate: {
157
+ [sequelize_1.Op.gte]: new Date(),
158
+ [sequelize_1.Op.lte]: (0, moment_1.default)().add(7, "d"),
159
+ },
160
+ },
161
+ order: [["startDate", "ASC"]],
162
+ });
163
+ console.log(`Running for ${upcomingGames.length} games`);
164
+ let allMarkets = await market_1.default.findAll();
165
+ let allSportsbooks = await sportsbook_1.default.findAll();
166
+ let allSportbookNames = allSportsbooks.map((s) => s.name);
167
+ const updateOddsForGamePromise = async (gameIds) => {
168
+ let gameOddsResponse = await OddsJamClient.getGameOdds({
169
+ gameId: gameIds,
170
+ sportsbook: PULL_FOR_BOOKS,
171
+ marketName: PULL_FOR_MARKETS,
172
+ });
173
+ if (!gameOddsResponse) {
174
+ console.log(`No odds for game ${gameIds.join(",")}`);
175
+ return;
176
+ }
177
+ let games = await typed_model_1.Game.findAll({
178
+ where: { oddsJamId: { [sequelize_1.Op.in]: gameIds } },
179
+ include: [
180
+ {
181
+ model: typed_model_1.Team,
182
+ as: "homeTeamInstance",
183
+ },
184
+ {
185
+ model: typed_model_1.Team,
186
+ as: "awayTeamInstance",
187
+ },
188
+ ],
189
+ });
190
+ let gameMarkets = await OddsJamClient.getMarkets({ gameId: gameIds });
191
+ let marketsToCreate = [
192
+ ...new Set(gameMarkets.filter((s) => !allMarkets.find((m) => m.oddsJamId == s.id))),
193
+ ];
194
+ if (marketsToCreate && marketsToCreate.length > 0) {
195
+ console.log("Creating markets");
196
+ await market_1.default.bulkCreate(marketsToCreate.map((m) => {
197
+ return { oddsJamId: m.id, label: m.label };
198
+ }), { ignoreDuplicates: true });
199
+ allMarkets = await market_1.default.findAll();
200
+ console.log("markets complete");
201
+ }
202
+ let upsertBodies = [];
203
+ for (let response of gameOddsResponse) {
204
+ let odds = response.odds;
205
+ let gameId = response.id;
206
+ let sportsbookNamesToCreate = odds
207
+ .map((o) => o.sports_book_name)
208
+ .filter((s) => !allSportbookNames.includes(s));
209
+ if (sportsbookNamesToCreate && sportsbookNamesToCreate.length > 0) {
210
+ console.log("Creating sportsbooks");
211
+ await sportsbook_1.default.bulkCreate(sportsbookNamesToCreate.map((s) => {
212
+ return { name: s };
213
+ }), { ignoreDuplicates: true });
214
+ allSportsbooks = await sportsbook_1.default.findAll();
215
+ }
216
+ let game = games.find((g) => g.oddsJamId == gameId);
217
+ let oddSet = new Set();
218
+ for (let odd of odds) {
219
+ if (oddSet.has(odd.id))
220
+ continue;
221
+ oddSet.add(odd.id);
222
+ let market = allMarkets.find((m) => m.label === odd.market_name);
223
+ let sportsbook = allSportsbooks.find((s) => s.name === odd.sports_book_name);
224
+ let oddsUpsertBody = mapOJOddsToOdds(odd, market, sportsbook, game, undefined);
225
+ upsertBodies.push(oddsUpsertBody);
226
+ }
227
+ }
228
+ console.log("Should start upsert");
229
+ await typed_model_1.Odds.bulkCreate(upsertBodies, {
230
+ updateOnDuplicate: [
231
+ "price",
232
+ "checkedDate",
233
+ "betPoints",
234
+ "isMain",
235
+ "isLive",
236
+ "teamId",
237
+ "playerId",
238
+ ],
239
+ });
240
+ console.log(`Inserted ${upsertBodies.length} odds for games ${gameIds.join(",")}`);
241
+ };
242
+ let a = upcomingGames.map((g) => g.oddsJamId);
243
+ while (a.length) {
244
+ let gameIds = a.splice(0, 5);
245
+ await updateOddsForGamePromise(gameIds);
246
+ }
247
+ };
248
+ if (require.main === module) {
249
+ if (require.main === module) {
250
+ run().then(async () => {
251
+ console.log("Finished");
252
+ });
253
+ }
254
+ }
255
+ //# sourceMappingURL=pullOdds.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pullOdds.js","sourceRoot":"","sources":["../../../scripts/bet-syncing/pullOdds.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
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
+ const dotenv = require("dotenv");
7
+ const oddsjam_js_wrapper_1 = __importDefault(require("@winible/oddsjam-js-wrapper"));
8
+ const typed_model_1 = require("../../typed-model");
9
+ const player_result_1 = __importDefault(require("../../typed-model/player-result"));
10
+ dotenv.config();
11
+ const OddsJamClient = (0, oddsjam_js_wrapper_1.default)(process.env.ODDS_JAM_API_KEY);
12
+ const mapOJPlayerResultToPlayerResults = (p, player, game) => {
13
+ return {
14
+ oddsJamId: p.id,
15
+ oddsJamPlayerId: p.player_id,
16
+ playerName: p.player_name,
17
+ stats: Object.entries(p)
18
+ .filter((s) => /^stat_[a-z]*/.test(s[0]))
19
+ .reduce((acc, next) => {
20
+ acc[next[0].substring(5)] = next[1];
21
+ return acc;
22
+ }, {}),
23
+ sport: p.sport,
24
+ league: p.league,
25
+ oddsJamGameId: p.game_id,
26
+ leagueId: player && player.leagueId,
27
+ gameId: game.id,
28
+ playerId: player && player.id,
29
+ };
30
+ };
31
+ const run = async () => {
32
+ const playerResults = await await OddsJamClient.getPlayerResults();
33
+ console.log(`Migrate all players results: ${playerResults.length}`);
34
+ const players = await typed_model_1.Player.findAll();
35
+ const leagues = await typed_model_1.League.findAll();
36
+ const games = await typed_model_1.Game.findAll();
37
+ for (let result of playerResults) {
38
+ if (players.find((p) => p.oddsJamId == result.player_id)) {
39
+ continue;
40
+ }
41
+ let league = leagues.find((l) => l.leagueName == result.league);
42
+ players.push(await typed_model_1.Player.create({
43
+ oddsJamId: result.player_id,
44
+ playerName: result.player_name,
45
+ sport: result.sport,
46
+ league: result.league,
47
+ leagueId: league.id,
48
+ }));
49
+ }
50
+ let resSet = new Set();
51
+ const playerResultData = playerResults.map((p) => mapOJPlayerResultToPlayerResults(p, players.find((pl) => pl.oddsJamId == p.player_id), games.find((g) => g.oddsJamId == p.game_id)));
52
+ await player_result_1.default.bulkCreate(playerResultData, {
53
+ updateOnDuplicate: ["stats", "playerId"],
54
+ });
55
+ };
56
+ if (require.main === module) {
57
+ if (require.main === module) {
58
+ run().then(async () => {
59
+ console.log("Finished");
60
+ });
61
+ }
62
+ }
63
+ //# sourceMappingURL=pullPlayerResults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pullPlayerResults.js","sourceRoot":"","sources":["../../../scripts/bet-syncing/pullPlayerResults.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
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
+ const dotenv = require("dotenv");
7
+ const oddsjam_js_wrapper_1 = __importDefault(require("@winible/oddsjam-js-wrapper"));
8
+ const typed_model_1 = require("../../typed-model");
9
+ dotenv.config();
10
+ const OddsJamClient = (0, oddsjam_js_wrapper_1.default)(process.env.ODDS_JAM_API_KEY);
11
+ const mapOJPlayerToPlayer = (t, league, team) => {
12
+ return {
13
+ oddsJamId: t.id,
14
+ playerName: t.player_name,
15
+ sport: t.sport,
16
+ league: t.league,
17
+ firstName: t.first_name,
18
+ lastName: t.last_name,
19
+ teamName: t.team_name,
20
+ oddsJamTeamId: t.team_id,
21
+ number: t.number,
22
+ position: t.position,
23
+ age: t.age,
24
+ height: t.height,
25
+ weight: t.weight,
26
+ teamId: team.id,
27
+ leagueId: league.id,
28
+ };
29
+ };
30
+ const run = async () => {
31
+ const players = await await OddsJamClient.getPlayers();
32
+ console.log(`Migrate all players: ${players.length}`);
33
+ const leagues = await typed_model_1.League.findAll();
34
+ const teams = await typed_model_1.Team.findAll();
35
+ const playerData = players.map((p) => mapOJPlayerToPlayer(p, leagues.find((l) => l.leagueName == p.league), teams.find((t) => t.oddsJamTeamId == p.team_id)));
36
+ await typed_model_1.Player.bulkCreate(playerData, {
37
+ updateOnDuplicate: [
38
+ "sport",
39
+ "league",
40
+ "firstName",
41
+ "lastName",
42
+ "teamName",
43
+ "oddsJamTeamId",
44
+ "number",
45
+ "position",
46
+ "age",
47
+ "height",
48
+ "weight",
49
+ ],
50
+ });
51
+ };
52
+ if (require.main === module) {
53
+ if (require.main === module) {
54
+ run().then(async () => {
55
+ console.log("Finished");
56
+ });
57
+ }
58
+ }
59
+ //# sourceMappingURL=pullPlayers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pullPlayers.js","sourceRoot":"","sources":["../../../scripts/bet-syncing/pullPlayers.ts"],"names":[],"mappings":";;;;;AAAA,iCAAkC;AAClC,qFAAkD;AAQlD,mDAAyD;AAEzD,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,MAAM,aAAa,GAAG,IAAA,4BAAO,EAAC,OAAO,CAAC,GAAG,CAAC,gBAAiB,CAAC,CAAC;AAE7D,MAAM,mBAAmB,GAAG,CAAC,CAAW,EAAE,MAAc,EAAE,IAAU,EAAE,EAAE;IACtE,OAAO;QACL,SAAS,EAAE,CAAC,CAAC,EAAE;QACf,UAAU,EAAE,CAAC,CAAC,WAAW;QACzB,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,SAAS,EAAE,CAAC,CAAC,UAAU;QACvB,QAAQ,EAAE,CAAC,CAAC,SAAS;QACrB,QAAQ,EAAE,CAAC,CAAC,SAAS;QACrB,aAAa,EAAE,CAAC,CAAC,OAAO;QACxB,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,GAAG,EAAE,CAAC,CAAC,GAAG;QACV,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,MAAM,EAAE,IAAI,CAAC,EAAE;QACf,QAAQ,EAAE,MAAM,CAAC,EAAE;KACpB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,GAAG,GAAG,KAAK,IAAI,EAAE;IACrB,MAAM,OAAO,GAAG,MAAM,MAAM,aAAa,CAAC,UAAU,EAAE,CAAC;IAEvD,OAAO,CAAC,GAAG,CAAC,wBAAwB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAEtD,MAAM,OAAO,GAAa,MAAM,oBAAM,CAAC,OAAO,EAAE,CAAC;IAEjD,MAAM,KAAK,GAAW,MAAM,kBAAI,CAAC,OAAO,EAAE,CAAC;IAE3C,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACnC,mBAAmB,CACjB,CAAC,EACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,MAAM,CAAE,EAC9C,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,OAAO,CAAE,CACjD,CACF,CAAC;IAEF,MAAM,oBAAM,CAAC,UAAU,CAAC,UAAU,EAAE;QAClC,iBAAiB,EAAE;YACjB,OAAO;YACP,QAAQ;YACR,WAAW;YACX,UAAU;YACV,UAAU;YACV,eAAe;YACf,QAAQ;YACR,UAAU;YACV,KAAK;YACL,QAAQ;YACR,QAAQ;SACT;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE;IAC3B,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE;QAC3B,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;YACpB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;KACJ;CACF"}
@@ -0,0 +1,183 @@
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
+ const dotenv = require("dotenv");
7
+ const oddsjam_js_wrapper_1 = __importDefault(require("@winible/oddsjam-js-wrapper"));
8
+ const typed_model_1 = require("../../typed-model");
9
+ dotenv.config();
10
+ const OddsJamClient = (0, oddsjam_js_wrapper_1.default)(process.env.ODDS_JAM_API_KEY);
11
+ const mapOJScoreToGame = (score, league, homeTeam, awayTeam) => {
12
+ if (!league) {
13
+ throw new Error(`No league for ${score.league}`);
14
+ }
15
+ return {
16
+ oddsJamId: `${score.game_id}`,
17
+ startDate: new Date(score.start_date),
18
+ homeTeam: homeTeam.teamName,
19
+ awayTeam: awayTeam.teamName,
20
+ isLive: score.is_live,
21
+ homeTeamId: homeTeam.id,
22
+ homeOddsJamTeamId: homeTeam.oddsJamTeamId,
23
+ awayTeamId: awayTeam.id,
24
+ awayOddsJamTeamId: awayTeam.oddsJamTeamId,
25
+ leagueId: league.id,
26
+ sport: score.sport,
27
+ league: score.league,
28
+ tournament: score.tournament,
29
+ clock: score.clock,
30
+ period: score.period,
31
+ status: score.status,
32
+ weather: score.weather,
33
+ broadcast: score.broadcast,
34
+ lastPlay: score.last_play,
35
+ venueName: score.venue_name,
36
+ description: score.description,
37
+ seasonType: score.season_type,
38
+ seasonWeek: score.season_week,
39
+ seasonYear: score.season_year,
40
+ awayStarter: score.away_starter,
41
+ currentOuts: score.current_outs,
42
+ homeStarter: score.home_starter,
43
+ weatherTemp: score.weather_temp,
44
+ awayTeamAbb: score.away_team_abb,
45
+ currentBalls: score.current_balls,
46
+ homeTeamAbb: score.home_team_abb,
47
+ awayTeamCity: score.away_team_city,
48
+ awayTeamName: score.away_team_name,
49
+ homeTeamCity: score.home_team_city,
50
+ homeTeamName: score.home_team_name,
51
+ venueLocation: score.venue_location,
52
+ currentStrikes: score.current_strikes,
53
+ runnerOnFirst: score.runner_on_first,
54
+ runnerOnThird: score.runner_on_third,
55
+ runnerOnSecond: score.runner_on_second,
56
+ scoreAwayTotal: score.score_away_total,
57
+ scoreHomeTotal: score.score_home_total,
58
+ weatherTempHigh: score.weather_temp_high,
59
+ currentPossession: score.current_possession,
60
+ currentBatterName: score.current_batter_name,
61
+ scoreAwayPeriods: Object.entries(score)
62
+ .filter((s) => /^score_away_period_[1-9]*/.test(s[0]))
63
+ .sort((a, b) => a[0].localeCompare(b[0]))
64
+ .map((s) => s[1]),
65
+ scoreHomePeriods: Object.entries(score)
66
+ .filter((s) => /^score_home_period_[1-9]*/.test(s[0]))
67
+ .sort((a, b) => a[0].localeCompare(b[0]))
68
+ .map((s) => s[1]),
69
+ currentPitcherName: score.current_pitcher_name,
70
+ currentDownAndDistance: score.current_down_and_distance,
71
+ };
72
+ };
73
+ const run = async () => {
74
+ const leagues = await typed_model_1.League.findAll();
75
+ const leagueForName = (name) => leagues.find((l) => l.leagueName == name);
76
+ let teams = await typed_model_1.Team.findAll();
77
+ const teamForName = (name) => teams.find((t) => t.teamName == name);
78
+ const createTeamForScore = async (teamName, g) => {
79
+ let l = leagueForName(g.league);
80
+ if (!l) {
81
+ l = await typed_model_1.League.create({
82
+ leagueName: g.league,
83
+ sport: g.sport,
84
+ });
85
+ leagues.push(l);
86
+ }
87
+ return await typed_model_1.Team.create({
88
+ teamName,
89
+ sport: g.sport,
90
+ league: g.league,
91
+ leagueId: l.id,
92
+ });
93
+ };
94
+ let teamNameSet = new Set();
95
+ let totalPages = 250;
96
+ for (let page = 1; page < totalPages; page++) {
97
+ // console.log(page);
98
+ const scoreResponse = await OddsJamClient.getScores({
99
+ page: page,
100
+ // gameId: "12253-13005-2023-01-04",
101
+ });
102
+ totalPages = scoreResponse.total_pages;
103
+ for (let score of scoreResponse.scores) {
104
+ if (!teamForName(score.home_team) && !teamNameSet.has(score.home_team)) {
105
+ teams.push(await createTeamForScore(score.home_team, score));
106
+ }
107
+ teamNameSet.add(score.home_team);
108
+ if (!teamForName(score.away_team) && !teamNameSet.has(score.away_team)) {
109
+ teams.push(await createTeamForScore(score.away_team, score));
110
+ }
111
+ teamNameSet.add(score.away_team);
112
+ }
113
+ let scoreSet = new Set();
114
+ let upsertBodies = [];
115
+ for (let score of scoreResponse.scores) {
116
+ if (scoreSet.has(score.game_id)) {
117
+ continue;
118
+ }
119
+ if (!leagueForName(score.league)) {
120
+ console.log("Create new leage");
121
+ leagues.push(await typed_model_1.League.create({
122
+ sport: score.sport,
123
+ leagueName: score.league,
124
+ }));
125
+ }
126
+ scoreSet.add(score.game_id);
127
+ upsertBodies.push(mapOJScoreToGame(score, leagueForName(score.league), teamForName(score.home_team), teamForName(score.away_team)));
128
+ }
129
+ console.log(upsertBodies);
130
+ // Updating upcoming games
131
+ await typed_model_1.Game.bulkCreate(upsertBodies, {
132
+ updateOnDuplicate: [
133
+ "startDate",
134
+ "isLive",
135
+ "tournament",
136
+ "clock",
137
+ "period",
138
+ "status",
139
+ "weather",
140
+ "broadcast",
141
+ "lastPlay",
142
+ "venueName",
143
+ "description",
144
+ "seasonType",
145
+ "seasonWeek",
146
+ "seasonYear",
147
+ "awayStarter",
148
+ "currentOuts",
149
+ "homeStarter",
150
+ "weatherTemp",
151
+ "awayTeamAbb",
152
+ "currentBalls",
153
+ "homeTeamAbb",
154
+ "awayTeamCity",
155
+ "awayTeamName",
156
+ "homeTeamCity",
157
+ "homeTeamName",
158
+ "venueLocation",
159
+ "currentStrikes",
160
+ "runnerOnFirst",
161
+ "runnerOnThird",
162
+ "runnerOnSecond",
163
+ "scoreAwayTotal",
164
+ "scoreHomeTotal",
165
+ "weatherTempHigh",
166
+ "currentPossession",
167
+ "currentBatterName",
168
+ "scoreAwayPeriods",
169
+ "scoreHomePeriods",
170
+ "currentPitcherName",
171
+ "currentDownAndDistance",
172
+ ],
173
+ });
174
+ }
175
+ };
176
+ if (require.main === module) {
177
+ if (require.main === module) {
178
+ run().then(async () => {
179
+ console.log("Finished");
180
+ });
181
+ }
182
+ }
183
+ //# sourceMappingURL=pullScores.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pullScores.js","sourceRoot":"","sources":["../../../scripts/bet-syncing/pullScores.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};