mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2024-11-24 08:08:15 -05:00
9c39bf7656
Will remove deprecated properties after updating production.
60 lines
1.4 KiB
JavaScript
60 lines
1.4 KiB
JavaScript
// Bulk create prepaid codes + email message
|
|
|
|
// Usage:
|
|
// mongo <address>:<port>/<database> <script file> -u <username> -p <password>
|
|
|
|
var num = 10;
|
|
var message = "Thanks for filling out the form. You can follow this link to enable your free subscription for teachers. If you have any questions or comments, please let me know.";
|
|
var urlPrefix = "https://codecombat.com/account/subscription?_ppc=";
|
|
var creatorID = "52f94443fcb334581466a992";
|
|
|
|
for (var i = 0; i < num; i++) {
|
|
createPrepaid();
|
|
}
|
|
|
|
function createPrepaid()
|
|
{
|
|
generateNewCode(function(code) {
|
|
if (!code) {
|
|
print("ERROR: no code");
|
|
return;
|
|
}
|
|
criteria = {
|
|
creator: creatorID,
|
|
type: 'subscription',
|
|
maxRedeemers: 1
|
|
code: code,
|
|
properties: {
|
|
couponID: 'free'
|
|
},
|
|
__v: 0
|
|
};
|
|
db.prepaids.insert(criteria);
|
|
|
|
print(message + " " + urlPrefix + code);
|
|
});
|
|
}
|
|
|
|
function generateNewCode(done)
|
|
{
|
|
function tryCode() {
|
|
code = createCode(8);
|
|
criteria = {code: code};
|
|
if (db.prepaids.findOne(criteria)) {
|
|
return tryCode();
|
|
}
|
|
return done(code);
|
|
}
|
|
tryCode();
|
|
}
|
|
|
|
function createCode(length)
|
|
{
|
|
var text = "";
|
|
var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
|
|
|
|
for( var i=0; i < length; i++ )
|
|
text += possible.charAt(Math.floor(Math.random() * possible.length));
|
|
|
|
return text;
|
|
}
|