@winible/winible-typed 2.1.1 → 2.1.3
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/package.json +2 -1
- package/dist/migrations/20220601151258-custom_name_describing_your_migration.js +0 -19
- package/dist/migrations/20220601151258-custom_name_describing_your_migration.js.map +0 -1
- package/dist/migrations/20220605225655-create-dashboard-user-permissions.js +0 -27
- package/dist/migrations/20220605225655-create-dashboard-user-permissions.js.map +0 -1
- package/dist/migrations/20220606001300-update-dashboard-user-permissions.js +0 -14
- package/dist/migrations/20220606001300-update-dashboard-user-permissions.js.map +0 -1
- package/dist/migrations/20220607091109-add-read-date-for-message.js +0 -19
- package/dist/migrations/20220607091109-add-read-date-for-message.js.map +0 -1
- package/dist/migrations/20220616225456-add-delete-columns.js +0 -21
- package/dist/migrations/20220616225456-add-delete-columns.js.map +0 -1
- package/dist/migrations/20220709202211-disable-feed.js +0 -24
- package/dist/migrations/20220709202211-disable-feed.js.map +0 -1
- package/dist/migrations/20220723215213-limit-promotion-claims.js +0 -18
- package/dist/migrations/20220723215213-limit-promotion-claims.js.map +0 -1
- package/dist/migrations/20220723220233-num_claims.js +0 -12
- package/dist/migrations/20220723220233-num_claims.js.map +0 -1
- package/dist/migrations/20220723221907-default_false_promos.js +0 -17
- package/dist/migrations/20220723221907-default_false_promos.js.map +0 -1
- package/dist/migrations/20220724172559-default_zero_claims.js +0 -13
- package/dist/migrations/20220724172559-default_zero_claims.js.map +0 -1
- package/dist/migrations/20220724201419-pinned_post.js +0 -13
- package/dist/migrations/20220724201419-pinned_post.js.map +0 -1
- package/dist/migrations/20220729164625-unsend_mass.js +0 -12
- package/dist/migrations/20220729164625-unsend_mass.js.map +0 -1
- package/dist/migrations/20220823033002-interval-unit.js +0 -14
- package/dist/migrations/20220823033002-interval-unit.js.map +0 -1
- package/dist/migrations/20220830193530-processorId.js +0 -15
- package/dist/migrations/20220830193530-processorId.js.map +0 -1
- package/dist/migrations/20220907121932-add-processor-to-sub.js +0 -15
- package/dist/migrations/20220907121932-add-processor-to-sub.js.map +0 -1
- package/dist/migrations/20220907212232-add-trans-id.js +0 -12
- package/dist/migrations/20220907212232-add-trans-id.js.map +0 -1
- package/dist/migrations/20220907220423-big-int-trans.js +0 -12
- package/dist/migrations/20220907220423-big-int-trans.js.map +0 -1
- package/dist/migrations/20220909161902-add-stale.js +0 -13
- package/dist/migrations/20220909161902-add-stale.js.map +0 -1
- package/dist/migrations/20220922000225-verified-spender.js +0 -13
- package/dist/migrations/20220922000225-verified-spender.js.map +0 -1
- package/dist/migrations/20220922212108-verified-spender-2.js +0 -16
- package/dist/migrations/20220922212108-verified-spender-2.js.map +0 -1
- package/dist/migrations/20221013223648-product-subscription-list.js +0 -12
- package/dist/migrations/20221013223648-product-subscription-list.js.map +0 -1
- package/dist/migrations/20221014001037-product-subscription-list.js +0 -75
- package/dist/migrations/20221014001037-product-subscription-list.js.map +0 -1
- package/dist/migrations/20221026055245-update-type.js +0 -15
- package/dist/migrations/20221026055245-update-type.js.map +0 -1
- package/dist/migrations/20221108060019-recurly-sub.js +0 -34
- package/dist/migrations/20221108060019-recurly-sub.js.map +0 -1
- package/dist/migrations/20221110170148-rename-recurly-account.js +0 -9
- package/dist/migrations/20221110170148-rename-recurly-account.js.map +0 -1
- package/dist/migrations/20221112212510-archive-promo.js +0 -13
- package/dist/migrations/20221112212510-archive-promo.js.map +0 -1
- package/dist/migrations/20221117044529-sub-status.js +0 -13
- package/dist/migrations/20221117044529-sub-status.js.map +0 -1
- package/dist/migrations/20221122051433-default-plan.js +0 -13
- package/dist/migrations/20221122051433-default-plan.js.map +0 -1
- package/dist/migrations/20221128034620-invoice-id.js +0 -12
- package/dist/migrations/20221128034620-invoice-id.js.map +0 -1
- package/dist/migrations/20230330174702-extend-premium-content.js +0 -35
- package/dist/migrations/20230330174702-extend-premium-content.js.map +0 -1
- package/dist/scripts/bet-syncing/findGoodBets.js +0 -238
- package/dist/scripts/bet-syncing/findGoodBets.js.map +0 -1
- package/dist/scripts/bet-syncing/gradeBets.js +0 -109
- package/dist/scripts/bet-syncing/gradeBets.js.map +0 -1
- package/dist/scripts/bet-syncing/pullGames.js +0 -198
- package/dist/scripts/bet-syncing/pullGames.js.map +0 -1
- package/dist/scripts/bet-syncing/pullLiveScores.js +0 -187
- package/dist/scripts/bet-syncing/pullLiveScores.js.map +0 -1
- package/dist/scripts/bet-syncing/pullOdds.js +0 -268
- package/dist/scripts/bet-syncing/pullOdds.js.map +0 -1
- package/dist/scripts/bet-syncing/pullPlayerResults.js +0 -89
- package/dist/scripts/bet-syncing/pullPlayerResults.js.map +0 -1
- package/dist/scripts/bet-syncing/pullPlayers.js +0 -59
- package/dist/scripts/bet-syncing/pullPlayers.js.map +0 -1
- package/dist/scripts/bet-syncing/pullScores.js +0 -183
- package/dist/scripts/bet-syncing/pullScores.js.map +0 -1
- package/dist/scripts/bet-syncing/pullTeams.js +0 -85
- package/dist/scripts/bet-syncing/pullTeams.js.map +0 -1
- package/dist/scripts/bet-syncing/updateStaleOdds.js +0 -34
- package/dist/scripts/bet-syncing/updateStaleOdds.js.map +0 -1
- package/dist/scripts/createDashboardLink.js +0 -30
- package/dist/scripts/createDashboardLink.js.map +0 -1
- package/dist/scripts/createRecurlyPlans.js +0 -124
- package/dist/scripts/createRecurlyPlans.js.map +0 -1
- package/dist/scripts/mapCurrentPaymentsToInvoiceId.js +0 -98
- package/dist/scripts/mapCurrentPaymentsToInvoiceId.js.map +0 -1
- package/dist/scripts/payoutRecurlySubs.js +0 -160
- package/dist/scripts/payoutRecurlySubs.js.map +0 -1
- package/dist/scripts/payoutSubscriptions.js +0 -201
- package/dist/scripts/payoutSubscriptions.js.map +0 -1
- package/dist/scripts/removeUnreferenceSubs.js +0 -39
- package/dist/scripts/removeUnreferenceSubs.js.map +0 -1
- package/dist/slack/index.js +0 -26
- package/dist/slack/index.js.map +0 -1
- package/dist/slack/v1/bypassCreator.js +0 -81
- package/dist/slack/v1/bypassCreator.js.map +0 -1
- package/dist/slack/v1/cancelSubscription.js +0 -35
- package/dist/slack/v1/cancelSubscription.js.map +0 -1
- package/dist/slack/v1/changeName.js +0 -41
- package/dist/slack/v1/changeName.js.map +0 -1
- package/dist/slack/v1/checkAuthSub.js +0 -58
- package/dist/slack/v1/checkAuthSub.js.map +0 -1
- package/dist/slack/v1/dashboardLink.js +0 -30
- package/dist/slack/v1/dashboardLink.js.map +0 -1
- package/dist/slack/v1/index.js +0 -21
- package/dist/slack/v1/index.js.map +0 -1
- package/dist/slack/v1/refund.js +0 -42
- package/dist/slack/v1/refund.js.map +0 -1
- package/dist/slack/v1/searchUser.js +0 -169
- package/dist/slack/v1/searchUser.js.map +0 -1
- package/dist/src/pk-client.js +0 -1103
- package/dist/src/pk-client.js.map +0 -1
- package/dist/src/pk-sub.js +0 -310
- package/dist/src/pk-sub.js.map +0 -1
- package/dist/typed-model/asset-category.js +0 -38
- package/dist/typed-model/asset-category.js.map +0 -1
- package/dist/typed-model/asset-constent-person.js +0 -56
- package/dist/typed-model/asset-constent-person.js.map +0 -1
- package/dist/typed-model/bet.js +0 -64
- package/dist/typed-model/bet.js.map +0 -1
- package/dist/typed-model/blocked-ip.js +0 -34
- package/dist/typed-model/blocked-ip.js.map +0 -1
- package/dist/typed-model/category-tag.js +0 -46
- package/dist/typed-model/category-tag.js.map +0 -1
- package/dist/typed-model/consent-person.js +0 -55
- package/dist/typed-model/consent-person.js.map +0 -1
- package/dist/typed-model/content-category-tag.js +0 -58
- package/dist/typed-model/content-category-tag.js.map +0 -1
- package/dist/typed-model/credit-payment.js +0 -108
- package/dist/typed-model/credit-payment.js.map +0 -1
- package/dist/typed-model/credit-payout.js +0 -42
- package/dist/typed-model/credit-payout.js.map +0 -1
- package/dist/typed-model/credit-purchase.js +0 -46
- package/dist/typed-model/credit-purchase.js.map +0 -1
- package/dist/typed-model/customer-profile.js +0 -52
- package/dist/typed-model/customer-profile.js.map +0 -1
- package/dist/typed-model/dashboard-user-permissions.js +0 -34
- package/dist/typed-model/dashboard-user-permissions.js.map +0 -1
- package/dist/typed-model/dashboard-user.js +0 -109
- package/dist/typed-model/dashboard-user.js.map +0 -1
- package/dist/typed-model/fan-list.js +0 -46
- package/dist/typed-model/fan-list.js.map +0 -1
- package/dist/typed-model/fraud.js +0 -41
- package/dist/typed-model/fraud.js.map +0 -1
- package/dist/typed-model/game.js +0 -234
- package/dist/typed-model/game.js.map +0 -1
- package/dist/typed-model/list-member.js +0 -47
- package/dist/typed-model/list-member.js.map +0 -1
- package/dist/typed-model/market.js +0 -36
- package/dist/typed-model/market.js.map +0 -1
- package/dist/typed-model/mass-message.js +0 -43
- package/dist/typed-model/mass-message.js.map +0 -1
- package/dist/typed-model/media-category.js +0 -49
- package/dist/typed-model/media-category.js.map +0 -1
- package/dist/typed-model/message-media.js +0 -53
- package/dist/typed-model/message-media.js.map +0 -1
- package/dist/typed-model/message.js +0 -191
- package/dist/typed-model/message.js.map +0 -1
- package/dist/typed-model/odds.js +0 -160
- package/dist/typed-model/odds.js.map +0 -1
- package/dist/typed-model/parlay.js +0 -30
- package/dist/typed-model/parlay.js.map +0 -1
- package/dist/typed-model/phone-chat-participation.js +0 -127
- package/dist/typed-model/phone-chat-participation.js.map +0 -1
- package/dist/typed-model/phone-chat.js +0 -118
- package/dist/typed-model/phone-chat.js.map +0 -1
- package/dist/typed-model/phone-owner.js +0 -266
- package/dist/typed-model/phone-owner.js.map +0 -1
- package/dist/typed-model/phone-user.js +0 -109
- package/dist/typed-model/phone-user.js.map +0 -1
- package/dist/typed-model/player-result.js +0 -67
- package/dist/typed-model/player-result.js.map +0 -1
- package/dist/typed-model/player.js +0 -87
- package/dist/typed-model/player.js.map +0 -1
- package/dist/typed-model/premium-content.js +0 -128
- package/dist/typed-model/premium-content.js.map +0 -1
- package/dist/typed-model/purchased-content.js +0 -69
- package/dist/typed-model/purchased-content.js.map +0 -1
- package/dist/typed-model/short-url.js +0 -88
- package/dist/typed-model/short-url.js.map +0 -1
- package/dist/typed-model/sportsbook.js +0 -31
- package/dist/typed-model/sportsbook.js.map +0 -1
- package/dist/typed-model/subscription-bundle.js +0 -57
- package/dist/typed-model/subscription-bundle.js.map +0 -1
- package/dist/typed-model/subscription-category-tags.js +0 -58
- package/dist/typed-model/subscription-category-tags.js.map +0 -1
- package/dist/typed-model/subscription-plan-on-premium-content.js +0 -57
- package/dist/typed-model/subscription-plan-on-premium-content.js.map +0 -1
- package/dist/typed-model/subscription-promotion.js +0 -101
- package/dist/typed-model/subscription-promotion.js.map +0 -1
- package/dist/typed-model/subscription.js +0 -111
- package/dist/typed-model/subscription.js.map +0 -1
- package/dist/typed-model/team.js +0 -70
- package/dist/typed-model/team.js.map +0 -1
- package/dist/typed-model/twilio-phone.js +0 -92
- package/dist/typed-model/twilio-phone.js.map +0 -1
- package/dist/typed-model/user-follow.js +0 -103
- package/dist/typed-model/user-follow.js.map +0 -1
- package/dist/typed-model/verification-code.js +0 -52
- package/dist/typed-model/verification-code.js.map +0 -1
@@ -1,183 +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
|
-
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
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"pullScores.js","sourceRoot":"","sources":["../../../scripts/bet-syncing/pullScores.ts"],"names":[],"mappings":"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"}
|
@@ -1,85 +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
|
-
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 ALL_SPORTS = [
|
12
|
-
"football",
|
13
|
-
"basketball",
|
14
|
-
"baseball",
|
15
|
-
"mma",
|
16
|
-
"boxing",
|
17
|
-
"hockey",
|
18
|
-
"soccer",
|
19
|
-
"tennis",
|
20
|
-
"golf",
|
21
|
-
"motorsports",
|
22
|
-
"esports",
|
23
|
-
"wrestling",
|
24
|
-
"aussie-rules",
|
25
|
-
"rugby",
|
26
|
-
];
|
27
|
-
const mapOJTeamToTeam = (t, league) => {
|
28
|
-
return {
|
29
|
-
oddsJamTeamId: `${t.id}`,
|
30
|
-
sport: t.sport,
|
31
|
-
league: t.league,
|
32
|
-
teamName: t.team_name,
|
33
|
-
teamCity: t.team_city,
|
34
|
-
teamMascot: t.team_mascot,
|
35
|
-
teamAbbreviation: t.team_abbreviation,
|
36
|
-
leagueId: league.id,
|
37
|
-
};
|
38
|
-
};
|
39
|
-
const run = async () => {
|
40
|
-
for (const sport of ALL_SPORTS) {
|
41
|
-
console.log(`Updating leagues for sport ${sport}`);
|
42
|
-
const ojLeagues = await OddsJamClient.getLeagues({
|
43
|
-
sport: sport,
|
44
|
-
});
|
45
|
-
console.log(ojLeagues);
|
46
|
-
const leagueData = ojLeagues.map((l) => {
|
47
|
-
return {
|
48
|
-
leagueName: l,
|
49
|
-
sport: sport || "sport",
|
50
|
-
};
|
51
|
-
});
|
52
|
-
await typed_model_1.League.bulkCreate(leagueData, {
|
53
|
-
updateOnDuplicate: ["updatedAt"],
|
54
|
-
});
|
55
|
-
}
|
56
|
-
const leagues = await typed_model_1.League.findAll();
|
57
|
-
const teams = await OddsJamClient.getTeams();
|
58
|
-
for (let team of teams) {
|
59
|
-
if (!leagues.find((l) => l.leagueName == team.league)) {
|
60
|
-
await typed_model_1.League.create({
|
61
|
-
sport: team.sport,
|
62
|
-
leagueName: team.league,
|
63
|
-
});
|
64
|
-
}
|
65
|
-
}
|
66
|
-
const teamData = teams.map((t) => mapOJTeamToTeam(t, leagues.find((l) => l.leagueName == t.league)));
|
67
|
-
await typed_model_1.Team.bulkCreate(teamData, {
|
68
|
-
updateOnDuplicate: [
|
69
|
-
"teamName",
|
70
|
-
"teamCity",
|
71
|
-
"teamMascot",
|
72
|
-
"teamAbbreviation",
|
73
|
-
"updatedAt",
|
74
|
-
"oddsJamTeamId",
|
75
|
-
],
|
76
|
-
});
|
77
|
-
};
|
78
|
-
if (require.main === module) {
|
79
|
-
if (require.main === module) {
|
80
|
-
run().then(async () => {
|
81
|
-
console.log("Finished");
|
82
|
-
});
|
83
|
-
}
|
84
|
-
}
|
85
|
-
//# sourceMappingURL=pullTeams.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"pullTeams.js","sourceRoot":"","sources":["../../../scripts/bet-syncing/pullTeams.ts"],"names":[],"mappings":"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"}
|
@@ -1,34 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
const dotenv = require("dotenv");
|
4
|
-
const typed_model_1 = require("../../typed-model");
|
5
|
-
const sequelize_1 = require("sequelize");
|
6
|
-
dotenv.config();
|
7
|
-
const run = async () => {
|
8
|
-
console.log("Updating stale odds");
|
9
|
-
await typed_model_1.pbSequelize.query(`UPDATE odds set stale = true where id in
|
10
|
-
(select id FROM (
|
11
|
-
SELECT
|
12
|
-
id,
|
13
|
-
name,
|
14
|
-
market_name,
|
15
|
-
odds_jam_game_id,
|
16
|
-
sports_book_name,
|
17
|
-
is_main,
|
18
|
-
market_id,
|
19
|
-
odds_jam_player_id,
|
20
|
-
checked_date,
|
21
|
-
name like '%Over%' as is_over,
|
22
|
-
ROW_NUMBER() over (partition by odds_jam_game_id, sports_book_name, is_main, market_name, odds_jam_player_id, name like '%Over%' order by checked_date DESC) as row
|
23
|
-
FROM odds
|
24
|
-
WHERE odds_jam_player_id IS NOT NULL AND bet_result IS NULL AND is_main
|
25
|
-
) sub where row > 1)`, { type: sequelize_1.QueryTypes.UPDATE });
|
26
|
-
};
|
27
|
-
if (require.main === module) {
|
28
|
-
if (require.main === module) {
|
29
|
-
run().then(async () => {
|
30
|
-
console.log("Finished");
|
31
|
-
});
|
32
|
-
}
|
33
|
-
}
|
34
|
-
//# sourceMappingURL=updateStaleOdds.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"updateStaleOdds.js","sourceRoot":"","sources":["../../../scripts/bet-syncing/updateStaleOdds.ts"],"names":[],"mappings":";;AAAA,iCAAkC;AAElC,mDAAgD;AAChD,yCAAuC;AAEvC,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,MAAM,GAAG,GAAG,KAAK,IAAI,EAAE;IACrB,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACnC,MAAM,yBAAW,CAAC,KAAK,CACrB;;;;;;;;;;;;;;;;yBAgBqB,EACrB,EAAE,IAAI,EAAE,sBAAU,CAAC,MAAM,EAAE,CAC5B,CAAC;AACJ,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"}
|
@@ -1,30 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
const dotenv = require("dotenv");
|
4
|
-
dotenv.config();
|
5
|
-
const jwt = require("jsonwebtoken");
|
6
|
-
const typed_model_1 = require("../typed-model");
|
7
|
-
const createToken = (user_id) => {
|
8
|
-
const secret = "hauksyf89a4ow8482900j2309j2";
|
9
|
-
return jwt.sign({
|
10
|
-
id: user_id,
|
11
|
-
}, secret, { expiresIn: "365d" });
|
12
|
-
};
|
13
|
-
const run = async () => {
|
14
|
-
var args = process.argv.slice(2);
|
15
|
-
for (let id of args) {
|
16
|
-
console.log("User_id: " + id);
|
17
|
-
const dashboardUser = await typed_model_1.DashboardUser.findOne({
|
18
|
-
where: { id },
|
19
|
-
});
|
20
|
-
console.log(`https://dashboard.winible.com?auth_token=${createToken(dashboardUser.id)}`);
|
21
|
-
}
|
22
|
-
};
|
23
|
-
if (require.main === module) {
|
24
|
-
if (require.main === module) {
|
25
|
-
run().then(async () => {
|
26
|
-
console.log("Finished");
|
27
|
-
});
|
28
|
-
}
|
29
|
-
}
|
30
|
-
//# sourceMappingURL=createDashboardLink.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"createDashboardLink.js","sourceRoot":"","sources":["../../scripts/createDashboardLink.ts"],"names":[],"mappings":";;AAAA,iCAAkC;AAClC,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,oCAAqC;AAErC,gDAA+C;AAE/C,MAAM,WAAW,GAAG,CAAC,OAAe,EAAE,EAAE;IACtC,MAAM,MAAM,GAAG,6BAA6B,CAAC;IAC7C,OAAO,GAAG,CAAC,IAAI,CACb;QACE,EAAE,EAAE,OAAO;KACZ,EACD,MAAO,EACP,EAAE,SAAS,EAAE,MAAM,EAAE,CACtB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,GAAG,GAAG,KAAK,IAAI,EAAE;IACrB,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACjC,KAAK,IAAI,EAAE,IAAI,IAAI,EAAE;QACnB,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC;QAC9B,MAAM,aAAa,GAAG,MAAM,2BAAa,CAAC,OAAO,CAAC;YAChD,KAAK,EAAE,EAAE,EAAE,EAAE;SACd,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CACT,4CAA4C,WAAW,CACrD,aAAc,CAAC,EAAE,CAClB,EAAE,CACJ,CAAC;KACH;AACH,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"}
|
@@ -1,124 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
const dotenv = require("dotenv");
|
4
|
-
dotenv.config();
|
5
|
-
const src_1 = require("../src");
|
6
|
-
const typed_model_1 = require("../typed-model");
|
7
|
-
const run = async () => {
|
8
|
-
const subscriptionPlans = await typed_model_1.SubscriptionPlan.findAll({
|
9
|
-
include: [
|
10
|
-
{
|
11
|
-
model: typed_model_1.PhoneOwner,
|
12
|
-
required: true,
|
13
|
-
// where: {
|
14
|
-
// id: "1090340740690629290",
|
15
|
-
// },
|
16
|
-
attributes: ["name", "id"],
|
17
|
-
},
|
18
|
-
{
|
19
|
-
model: typed_model_1.SubscriptionPromotion,
|
20
|
-
required: false,
|
21
|
-
where: typed_model_1.SubscriptionPromotion.activeWhereClause(),
|
22
|
-
},
|
23
|
-
{
|
24
|
-
model: typed_model_1.SubscriptionBundle,
|
25
|
-
required: false,
|
26
|
-
},
|
27
|
-
],
|
28
|
-
});
|
29
|
-
for (let plan of subscriptionPlans) {
|
30
|
-
await convertPlan(plan);
|
31
|
-
}
|
32
|
-
};
|
33
|
-
const getPlanName = (subscriptionPlan) => {
|
34
|
-
if (subscriptionPlan.planName) {
|
35
|
-
return `${subscriptionPlan.PhoneOwner.name}: ${subscriptionPlan.planName}`;
|
36
|
-
}
|
37
|
-
if (subscriptionPlan.intervalUnit == "months") {
|
38
|
-
return `${subscriptionPlan.PhoneOwner.name}: Monthly Subscription`;
|
39
|
-
}
|
40
|
-
if (subscriptionPlan.intervalUnit == "days") {
|
41
|
-
return `${subscriptionPlan.PhoneOwner.name}: Weekly Subscription`;
|
42
|
-
}
|
43
|
-
};
|
44
|
-
const convertPlan = async (subscriptionPlan) => {
|
45
|
-
let amount = subscriptionPlan.amountInCents;
|
46
|
-
let promotion = subscriptionPlan.SubscriptionPromotions &&
|
47
|
-
subscriptionPlan.SubscriptionPromotions[0];
|
48
|
-
let trialAmount = promotion
|
49
|
-
? (1.0 - promotion.trialDiscountPercentage) * amount
|
50
|
-
: 0;
|
51
|
-
let trialLength = promotion ? promotion.trialLength : 0;
|
52
|
-
let planName = getPlanName(subscriptionPlan);
|
53
|
-
let rampIntervals = undefined;
|
54
|
-
let defaultCurrency = { unitAmount: amount / 100.0, currency: "USD" };
|
55
|
-
if (promotion) {
|
56
|
-
rampIntervals = [
|
57
|
-
{
|
58
|
-
startingBillingCycle: 1,
|
59
|
-
currencies: [{ unitAmount: trialAmount / 100.0, currency: "USD" }],
|
60
|
-
},
|
61
|
-
{
|
62
|
-
startingBillingCycle: (trialLength || 1) + 1,
|
63
|
-
currencies: [defaultCurrency],
|
64
|
-
},
|
65
|
-
];
|
66
|
-
}
|
67
|
-
else {
|
68
|
-
rampIntervals = [
|
69
|
-
{
|
70
|
-
startingBillingCycle: 1,
|
71
|
-
currencies: [defaultCurrency],
|
72
|
-
},
|
73
|
-
];
|
74
|
-
}
|
75
|
-
let planCreation = {
|
76
|
-
name: planName,
|
77
|
-
code: "plan_" + subscriptionPlan.id,
|
78
|
-
intervalUnit: subscriptionPlan.intervalUnit,
|
79
|
-
intervalLength: subscriptionPlan.intervalCount,
|
80
|
-
autoRenew: !subscriptionPlan.oneTimePurchase && !subscriptionPlan.accessEndDate,
|
81
|
-
};
|
82
|
-
if (!subscriptionPlan.recurlyPlanId) {
|
83
|
-
planCreation.rampIntervals = rampIntervals;
|
84
|
-
planCreation.pricingModel = "ramp";
|
85
|
-
let recurlySubscriptionPlan = await src_1.recurlyInstance.createPlan(planCreation);
|
86
|
-
console.log("Created new recurly plan");
|
87
|
-
subscriptionPlan.recurlyPlanId = recurlySubscriptionPlan.id;
|
88
|
-
await subscriptionPlan.save();
|
89
|
-
}
|
90
|
-
else {
|
91
|
-
console.log("Plan already has recurly");
|
92
|
-
}
|
93
|
-
for (let bundle of (subscriptionPlan.SubscriptionBundles ||
|
94
|
-
[])) {
|
95
|
-
if (bundle.recurlyPlanId) {
|
96
|
-
console.log("Bundle already has plan");
|
97
|
-
continue;
|
98
|
-
}
|
99
|
-
let bundleAmount = amount *
|
100
|
-
bundle.bundleIntervalCount *
|
101
|
-
(1 - bundle.bundleDiscountPercentage);
|
102
|
-
let bundleCreate = {
|
103
|
-
name: planName,
|
104
|
-
code: "bundle_" + bundle.id,
|
105
|
-
intervalUnit: subscriptionPlan.intervalUnit,
|
106
|
-
intervalLength: subscriptionPlan.intervalCount * bundle.bundleIntervalCount,
|
107
|
-
autoRenew: true,
|
108
|
-
currencies: [{ unitAmount: bundleAmount / 100.0, currency: "USD" }],
|
109
|
-
pricingModel: "fixed",
|
110
|
-
};
|
111
|
-
let recurlyBundlePlan = await src_1.recurlyInstance.createPlan(bundleCreate);
|
112
|
-
bundle.recurlyPlanId = recurlyBundlePlan.id;
|
113
|
-
await bundle.save();
|
114
|
-
console.log("Created susbcription bundle");
|
115
|
-
}
|
116
|
-
};
|
117
|
-
if (require.main === module) {
|
118
|
-
if (require.main === module) {
|
119
|
-
run().then(async () => {
|
120
|
-
console.log("Finished");
|
121
|
-
});
|
122
|
-
}
|
123
|
-
}
|
124
|
-
//# sourceMappingURL=createRecurlyPlans.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"createRecurlyPlans.js","sourceRoot":"","sources":["../../scripts/createRecurlyPlans.ts"],"names":[],"mappings":"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"}
|
@@ -1,98 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
var __asyncValues = (this && this.__asyncValues) || function (o) {
|
3
|
-
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
4
|
-
var m = o[Symbol.asyncIterator], i;
|
5
|
-
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
|
6
|
-
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
|
7
|
-
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
8
|
-
};
|
9
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
10
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
11
|
-
};
|
12
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
13
|
-
const dotenv = require("dotenv");
|
14
|
-
dotenv.config();
|
15
|
-
const sequelize_1 = require("sequelize");
|
16
|
-
const src_1 = require("../src");
|
17
|
-
const moment_1 = __importDefault(require("moment"));
|
18
|
-
const typed_model_1 = require("../typed-model");
|
19
|
-
const run = async () => {
|
20
|
-
const subscriptions = await typed_model_1.Subscription.findAll({
|
21
|
-
where: (0, sequelize_1.literal)("recurly_subscription_id IS NOT NULL"),
|
22
|
-
});
|
23
|
-
const creditPayments = await typed_model_1.CreditPayments.findAll({
|
24
|
-
where: {
|
25
|
-
id: {
|
26
|
-
[sequelize_1.Op.gt]: "1117488463210369567",
|
27
|
-
},
|
28
|
-
interactionType: "subscription",
|
29
|
-
},
|
30
|
-
});
|
31
|
-
for (let sub of subscriptions) {
|
32
|
-
await mapSubscription(sub, creditPayments);
|
33
|
-
}
|
34
|
-
};
|
35
|
-
const mapSubscription = async (sub, creditPayments) => {
|
36
|
-
var _a, e_1, _b, _c;
|
37
|
-
let subPayments = creditPayments
|
38
|
-
.filter((c) => {
|
39
|
-
return JSON.parse(c.metadata).subscription_id == sub.id;
|
40
|
-
})
|
41
|
-
.sort((c1, c2) => {
|
42
|
-
if ((0, moment_1.default)(c1.createdAt).isAfter((0, moment_1.default)(c2.createdAt))) {
|
43
|
-
return -1;
|
44
|
-
}
|
45
|
-
return 1;
|
46
|
-
});
|
47
|
-
let response = await src_1.recurlyInstance.listSubscriptionInvoices(sub.recurlySubscriptionId, {
|
48
|
-
params: { sort: "created_at", order: "desc", type: "charge" },
|
49
|
-
});
|
50
|
-
let invoices = [];
|
51
|
-
try {
|
52
|
-
for (var _d = true, _e = __asyncValues(response.each()), _f; _f = await _e.next(), _a = _f.done, !_a;) {
|
53
|
-
_c = _f.value;
|
54
|
-
_d = false;
|
55
|
-
try {
|
56
|
-
const invoice = _c;
|
57
|
-
invoices.push(invoice);
|
58
|
-
}
|
59
|
-
finally {
|
60
|
-
_d = true;
|
61
|
-
}
|
62
|
-
}
|
63
|
-
}
|
64
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
65
|
-
finally {
|
66
|
-
try {
|
67
|
-
if (!_d && !_a && (_b = _e.return)) await _b.call(_e);
|
68
|
-
}
|
69
|
-
finally { if (e_1) throw e_1.error; }
|
70
|
-
}
|
71
|
-
let paidInvoices = invoices.filter((i) => i.paid > 0);
|
72
|
-
console.log(sub.id);
|
73
|
-
console.log(subPayments.map((i) => i.createdAt));
|
74
|
-
console.log(paidInvoices.map((i) => i.createdAt));
|
75
|
-
for (let i = 0; i < subPayments.length; i++) {
|
76
|
-
let cp = subPayments[i];
|
77
|
-
let invoice = paidInvoices[i];
|
78
|
-
if (cp.creditAmountInCents / 100.0 != invoice.total) {
|
79
|
-
console.log(`Amounts did not match: ${cp.creditAmountInCents / 100.0} <> ${invoice.total}`);
|
80
|
-
return;
|
81
|
-
}
|
82
|
-
if (cp.invoiceId) {
|
83
|
-
console.log(`Already has invoice id`);
|
84
|
-
return;
|
85
|
-
}
|
86
|
-
cp.invoiceId = invoice.id;
|
87
|
-
await cp.save();
|
88
|
-
console.log("Update invoice id");
|
89
|
-
}
|
90
|
-
};
|
91
|
-
if (require.main === module) {
|
92
|
-
if (require.main === module) {
|
93
|
-
run().then(async () => {
|
94
|
-
console.log("Finished");
|
95
|
-
});
|
96
|
-
}
|
97
|
-
}
|
98
|
-
//# sourceMappingURL=mapCurrentPaymentsToInvoiceId.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"mapCurrentPaymentsToInvoiceId.js","sourceRoot":"","sources":["../../scripts/mapCurrentPaymentsToInvoiceId.ts"],"names":[],"mappings":"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"}
|