@winible/winible-typed 1.0.0
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/README.md +32 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/migrations/20220601151258-custom_name_describing_your_migration.js +19 -0
- package/dist/migrations/20220601151258-custom_name_describing_your_migration.js.map +1 -0
- package/dist/migrations/20220605225655-create-dashboard-user-permissions.js +27 -0
- package/dist/migrations/20220605225655-create-dashboard-user-permissions.js.map +1 -0
- package/dist/migrations/20220606001300-update-dashboard-user-permissions.js +14 -0
- package/dist/migrations/20220606001300-update-dashboard-user-permissions.js.map +1 -0
- package/dist/migrations/20220607091109-add-read-date-for-message.js +19 -0
- package/dist/migrations/20220607091109-add-read-date-for-message.js.map +1 -0
- package/dist/migrations/20220616225456-add-delete-columns.js +21 -0
- package/dist/migrations/20220616225456-add-delete-columns.js.map +1 -0
- package/dist/migrations/20220709202211-disable-feed.js +24 -0
- package/dist/migrations/20220709202211-disable-feed.js.map +1 -0
- package/dist/migrations/20220723215213-limit-promotion-claims.js +18 -0
- package/dist/migrations/20220723215213-limit-promotion-claims.js.map +1 -0
- package/dist/migrations/20220723220233-num_claims.js +12 -0
- package/dist/migrations/20220723220233-num_claims.js.map +1 -0
- package/dist/migrations/20220723221907-default_false_promos.js +17 -0
- package/dist/migrations/20220723221907-default_false_promos.js.map +1 -0
- package/dist/migrations/20220724172559-default_zero_claims.js +13 -0
- package/dist/migrations/20220724172559-default_zero_claims.js.map +1 -0
- package/dist/migrations/20220724201419-pinned_post.js +13 -0
- package/dist/migrations/20220724201419-pinned_post.js.map +1 -0
- package/dist/migrations/20220729164625-unsend_mass.js +12 -0
- package/dist/migrations/20220729164625-unsend_mass.js.map +1 -0
- package/dist/migrations/20220823033002-interval-unit.js +14 -0
- package/dist/migrations/20220823033002-interval-unit.js.map +1 -0
- package/dist/migrations/20220830193530-processorId.js +15 -0
- package/dist/migrations/20220830193530-processorId.js.map +1 -0
- package/dist/migrations/20220907121932-add-processor-to-sub.js +15 -0
- package/dist/migrations/20220907121932-add-processor-to-sub.js.map +1 -0
- package/dist/migrations/20220907212232-add-trans-id.js +12 -0
- package/dist/migrations/20220907212232-add-trans-id.js.map +1 -0
- package/dist/migrations/20220907220423-big-int-trans.js +12 -0
- package/dist/migrations/20220907220423-big-int-trans.js.map +1 -0
- package/dist/migrations/20220909161902-add-stale.js +13 -0
- package/dist/migrations/20220909161902-add-stale.js.map +1 -0
- package/dist/migrations/20220922000225-verified-spender.js +13 -0
- package/dist/migrations/20220922000225-verified-spender.js.map +1 -0
- package/dist/migrations/20220922212108-verified-spender-2.js +16 -0
- package/dist/migrations/20220922212108-verified-spender-2.js.map +1 -0
- package/dist/migrations/20221013223648-product-subscription-list.js +12 -0
- package/dist/migrations/20221013223648-product-subscription-list.js.map +1 -0
- package/dist/migrations/20221014001037-product-subscription-list.js +75 -0
- package/dist/migrations/20221014001037-product-subscription-list.js.map +1 -0
- package/dist/migrations/20221026055245-update-type.js +15 -0
- package/dist/migrations/20221026055245-update-type.js.map +1 -0
- package/dist/scripts/authorizeTransfer.js +188 -0
- package/dist/scripts/authorizeTransfer.js.map +1 -0
- package/dist/scripts/createDashboardLink.js +30 -0
- package/dist/scripts/createDashboardLink.js.map +1 -0
- package/dist/scripts/deleteMalformedImages.js +84 -0
- package/dist/scripts/deleteMalformedImages.js.map +1 -0
- package/dist/scripts/importMixpanelEvents.js +44 -0
- package/dist/scripts/importMixpanelEvents.js.map +1 -0
- package/dist/scripts/payoutSubscriptions.js +185 -0
- package/dist/scripts/payoutSubscriptions.js.map +1 -0
- package/dist/scripts/removeUnreferenceSubs.js +39 -0
- package/dist/scripts/removeUnreferenceSubs.js.map +1 -0
- package/dist/scripts/test.js +33 -0
- package/dist/scripts/test.js.map +1 -0
- package/dist/server/index.js +30 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/middlewares/slack-auth.js +40 -0
- package/dist/server/middlewares/slack-auth.js.map +1 -0
- package/dist/server/v1/bypassCreator.js +81 -0
- package/dist/server/v1/bypassCreator.js.map +1 -0
- package/dist/server/v1/cancelSubscription.js +35 -0
- package/dist/server/v1/cancelSubscription.js.map +1 -0
- package/dist/server/v1/changeName.js +41 -0
- package/dist/server/v1/changeName.js.map +1 -0
- package/dist/server/v1/checkAuthSub.js +58 -0
- package/dist/server/v1/checkAuthSub.js.map +1 -0
- package/dist/server/v1/dashboardLink.js +30 -0
- package/dist/server/v1/dashboardLink.js.map +1 -0
- package/dist/server/v1/getSuspendedSubs.js +76 -0
- package/dist/server/v1/getSuspendedSubs.js.map +1 -0
- package/dist/server/v1/index.js +28 -0
- package/dist/server/v1/index.js.map +1 -0
- package/dist/server/v1/manualCreateSub.js +159 -0
- package/dist/server/v1/manualCreateSub.js.map +1 -0
- package/dist/server/v1/refund.js +78 -0
- package/dist/server/v1/refund.js.map +1 -0
- package/dist/server/v1/retrySubscription.js +81 -0
- package/dist/server/v1/retrySubscription.js.map +1 -0
- package/dist/server/v1/searchUser.js +169 -0
- package/dist/server/v1/searchUser.js.map +1 -0
- package/dist/server/v1/slack.js +14 -0
- package/dist/server/v1/slack.js.map +1 -0
- package/dist/src/index.js +24 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/pk-client.js +1103 -0
- package/dist/src/pk-client.js.map +1 -0
- package/dist/src/pk-sub.js +310 -0
- package/dist/src/pk-sub.js.map +1 -0
- package/dist/src/slack-client.js +48 -0
- package/dist/src/slack-client.js.map +1 -0
- package/dist/src/types.js +3 -0
- package/dist/src/types.js.map +1 -0
- package/dist/support/index.js +19 -0
- package/dist/support/index.js.map +1 -0
- package/dist/support/metrics.js +21 -0
- package/dist/support/metrics.js.map +1 -0
- package/dist/support/mixpanel.js +7 -0
- package/dist/support/mixpanel.js.map +1 -0
- package/dist/support/slack-client.js +51 -0
- package/dist/support/slack-client.js.map +1 -0
- package/dist/support/uploadcare.js +140 -0
- package/dist/support/uploadcare.js.map +1 -0
- package/dist/support/utils.js +69 -0
- package/dist/support/utils.js.map +1 -0
- package/dist/typed-model/asset-category.js +38 -0
- package/dist/typed-model/asset-category.js.map +1 -0
- package/dist/typed-model/asset-constent-person.js +56 -0
- package/dist/typed-model/asset-constent-person.js.map +1 -0
- package/dist/typed-model/blocked-ip.js +34 -0
- package/dist/typed-model/blocked-ip.js.map +1 -0
- package/dist/typed-model/category-tag.js +46 -0
- package/dist/typed-model/category-tag.js.map +1 -0
- package/dist/typed-model/consent-person.js +55 -0
- package/dist/typed-model/consent-person.js.map +1 -0
- package/dist/typed-model/content-category-tag.js +58 -0
- package/dist/typed-model/content-category-tag.js.map +1 -0
- package/dist/typed-model/content-like.js +58 -0
- package/dist/typed-model/content-like.js.map +1 -0
- package/dist/typed-model/credit-payment.js +389 -0
- package/dist/typed-model/credit-payment.js.map +1 -0
- package/dist/typed-model/credit-payout.js +42 -0
- package/dist/typed-model/credit-payout.js.map +1 -0
- package/dist/typed-model/credit-purchase.js +46 -0
- package/dist/typed-model/credit-purchase.js.map +1 -0
- package/dist/typed-model/customer-profile.js +51 -0
- package/dist/typed-model/customer-profile.js.map +1 -0
- package/dist/typed-model/dashboard-user-permissions.js +34 -0
- package/dist/typed-model/dashboard-user-permissions.js.map +1 -0
- package/dist/typed-model/dashboard-user.js +109 -0
- package/dist/typed-model/dashboard-user.js.map +1 -0
- package/dist/typed-model/fan-list.js +46 -0
- package/dist/typed-model/fan-list.js.map +1 -0
- package/dist/typed-model/fraud.js +41 -0
- package/dist/typed-model/fraud.js.map +1 -0
- package/dist/typed-model/index.js +101 -0
- package/dist/typed-model/index.js.map +1 -0
- package/dist/typed-model/list-member.js +47 -0
- package/dist/typed-model/list-member.js.map +1 -0
- package/dist/typed-model/mass-message.js +43 -0
- package/dist/typed-model/mass-message.js.map +1 -0
- package/dist/typed-model/media-asset.js +73 -0
- package/dist/typed-model/media-asset.js.map +1 -0
- package/dist/typed-model/media-category.js +49 -0
- package/dist/typed-model/media-category.js.map +1 -0
- package/dist/typed-model/media.js +59 -0
- package/dist/typed-model/media.js.map +1 -0
- package/dist/typed-model/message-media.js +53 -0
- package/dist/typed-model/message-media.js.map +1 -0
- package/dist/typed-model/message.js +191 -0
- package/dist/typed-model/message.js.map +1 -0
- package/dist/typed-model/notification.js +84 -0
- package/dist/typed-model/notification.js.map +1 -0
- package/dist/typed-model/pb-sequelize.js +25 -0
- package/dist/typed-model/pb-sequelize.js.map +1 -0
- package/dist/typed-model/phone-chat-participation.js +127 -0
- package/dist/typed-model/phone-chat-participation.js.map +1 -0
- package/dist/typed-model/phone-chat.js +118 -0
- package/dist/typed-model/phone-chat.js.map +1 -0
- package/dist/typed-model/phone-owner.js +266 -0
- package/dist/typed-model/phone-owner.js.map +1 -0
- package/dist/typed-model/phone-user.js +109 -0
- package/dist/typed-model/phone-user.js.map +1 -0
- package/dist/typed-model/premium-content.js +123 -0
- package/dist/typed-model/premium-content.js.map +1 -0
- package/dist/typed-model/purchased-content.js +69 -0
- package/dist/typed-model/purchased-content.js.map +1 -0
- package/dist/typed-model/short-url.js +88 -0
- package/dist/typed-model/short-url.js.map +1 -0
- package/dist/typed-model/subscription-bundle.js +53 -0
- package/dist/typed-model/subscription-bundle.js.map +1 -0
- package/dist/typed-model/subscription-category-tags.js +58 -0
- package/dist/typed-model/subscription-category-tags.js.map +1 -0
- package/dist/typed-model/subscription-plan.js +126 -0
- package/dist/typed-model/subscription-plan.js.map +1 -0
- package/dist/typed-model/subscription-promotion.js +93 -0
- package/dist/typed-model/subscription-promotion.js.map +1 -0
- package/dist/typed-model/subscription.js +123 -0
- package/dist/typed-model/subscription.js.map +1 -0
- package/dist/typed-model/twilio-phone.js +92 -0
- package/dist/typed-model/twilio-phone.js.map +1 -0
- package/dist/typed-model/user-follow.js +103 -0
- package/dist/typed-model/user-follow.js.map +1 -0
- package/dist/typed-model/verification-code.js +52 -0
- package/dist/typed-model/verification-code.js.map +1 -0
- package/index.ts +3 -0
- package/package.json +72 -0
- package/src/index.ts +2 -0
- package/src/pk-client.ts +1650 -0
- package/src/pk-sub.ts +455 -0
- package/src/types.ts +40 -0
- package/support/index.ts +2 -0
- package/support/slack-client.ts +43 -0
- package/support/uploadcare.ts +191 -0
- package/support/utils.ts +72 -0
- package/typed-model/asset-category.ts +57 -0
- package/typed-model/asset-constent-person.ts +82 -0
- package/typed-model/blocked-ip.ts +52 -0
- package/typed-model/category-tag.ts +66 -0
- package/typed-model/consent-person.ts +78 -0
- package/typed-model/content-category-tag.ts +79 -0
- package/typed-model/content-like.ts +79 -0
- package/typed-model/credit-payment.ts +678 -0
- package/typed-model/credit-payout.ts +62 -0
- package/typed-model/credit-purchase.ts +67 -0
- package/typed-model/customer-profile.ts +70 -0
- package/typed-model/dashboard-user-permissions.ts +51 -0
- package/typed-model/dashboard-user.ts +146 -0
- package/typed-model/fan-list.ts +68 -0
- package/typed-model/fraud.ts +62 -0
- package/typed-model/index.ts +58 -0
- package/typed-model/list-member.ts +67 -0
- package/typed-model/mass-message.ts +64 -0
- package/typed-model/media-asset.ts +99 -0
- package/typed-model/media-category.ts +70 -0
- package/typed-model/media.ts +85 -0
- package/typed-model/message-media.ts +74 -0
- package/typed-model/message.ts +258 -0
- package/typed-model/notification.ts +130 -0
- package/typed-model/pb-sequelize.ts +25 -0
- package/typed-model/phone-chat-participation.ts +166 -0
- package/typed-model/phone-chat.ts +185 -0
- package/typed-model/phone-owner.ts +341 -0
- package/typed-model/phone-user.ts +146 -0
- package/typed-model/premium-content.ts +164 -0
- package/typed-model/purchased-content.ts +100 -0
- package/typed-model/short-url.ts +120 -0
- package/typed-model/subscription-bundle.ts +75 -0
- package/typed-model/subscription-category-tags.ts +79 -0
- package/typed-model/subscription-plan.ts +171 -0
- package/typed-model/subscription-promotion.ts +125 -0
- package/typed-model/subscription.ts +170 -0
- package/typed-model/twilio-phone.ts +149 -0
- package/typed-model/user-follow.ts +141 -0
- package/typed-model/verification-code.ts +74 -0
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
const path_1 = __importDefault(require("path"));
|
|
30
|
+
const fs_1 = __importDefault(require("fs"));
|
|
31
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
32
|
+
const pk_client_1 = __importStar(require("../src/pk-client"));
|
|
33
|
+
const typed_model_1 = require("../typed-model");
|
|
34
|
+
const customer_profile_1 = __importStar(require("../typed-model/customer-profile"));
|
|
35
|
+
const moment_1 = __importDefault(require("moment"));
|
|
36
|
+
const run = async () => {
|
|
37
|
+
let header = [];
|
|
38
|
+
let finalObject = {};
|
|
39
|
+
let data = await fs_1.default.readFileSync(path_1.default.resolve(__dirname, "data/data.txt"), "utf16le");
|
|
40
|
+
for (let line of data.split("\n")) {
|
|
41
|
+
var splitLine = line.split(",");
|
|
42
|
+
let dataArray = splitLine.map((s) => s.replace(/['"]+/g, "").trim());
|
|
43
|
+
if (header.length == 0) {
|
|
44
|
+
header = dataArray.map((s) => lodash_1.default.camelCase(s));
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
let newObject = {};
|
|
48
|
+
dataArray.forEach((v, i) => {
|
|
49
|
+
newObject[header[i]] = v;
|
|
50
|
+
});
|
|
51
|
+
finalObject[newObject.customerProfileId] = newObject;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
for (let customerProfileId of Object.keys(finalObject)) {
|
|
55
|
+
if (customerProfileId == "undefined" || !customerProfileId) {
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
let customerProfile = await customer_profile_1.default.findOne({
|
|
59
|
+
where: { customerProfileId },
|
|
60
|
+
});
|
|
61
|
+
if (!customerProfile) {
|
|
62
|
+
console.log("Cannot find CP for: " + customerProfileId);
|
|
63
|
+
continue;
|
|
64
|
+
}
|
|
65
|
+
let userId = (BigInt(customerProfile.userId) - BigInt(1)).toString();
|
|
66
|
+
let currentProfile = await customer_profile_1.default.findOne({ where: { userId } });
|
|
67
|
+
let currentSubscription = await typed_model_1.Subscription.findOne({
|
|
68
|
+
where: { userId },
|
|
69
|
+
});
|
|
70
|
+
if (currentSubscription === null || currentSubscription === void 0 ? void 0 : currentSubscription.cancelDate) {
|
|
71
|
+
console.log("Already cancelled sub");
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
const user = await typed_model_1.PhoneUser.findByPk(userId);
|
|
75
|
+
const ccData = finalObject[customerProfileId];
|
|
76
|
+
const transactionData = {
|
|
77
|
+
payment: {
|
|
78
|
+
creditCard: {
|
|
79
|
+
cardNumber: ccData.cardNumber,
|
|
80
|
+
expirationDate: ccData.cardExpirationDate,
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
billTo: {
|
|
84
|
+
firstName: ccData.firstName,
|
|
85
|
+
lastName: ccData.lastName,
|
|
86
|
+
address: ccData.address.length > 0 ? ccData.address : "111 address",
|
|
87
|
+
zip: ccData.zip,
|
|
88
|
+
country: ccData.country,
|
|
89
|
+
city: ccData.city,
|
|
90
|
+
state: ccData.stateProv,
|
|
91
|
+
},
|
|
92
|
+
};
|
|
93
|
+
const nextPayment = (0, moment_1.default)(currentSubscription === null || currentSubscription === void 0 ? void 0 : currentSubscription.lastPaymentDate)
|
|
94
|
+
.add(7, "days")
|
|
95
|
+
.toDate();
|
|
96
|
+
const subStartDate = (0, moment_1.default)(currentSubscription === null || currentSubscription === void 0 ? void 0 : currentSubscription.lastPaymentDate)
|
|
97
|
+
.add(14, "days")
|
|
98
|
+
.toDate();
|
|
99
|
+
const currentDate = (0, moment_1.default)().toDate();
|
|
100
|
+
if (!currentSubscription) {
|
|
101
|
+
console.log("There is no current subscription");
|
|
102
|
+
continue;
|
|
103
|
+
}
|
|
104
|
+
const subscriptionPlan = await typed_model_1.SubscriptionPlan.findOne({
|
|
105
|
+
where: { id: currentSubscription === null || currentSubscription === void 0 ? void 0 : currentSubscription.subscriptionPlanId },
|
|
106
|
+
});
|
|
107
|
+
if (!subscriptionPlan) {
|
|
108
|
+
console.log("Cannot find subscription plan");
|
|
109
|
+
continue;
|
|
110
|
+
}
|
|
111
|
+
const owner = await typed_model_1.PhoneOwner.findByPk(subscriptionPlan === null || subscriptionPlan === void 0 ? void 0 : subscriptionPlan.ownerId);
|
|
112
|
+
if (!owner) {
|
|
113
|
+
console.log("Cannot find owner");
|
|
114
|
+
continue;
|
|
115
|
+
}
|
|
116
|
+
if (!currentProfile) {
|
|
117
|
+
try {
|
|
118
|
+
console.log("Creating customer profile");
|
|
119
|
+
await pk_client_1.default.createCustomerProfile(user, transactionData);
|
|
120
|
+
}
|
|
121
|
+
catch (err) {
|
|
122
|
+
console.log("Failed to create profile for user id: " + user.id);
|
|
123
|
+
console.log("Cancel credit payment");
|
|
124
|
+
currentSubscription.cancelDate = currentDate;
|
|
125
|
+
await (currentSubscription === null || currentSubscription === void 0 ? void 0 : currentSubscription.save());
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
if (currentProfile && nextPayment < currentDate) {
|
|
129
|
+
let pkCp = await pk_client_1.default.getCustomerProfile(currentProfile.customerProfileId);
|
|
130
|
+
let paymentProfileId = pkCp
|
|
131
|
+
.getPaymentProfiles()[0]
|
|
132
|
+
.getCustomerPaymentProfileId();
|
|
133
|
+
console.log("Creating transaction");
|
|
134
|
+
let chargeResponse = await pk_client_1.default
|
|
135
|
+
.chargeCustomerByPaymentProfile(currentProfile.customerProfileId, paymentProfileId, subscriptionPlan.amountInCents, `${owner.name} weekly subscription`)
|
|
136
|
+
.catch((err) => {
|
|
137
|
+
console.log("failed transaction");
|
|
138
|
+
return undefined;
|
|
139
|
+
});
|
|
140
|
+
if (!chargeResponse) {
|
|
141
|
+
console.log("Charge has not succeeded");
|
|
142
|
+
currentSubscription.cancelDate = new Date();
|
|
143
|
+
await currentSubscription.save();
|
|
144
|
+
continue;
|
|
145
|
+
}
|
|
146
|
+
// Create payment for last date
|
|
147
|
+
console.log("Creating subscription in authorize");
|
|
148
|
+
let subRes;
|
|
149
|
+
try {
|
|
150
|
+
subRes = await pk_client_1.default.createSubscription({
|
|
151
|
+
intervalCount: subscriptionPlan.intervalCount,
|
|
152
|
+
intervalUnit: subscriptionPlan.intervalUnit,
|
|
153
|
+
amountInCents: subscriptionPlan.amountInCents,
|
|
154
|
+
customerProfileId: currentProfile.customerProfileId,
|
|
155
|
+
creatorName: owner.name,
|
|
156
|
+
processorId: customer_profile_1.ProcessorId.KAJA,
|
|
157
|
+
trialAmountInCents: 0,
|
|
158
|
+
trialLength: 0,
|
|
159
|
+
customerPaymentProfileId: paymentProfileId,
|
|
160
|
+
startDate: nextPayment,
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
catch (_a) {
|
|
164
|
+
console.log("Voiding transaction");
|
|
165
|
+
await (0, pk_client_1.voidTransaction)(chargeResponse.transactionId, chargeResponse.processorId);
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
if (!subRes) {
|
|
169
|
+
continue;
|
|
170
|
+
}
|
|
171
|
+
console.log("Creating subscription payment");
|
|
172
|
+
await typed_model_1.CreditPayments.logSubscriptionPayment(userId, owner, subscriptionPlan.amountInCents, currentSubscription, undefined, Number(chargeResponse.transactionId));
|
|
173
|
+
console.log("Updating subscritpion object");
|
|
174
|
+
currentSubscription.pkSubscriptionId = subRes.pkSubId;
|
|
175
|
+
currentSubscription.numberOfPayments = 0;
|
|
176
|
+
currentSubscription.lastPaymentDate = nextPayment;
|
|
177
|
+
await currentSubscription.save();
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
};
|
|
181
|
+
if (require.main === module) {
|
|
182
|
+
if (require.main === module) {
|
|
183
|
+
run().then(async () => {
|
|
184
|
+
console.log("Finished");
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
//# sourceMappingURL=authorizeTransfer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authorizeTransfer.js","sourceRoot":"","sources":["../../scripts/authorizeTransfer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
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 ownerId of args) {
|
|
16
|
+
console.log("User_id: " + ownerId);
|
|
17
|
+
const dashboardUser = await typed_model_1.DashboardUser.findOne({
|
|
18
|
+
where: { ownerId },
|
|
19
|
+
});
|
|
20
|
+
console.log(`https://dashboard.cliqfans.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
|
|
@@ -0,0 +1 @@
|
|
|
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,OAAO,IAAI,IAAI,EAAE;QACxB,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,OAAO,CAAC,CAAC;QACnC,MAAM,aAAa,GAAG,MAAM,2BAAa,CAAC,OAAO,CAAC;YAChD,KAAK,EAAE,EAAE,OAAO,EAAE;SACnB,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CACT,6CAA6C,WAAW,CACtD,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"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const dotenv = require("dotenv");
|
|
4
|
+
dotenv.config();
|
|
5
|
+
const aws_sdk_1 = require("aws-sdk");
|
|
6
|
+
const __1 = require("..");
|
|
7
|
+
const sequelize_1 = require("sequelize");
|
|
8
|
+
const typed_model_1 = require("../typed-model");
|
|
9
|
+
const s3 = new aws_sdk_1.S3();
|
|
10
|
+
s3.config.update({
|
|
11
|
+
accessKeyId: process.env.AWS_ACCESS_KEY,
|
|
12
|
+
secretAccessKey: process.env.AWS_SECRET_ACCESS,
|
|
13
|
+
});
|
|
14
|
+
const BUCKET = "paychat-images";
|
|
15
|
+
const run = async () => {
|
|
16
|
+
const objects = await listAllKeys({ Bucket: BUCKET });
|
|
17
|
+
const objectKeys = objects.map((o) => o.Key);
|
|
18
|
+
for (let key of objectKeys) {
|
|
19
|
+
let owner = await __1.PhoneOwner.findOne({
|
|
20
|
+
where: {
|
|
21
|
+
[sequelize_1.Op.or]: {
|
|
22
|
+
bannerImageUrl: {
|
|
23
|
+
[sequelize_1.Op.like]: `%${key}%`,
|
|
24
|
+
},
|
|
25
|
+
welcomeMediaUrl: {
|
|
26
|
+
[sequelize_1.Op.like]: `%${key}%`,
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
});
|
|
31
|
+
if (owner) {
|
|
32
|
+
console.log("Found owner");
|
|
33
|
+
continue;
|
|
34
|
+
}
|
|
35
|
+
let asset = await typed_model_1.MediaAsset.findOne({
|
|
36
|
+
where: {
|
|
37
|
+
[sequelize_1.Op.or]: {
|
|
38
|
+
previewImageUrl: {
|
|
39
|
+
[sequelize_1.Op.like]: `%${key}%`,
|
|
40
|
+
},
|
|
41
|
+
url: {
|
|
42
|
+
[sequelize_1.Op.like]: `%${key}%`,
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
});
|
|
47
|
+
if (asset) {
|
|
48
|
+
console.log("Found asset");
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
console.log("Delete");
|
|
52
|
+
await deleteImageAtBucket(key, BUCKET);
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
const listAllKeys = (params, out = []) => new Promise((resolve, reject) => {
|
|
56
|
+
s3.listObjectsV2(params)
|
|
57
|
+
.promise()
|
|
58
|
+
.then((data) => {
|
|
59
|
+
let { Contents, IsTruncated, NextContinuationToken } = data;
|
|
60
|
+
out.push(...Contents);
|
|
61
|
+
!IsTruncated
|
|
62
|
+
? resolve(out)
|
|
63
|
+
: resolve(listAllKeys(Object.assign(params, {
|
|
64
|
+
ContinuationToken: NextContinuationToken,
|
|
65
|
+
}), out));
|
|
66
|
+
})
|
|
67
|
+
.catch(reject);
|
|
68
|
+
});
|
|
69
|
+
const deleteImageAtBucket = async (key, bucket) => {
|
|
70
|
+
var params = { Bucket: bucket, Key: key };
|
|
71
|
+
await s3.deleteObject(params, function (err, data) {
|
|
72
|
+
if (err)
|
|
73
|
+
console.log(err, err.stack); // error
|
|
74
|
+
else
|
|
75
|
+
console.log("Deleted key: " + key + " " + bucket); // deleted
|
|
76
|
+
});
|
|
77
|
+
};
|
|
78
|
+
if (require.main === module) {
|
|
79
|
+
run().then(async () => {
|
|
80
|
+
console.log("Finished");
|
|
81
|
+
process.exit(0);
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=deleteMalformedImages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deleteMalformedImages.js","sourceRoot":"","sources":["../../scripts/deleteMalformedImages.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const dotenv = require("dotenv");
|
|
4
|
+
const moment = require("moment");
|
|
5
|
+
const sequelize = require("sequelize");
|
|
6
|
+
const typed_model_1 = require("../typed-model");
|
|
7
|
+
const metrics_1 = require("../support/metrics");
|
|
8
|
+
const metricsClient = new metrics_1.default();
|
|
9
|
+
dotenv.config();
|
|
10
|
+
const run = async () => {
|
|
11
|
+
let payments = await typed_model_1.CreditPayments.findAll({
|
|
12
|
+
where: sequelize.literal(`
|
|
13
|
+
interaction_type IN ('subscription', 'unlock_message', 'content') AND "createdAt" > NOW() - INTERVAL '90 DAY'
|
|
14
|
+
`),
|
|
15
|
+
});
|
|
16
|
+
console.log(payments.length);
|
|
17
|
+
for (let p of payments) {
|
|
18
|
+
let interaction_type;
|
|
19
|
+
switch (p.interactionType) {
|
|
20
|
+
case "unlock_message":
|
|
21
|
+
interaction_type = "message";
|
|
22
|
+
break;
|
|
23
|
+
case "content":
|
|
24
|
+
interaction_type = "PPV";
|
|
25
|
+
break;
|
|
26
|
+
case "subscription":
|
|
27
|
+
interaction_type = "subscription";
|
|
28
|
+
break;
|
|
29
|
+
default:
|
|
30
|
+
interaction_type = "PPV";
|
|
31
|
+
}
|
|
32
|
+
metricsClient.trackCharge(p.userId, p.creditAmountInCents, moment(p.createdAt).toDate(), interaction_type, {
|
|
33
|
+
owner_id: p.ownerId,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
if (require.main === module) {
|
|
38
|
+
if (require.main === module) {
|
|
39
|
+
run().then(async () => {
|
|
40
|
+
console.log("Finished");
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=importMixpanelEvents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"importMixpanelEvents.js","sourceRoot":"","sources":["../../scripts/importMixpanelEvents.ts"],"names":[],"mappings":";;AAAA,iCAAkC;AAElC,iCAAkC;AAElC,uCAAwC;AAExC,gDAAgD;AAChD,gDAAyC;AAEzC,MAAM,aAAa,GAAG,IAAI,iBAAO,EAAE,CAAC;AAEpC,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,MAAM,GAAG,GAAG,KAAK,IAAI,EAAE;IACrB,IAAI,QAAQ,GAAU,MAAM,4BAAc,CAAC,OAAO,CAAC;QACjD,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC;;SAEpB,CAAC;KACP,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC7B,KAAK,IAAI,CAAC,IAAI,QAAQ,EAAE;QACtB,IAAI,gBAAgB,CAAC;QACrB,QAAQ,CAAC,CAAC,eAAe,EAAE;YACzB,KAAK,gBAAgB;gBACnB,gBAAgB,GAAG,SAAS,CAAC;gBAC7B,MAAM;YACR,KAAK,SAAS;gBACZ,gBAAgB,GAAG,KAAK,CAAC;gBACzB,MAAM;YACR,KAAK,cAAc;gBACjB,gBAAgB,GAAG,cAAc,CAAC;gBAClC,MAAM;YACR;gBACE,gBAAgB,GAAG,KAAK,CAAC;SAC5B;QACD,aAAa,CAAC,WAAW,CACvB,CAAC,CAAC,MAAO,EACT,CAAC,CAAC,mBAAmB,EACrB,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAC5B,gBAAuB,EACvB;YACE,QAAQ,EAAE,CAAC,CAAC,OAAO;SACpB,CACF,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"}
|
|
@@ -0,0 +1,185 @@
|
|
|
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 pk_client_1 = require("../src/pk-client");
|
|
6
|
+
const sequelize_1 = require("sequelize");
|
|
7
|
+
const moment = require("moment");
|
|
8
|
+
dotenv.config();
|
|
9
|
+
class ActiveSub {
|
|
10
|
+
constructor(subscription, subscriptionPlan, owner, pkSubscription, status, processorId) {
|
|
11
|
+
this._subscription = subscription;
|
|
12
|
+
this._owner = owner;
|
|
13
|
+
this._pkSubscription = pkSubscription;
|
|
14
|
+
this._status = status;
|
|
15
|
+
this._subscriptionPlan = subscriptionPlan;
|
|
16
|
+
this._processorId = processorId;
|
|
17
|
+
}
|
|
18
|
+
isCanceledOnCliq() {
|
|
19
|
+
return !!this._subscription.cancelDate;
|
|
20
|
+
}
|
|
21
|
+
isCanceledOnAuthorize() {
|
|
22
|
+
return ["expired", "suspended", "canceled", "terminated"].includes(this._status);
|
|
23
|
+
}
|
|
24
|
+
getSubAmountInCents() {
|
|
25
|
+
return this._pkSubscription.getAmount() * 100;
|
|
26
|
+
}
|
|
27
|
+
getTrialAmountInCents() {
|
|
28
|
+
return ((this._pkSubscription.getPaymentSchedule().getTrialAmount &&
|
|
29
|
+
this._pkSubscription.getPaymentSchedule().getTrialAmount() * 100) ||
|
|
30
|
+
0);
|
|
31
|
+
}
|
|
32
|
+
getTrialOccurences() {
|
|
33
|
+
return this._pkSubscription.getPaymentSchedule().getTrialOccurrences();
|
|
34
|
+
}
|
|
35
|
+
async cancelAuthorizeSubscription() {
|
|
36
|
+
console.log("cancelAuthorizeSubscription");
|
|
37
|
+
await (0, pk_client_1.cancelSubscription)(this._subscription, this._processorId);
|
|
38
|
+
}
|
|
39
|
+
async cancelCliqSubscription() {
|
|
40
|
+
console.log("cancelCliqSubscription");
|
|
41
|
+
this._subscription.cancelDate = moment(this._subscription.lastPaymentDate)
|
|
42
|
+
.add(this._subscriptionPlan.intervalCount, this._subscriptionPlan.intervalUnit)
|
|
43
|
+
.toDate();
|
|
44
|
+
await this._subscription.save();
|
|
45
|
+
}
|
|
46
|
+
async chargeForTrial() {
|
|
47
|
+
console.log("chargeForTrial");
|
|
48
|
+
await this.createCreditPayment(this.getTrialAmountInCents());
|
|
49
|
+
}
|
|
50
|
+
async chargeForSubscription() {
|
|
51
|
+
console.log("chargeForSubscription");
|
|
52
|
+
await this.createCreditPayment(this.getSubAmountInCents());
|
|
53
|
+
}
|
|
54
|
+
async createCreditPayment(amountInCents) {
|
|
55
|
+
console.log("createCreditPayment");
|
|
56
|
+
let transaction = await typed_model_1.pbSequelize.transaction();
|
|
57
|
+
let trans = this.getLatestPayment();
|
|
58
|
+
let cp = await typed_model_1.CreditPayments.logSubscriptionPayment(this._subscription.userId, this._owner, Math.round(amountInCents), this._subscription, transaction, trans && trans.getTransId());
|
|
59
|
+
if (cp) {
|
|
60
|
+
this._subscription.lastPaymentDate = new Date();
|
|
61
|
+
this._subscription.numberOfPayments = this.getNumberOfAuthorizePayments();
|
|
62
|
+
await this._subscription.save({ transaction });
|
|
63
|
+
}
|
|
64
|
+
await transaction.commit();
|
|
65
|
+
}
|
|
66
|
+
getNumberOfAuthorizePayments() {
|
|
67
|
+
let arbTransactions = this._pkSubscription.getArbTransactions();
|
|
68
|
+
if (!arbTransactions) {
|
|
69
|
+
return 0;
|
|
70
|
+
}
|
|
71
|
+
let transactionList = arbTransactions.getArbTransaction();
|
|
72
|
+
if (!transactionList || transactionList.length == 0) {
|
|
73
|
+
return 0;
|
|
74
|
+
}
|
|
75
|
+
return Math.max.apply(Math, transactionList.map(function (o) {
|
|
76
|
+
if (o.getResponse().includes("approved")) {
|
|
77
|
+
return o.getPayNum();
|
|
78
|
+
}
|
|
79
|
+
return 0;
|
|
80
|
+
}));
|
|
81
|
+
}
|
|
82
|
+
getLatestPayment() {
|
|
83
|
+
let arbTransactions = this._pkSubscription.getArbTransactions();
|
|
84
|
+
let transactionArray = arbTransactions && arbTransactions.getArbTransaction();
|
|
85
|
+
return transactionArray.reduce(function (prev, current) {
|
|
86
|
+
if (current.getResponse().includes("approved") &&
|
|
87
|
+
current.getPayNum() > prev.getPayNum()) {
|
|
88
|
+
return current;
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
return prev;
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
static async build(subscription, subscriptionPlan) {
|
|
96
|
+
const owner = await typed_model_1.PhoneOwner.getById(subscriptionPlan.ownerId);
|
|
97
|
+
if (!owner) {
|
|
98
|
+
throw new Error("No owner was tied to this subscription");
|
|
99
|
+
}
|
|
100
|
+
if (!subscription.pkSubscriptionId) {
|
|
101
|
+
throw new Error("No pkSubscriptionId for this subscription");
|
|
102
|
+
}
|
|
103
|
+
const profile = await typed_model_1.CustomerProfile.findOne({
|
|
104
|
+
where: { userId: subscription.userId },
|
|
105
|
+
});
|
|
106
|
+
if (!profile) {
|
|
107
|
+
throw new Error("No customer profile for this user");
|
|
108
|
+
}
|
|
109
|
+
const status = await (0, pk_client_1.getSubscriptionStatus)(subscription.pkSubscriptionId, profile === null || profile === void 0 ? void 0 : profile.processorId);
|
|
110
|
+
const pkSub = await (0, pk_client_1.getSubscription)(subscription.pkSubscriptionId, profile.processorId);
|
|
111
|
+
return new ActiveSub(subscription, subscriptionPlan, owner, pkSub, status, profile.processorId);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
const run = async () => {
|
|
115
|
+
let subs = await typed_model_1.Subscription.findAll({
|
|
116
|
+
where: sequelize_1.Sequelize.literal(`pk_subscription_id IS NOT NULL`),
|
|
117
|
+
include: [
|
|
118
|
+
{
|
|
119
|
+
model: typed_model_1.SubscriptionPlan,
|
|
120
|
+
required: true,
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
model: typed_model_1.SubscriptionPromotion,
|
|
124
|
+
required: false,
|
|
125
|
+
},
|
|
126
|
+
],
|
|
127
|
+
});
|
|
128
|
+
console.log(subs.length);
|
|
129
|
+
for (let sub of subs) {
|
|
130
|
+
console.log("Starting sub: ", sub.id);
|
|
131
|
+
const activeSub = await ActiveSub.build(sub, sub.SubscriptionPlan).catch((err) => {
|
|
132
|
+
console.log(err);
|
|
133
|
+
});
|
|
134
|
+
if (!activeSub)
|
|
135
|
+
continue;
|
|
136
|
+
if (activeSub.getNumberOfAuthorizePayments() == sub.numberOfPayments) {
|
|
137
|
+
console.log("activeSub.getNumberOfAuthorizePayments(): " +
|
|
138
|
+
activeSub.getNumberOfAuthorizePayments());
|
|
139
|
+
console.log("sub.numberOfPayments: " + sub.numberOfPayments);
|
|
140
|
+
}
|
|
141
|
+
if (activeSub.getNumberOfAuthorizePayments() > sub.numberOfPayments) {
|
|
142
|
+
console.log("Should create credit payment.");
|
|
143
|
+
// There are still trial payments left
|
|
144
|
+
try {
|
|
145
|
+
if (activeSub.getTrialOccurences() > sub.numberOfPayments) {
|
|
146
|
+
await activeSub.chargeForTrial();
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
await activeSub.chargeForSubscription();
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
catch (err) {
|
|
153
|
+
console.log("Failed to create credit payment charge");
|
|
154
|
+
console.log(err);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
// Check if subscription is canceled
|
|
158
|
+
if (activeSub.isCanceledOnCliq() && activeSub.isCanceledOnAuthorize()) {
|
|
159
|
+
sub.stale = true;
|
|
160
|
+
await sub.save();
|
|
161
|
+
console.log("Canceled on everything. Skipping...");
|
|
162
|
+
continue;
|
|
163
|
+
}
|
|
164
|
+
if (!activeSub.isCanceledOnAuthorize() && activeSub.isCanceledOnCliq()) {
|
|
165
|
+
console.log("They canceled it on Cliq");
|
|
166
|
+
try {
|
|
167
|
+
await activeSub.cancelAuthorizeSubscription();
|
|
168
|
+
}
|
|
169
|
+
catch (err) {
|
|
170
|
+
console.log("Failed to cancel authorize sub: " + err);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
if (!activeSub.isCanceledOnCliq() && activeSub.isCanceledOnAuthorize()) {
|
|
174
|
+
console.log("They cancelled it on authorize");
|
|
175
|
+
await activeSub.cancelCliqSubscription();
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
};
|
|
179
|
+
if (require.main === module) {
|
|
180
|
+
run().then(async () => {
|
|
181
|
+
console.log("Finished");
|
|
182
|
+
process.exit(0);
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
//# sourceMappingURL=payoutSubscriptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payoutSubscriptions.js","sourceRoot":"","sources":["../../scripts/payoutSubscriptions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const __1 = require("..");
|
|
4
|
+
const typed_model_1 = require("../typed-model");
|
|
5
|
+
const customer_profile_1 = require("../typed-model/customer-profile");
|
|
6
|
+
const run = async (processorId) => {
|
|
7
|
+
const subscriptions = await __1.pkClient.getSubscriptionList(processorId);
|
|
8
|
+
let deleted = [];
|
|
9
|
+
for (let pkSub of subscriptions) {
|
|
10
|
+
let pkId = pkSub.getId();
|
|
11
|
+
let sub = await typed_model_1.Subscription.findOne({
|
|
12
|
+
where: {
|
|
13
|
+
pkSubscriptionId: pkId + "",
|
|
14
|
+
},
|
|
15
|
+
});
|
|
16
|
+
if (!sub) {
|
|
17
|
+
console.log("Need to cancel sub: ", pkId);
|
|
18
|
+
let params = {
|
|
19
|
+
pkSubscriptionId: pkId,
|
|
20
|
+
};
|
|
21
|
+
await __1.pkClient.cancelSubscription(params, processorId).catch((err) => {
|
|
22
|
+
console.log("Failed to cancel", err);
|
|
23
|
+
});
|
|
24
|
+
deleted.push(pkId);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
console.log("Deleted: ", deleted.length);
|
|
28
|
+
if (deleted.length > 0) {
|
|
29
|
+
// await postSubscriptionAlarm(deleted);
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
if (require.main === module) {
|
|
33
|
+
run(customer_profile_1.ProcessorId.HUMBOLDT).then(async () => {
|
|
34
|
+
await run(customer_profile_1.ProcessorId.KAJA);
|
|
35
|
+
console.log("Finished");
|
|
36
|
+
process.exit(0);
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=removeUnreferenceSubs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"removeUnreferenceSubs.js","sourceRoot":"","sources":["../../scripts/removeUnreferenceSubs.ts"],"names":[],"mappings":";;AACA,0BAA8B;AAC9B,gDAA8C;AAC9C,sEAA8D;AAE9D,MAAM,GAAG,GAAG,KAAK,EAAE,WAAwB,EAAE,EAAE;IAC7C,MAAM,aAAa,GAAQ,MAAM,YAAQ,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC3E,IAAI,OAAO,GAAU,EAAE,CAAC;IACxB,KAAK,IAAI,KAAK,IAAI,aAAa,EAAE;QAC/B,IAAI,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;QACzB,IAAI,GAAG,GAAG,MAAM,0BAAY,CAAC,OAAO,CAAC;YACnC,KAAK,EAAE;gBACL,gBAAgB,EAAE,IAAI,GAAG,EAAE;aAC5B;SACF,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,EAAE;YACR,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC;YAC1C,IAAI,MAAM,GAAQ;gBAChB,gBAAgB,EAAE,IAAI;aACvB,CAAC;YACF,MAAM,YAAQ,CAAC,kBAAkB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACnE,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACpB;KACF;IACD,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QACtB,wCAAwC;KACzC;AACH,CAAC,CAAC;AAEF,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE;IAC3B,GAAG,CAAC,8BAAW,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;QACxC,MAAM,GAAG,CAAC,8BAAW,CAAC,IAAI,CAAC,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;CACJ"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const dotenv = require("dotenv");
|
|
4
|
+
const sequelize_1 = require("sequelize");
|
|
5
|
+
const sequelize = require("sequelize");
|
|
6
|
+
dotenv.config();
|
|
7
|
+
const __1 = require("..");
|
|
8
|
+
const run = async () => {
|
|
9
|
+
console.log("Running");
|
|
10
|
+
const users = await __1.PhoneUser.findAll({
|
|
11
|
+
where: sequelize.literal(`id IN (SELECT user_id FROM messages WHERE mass_message_id = 1079837093565321453 AND credit_payment_id IS NOT NULL)`),
|
|
12
|
+
include: {
|
|
13
|
+
separate: true,
|
|
14
|
+
model: __1.Message,
|
|
15
|
+
required: true,
|
|
16
|
+
where: {
|
|
17
|
+
massMessageId: "1079837093565321453",
|
|
18
|
+
creditPaymentId: {
|
|
19
|
+
[sequelize_1.Op.not]: null,
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
limit: 30,
|
|
24
|
+
offset: 0,
|
|
25
|
+
});
|
|
26
|
+
console.log(users);
|
|
27
|
+
};
|
|
28
|
+
if (require.main === module) {
|
|
29
|
+
run().then(async () => {
|
|
30
|
+
console.log("Finished");
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../scripts/test.ts"],"names":[],"mappings":";;AAAA,iCAAkC;AAClC,yCAA+B;AAC/B,uCAAwC;AACxC,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,0BAAwC;AAExC,MAAM,GAAG,GAAG,KAAK,IAAI,EAAE;IACrB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACvB,MAAM,KAAK,GAAG,MAAM,aAAS,CAAC,OAAO,CAAC;QACpC,KAAK,EAAE,SAAS,CAAC,OAAO,CACtB,oHAAoH,CACrH;QACD,OAAO,EAAE;YACP,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,WAAO;YACd,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE;gBACL,aAAa,EAAE,qBAAqB;gBACpC,eAAe,EAAE;oBACf,CAAC,cAAE,CAAC,GAAG,CAAC,EAAE,IAAI;iBACf;aACF;SACF;QACD,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,CAAC;KACV,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACrB,CAAC,CAAC;AAEF,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE;IAC3B,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;QACpB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;CACJ"}
|