Skip to content

Instantly share code, notes, and snippets.

@vidhyashekar
Created April 8, 2019 10:13
Show Gist options
  • Save vidhyashekar/79059a30eb8a403086b9cf54bd00c623 to your computer and use it in GitHub Desktop.
Save vidhyashekar/79059a30eb8a403086b9cf54bd00c623 to your computer and use it in GitHub Desktop.
Cleanup script for sypost reactivate domain
// Create domain.
db.Domain.insert({name: "foo.synduit.com", active: true, fromEmail: "foo@gmail.com"});
var domain = db.Domain.findOne({name: "foo.synduit.com"});
// Create category.
db.Category.insert({name: "Group", type: "multiple", domain: domain._id});
var categoryDoc = db.Category.find({domain: domain._id, name: "Group"});
var category = categoryDoc.next();
// Create term.
db.Term.insertMany( [
{ name: "Term1", type: "user", visible: true, domain: domain._id, category: category._id },
{ name: "Term2", type: "system", visible: true, domain: domain._id, category: category._id },
{ name: "Term3", type: "user", visible: true, domain: domain._id, category: category._id },
{ name: "Term4", type: "system", visible: true, domain: domain._id, category: category._id },
] );
// Create segment.
db.Segment.insertMany( [
{ name: "Segment1", active: true, domain: domain._id },
{ name: "Segment2", active: true, domain: domain._id },
{ name: "Segment3", active: true, domain: domain._id },
] );
// Create job.
db.Job.insertMany( [
{ domain: domain._id },
{ domain: domain._id },
] );
// Create token.
db.Token.insertMany( [
{ domain: domain._id, active: true },
{ domain: domain._id, active: true },
] );
// Create Subscribers.
db.Subscriber.insertMany( [
{ name: "Subscriber1", domain: domain._id, active: true },
{ name: "Subscriber2", domain: domain._id, active: true },
{ name: "Subscriber3", domain: domain._id, active: true },
] );
// Create autoresponders.
db.AutoResponder.insertMany( [
{ name: "AutoResponder1", domain: domain._id, active: true },
{ name: "AutoResponder2", domain: domain._id, active: true },
] );
// Create campaigns.
db.Campaign.insertMany( [
{ name: "Campaign1", domain: domain._id, active: true },
{ name: "Campaign2", domain: domain._id, active: true },
] );
// Create drips.
db.Drip.insertMany( [
{ name: "Drip1", domain: domain._id, active: true },
{ name: "Drip2", domain: domain._id, active: true },
] );
var subscriber1 = db.Subscriber.findOne({name: "Subscriber1", domain: domain._id});
var subscriber2 = db.Subscriber.findOne({name: "Subscriber2", domain: domain._id});
var subscriber3 = db.Subscriber.findOne({name: "Subscriber3", domain: domain._id});
var drips = db.Drip.find({domain: domain._id});
while(drips.hasNext()) {
var drip = drips.next();
db.Subscriber.update({name: subscriber1.name}, {$addToSet: {drips: {$each: [drip._id]} }});
db.DripMail.insert({drip: [drip._id], active: true});
var dripMails = db.DripMail.find({drip: drip._id});
while(dripMails.hasNext()) {
var dripMail = dripMails.next();
db.DripMailSchedule.insert({dripMail: [dripMail._id] });
db.EmailBodyLink.insert({dripMail: dripMail._id });
db.EmailSent.insert({dripMail: dripMail._id });
}
}
// Create EmailSent/EmailBodyLink for autoresponders.
var autoresponders = db.AutoResponder.find({domain: domain._id});
while(autoresponders.hasNext()) {
var autoresponder = autoresponders.next();
db.EmailBodyLink.insert({autoresponder: autoresponder._id });
db.EmailSent.insert({autoresponder: autoresponder._id });
}
// Create EmailSent/EmailBodyLink for campaigns.
var campaigns = db.Campaign.find({domain: domain._id});
while(campaigns.hasNext()) {
var campaign = campaigns.next();
db.EmailBodyLink.insert({campaign: campaign._id });
db.EmailSent.insert({campaign: campaign._id });
}
var term1 = db.Term.findOne({name: "Term1", domain: domain._id});
var term2 = db.Term.findOne({name: "Term2", domain: domain._id});
db.Subscriber.update({name: subscriber2.name}, {$addToSet: {terms: {$each: [term1._id] }}});
db.Subscriber.update({name: subscriber3.name}, {$addToSet: {terms: {$each: [term2._id] }}});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment