mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2024-11-24 16:17:57 -05:00
61 lines
1.4 KiB
JavaScript
61 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 teacher subscription. 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',
|
||
|
status: 'active',
|
||
|
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;
|
||
|
}
|