Example #1
0
    app.get('/faker/random', function (req, res) {
        var fakerRandomDetails = {
            number: Faker.random.number(),
            //array_element: Faker.random.array_element(),
            city_prefix: Faker.random.city_prefix(),
            city_suffix: Faker.random.city_suffix(),
            street_suffix: Faker.random.street_suffix(),
            br_state: Faker.random.br_state(),
            br_state_abbr: Faker.random.br_state_abbr(),
            us_state: Faker.random.us_state(),
            us_state_abbr: Faker.random.us_state_abbr(),
            uk_county: Faker.random.uk_county(),
            uk_country: Faker.random.uk_country(),
            first_name: Faker.random.first_name(),
            last_name: Faker.random.last_name(),
            name_prefix: Faker.random.name_prefix(),
            name_suffix: Faker.random.name_suffix(),
            catch_phrase_adjective: Faker.random.catch_phrase_adjective(),
            catch_phrase_descriptor: Faker.random.catch_phrase_descriptor(),
            catch_phrase_noun: Faker.random.catch_phrase_noun(),
            bs_adjective: Faker.random.bs_adjective(),
            bs_buzz: Faker.random.bs_buzz(),
            bs_noun: Faker.random.bs_noun(),
            phone_formats: Faker.random.phone_formats(),
            domain_suffix: Faker.random.domain_suffix(),
            avatar_uri: Faker.random.avatar_uri()
        };

        res.json(fakerRandomDetails);
    });
                  .then(function(companyResults){
                    console.log('Saved companies: ', companyResults.length);
                    var opportunitySaves = [];
                    var stageEnum = [
                      'Offer Accepted',
                      'Offer Received',
                      'On-Site Interview',
                      'Phone Interview'
                    ];

                    for(var i = 0; i < 20; i++) {
                      var index = Math.floor(Math.random() * companyResults.length);
                      var opportunity = {
                        active:         true,
                        company:        companyResults[index]._id,
                        jobTitle:       faker.Company.bs(),
                        description:    faker.Company.catchPhrase(),
                        tags:           userTags,
                        links:          [{title : faker.random.catch_phrase_descriptor(), url : faker.Image.imageUrl()}],
                        notes:          [{date : new Date(), text : faker.Lorem.sentence()}],
                        internalNotes:  [{date : new Date(), text : faker.Lorem.sentence()}],
                        questions:      [{date : new Date(), question : faker.Lorem.sentence()}],
                        survey:         [{  user:   userResults[Math.floor(Math.random() * userResults.length)]._id,
                                            salary: faker.random.number(80000, 160000),
                                            notes:  [faker.Lorem.sentence(),faker.Lorem.sentence()],
                                            stage:  stageEnum[Math.floor(Math.random() * stageEnum.length)]
                                        }],
                        category:       categoryResults[Math.floor(Math.random() * categoryResults.length)]._id
                      };
                      opportunitySaves.push(Opportunity.create(opportunity));
                    // UPDATE COMPANIES WITH OPPERTUNITY
                    }
                    console.log('Saving opportunities.. ');
                    Q.all(opportunitySaves)
                      .then(function(opportunityResults) {
                        console.log('Saved opportunities: ', opportunityResults.length);
                      }, function(error){
                        console.log(error);
                      });
                  });
    .then(function(categoryResults){
      console.log('Saved categories: ', categoryResults.length);

      var tagSaves = [];
      var options = ['scale', 'binary', 'text'];
      var tagCategories = categoryResults.filter(function(category){ return category.type === 'Tag' })
      // Populate 20 tags
      for(var i = 0; i < 10; i++) {
        var tag = {
          name:             faker.random.bs_noun() + i,
          label:            faker.random.catch_phrase_descriptor(),
          type:             options[Math.floor(Math.random() * 3)],
          active:           true,
          position:         i,
          category:         tagCategories[0]._id
        };
        tagSaves.push(Tag.create(tag));
      }
      for(var i = 0; i < 10; i++) {
        var tag = {
          name:             faker.random.bs_noun() + i,
          label:            faker.random.catch_phrase_descriptor(),
          type:             options[Math.floor(Math.random() * 3)],
          active:           true,
          position:         i,
          category:         tagCategories[1]._id
        };
        tagSaves.push(Tag.create(tag));
      }
      console.log('Saving tags..');
      Q.all(tagSaves)
        .then(function(results) {
          console.log('Saved tags: ', results.length);
          var userSaves = [];
          Tag.find(function(err, tags) {
            var userTags = [];
              userTags = tags.map(function(item){
              var tag;
                if (item.type === 'binary') {
                  tag = {
                    tag : item._id,
                    value : Math.random() > 0.5 ? "yes" : "no",
                  };
                } else if (item.type === 'scale') {
                  tag = {
                    tag : item._id,
                    value : String(Math.floor(Math.random() * 4 + 1))
                  };
                } else if (item.type === 'text') {
                  tag = {
                    tag : item._id,
                    value : faker.Lorem.sentence()
                  };
                }
              return tag;
            });
            // create admin
            var admin = {
              email:          '*****@*****.**',
              password:       '******',
              name:           faker.Name.findName(),
              github:         'github.com/' + faker.Name.firstName(),
              linkedin:       'linkedin.com/in/' + faker.Name.firstName(),
              isAdmin:        true,
              isRegistered:   Math.random() > 0.5 ? true : false,
              searchStage:    'Early',
              city:           'San Francisco',
              state:          'CA',
              country:        'USA',
              tags:           userTags,
              category:       categoryResults[Math.floor(Math.random() * categoryResults.length)]._id
            };
            var testUser = {
              email:          '*****@*****.**',
              password:       '******',
              name:           faker.Name.findName(),
              github:         'github.com/' + faker.Name.firstName(),
              linkedin:       'linkedin.com/in/' + faker.Name.firstName(),
              isAdmin:        false,
              isRegistered:   Math.random() > 0.5 ? true : false,
              searchStage:    'Early',
              city:           'San Francisco',
              state:          'CA',
              country:        'USA',
              tags:           userTags,
              category:       categoryResults[Math.floor(Math.random() * categoryResults.length)]._id
            };
            userSaves.push(User.create(admin));
            userSaves.push(User.create(testUser));
            // Populate users
            for(var i = 0; i < 20; i++) {
              var user = {
                email:          faker.Internet.email(),
                password:       '******',
                name:           faker.Name.findName(),
                github:         'github.com/' + faker.Name.firstName(),
                linkedin:       'linkedin.com/in/' + faker.Name.firstName(),
                isAdmin:        false,
                isRegistered:   Math.random() > 0.5 ? true : false,
                searchStage:    'Early',
                city:           'San Francisco',
                state:          'CA',
                country:        'USA',
                tags:           userTags,
                category:       categoryResults[Math.floor(Math.random() * categoryResults.length)]._id
              };
              userSaves.push(User.create(user));
            }
            console.log('Saving users.. ');
            Q.all(userSaves)
              .then(function(userResults) {
                console.log('Saved users: ', userResults.length);
                var companySaves = [];

                // Create companies
                for(var j = 0; j < 10; j++) {
                  var company = {
                    name:        faker.Company.companyName(),
                    tagline:     faker.Company.catchPhrase(),
                    description: faker.Company.bs(),
                    address:     faker.Address.streetAddress(),
                    city:        faker.Address.city(),
                    state:       faker.Address.usState(),
                    country:     faker.Address.ukCountry(),
                    geo:         [faker.random.number(1,100), faker.random.number(1,100)],
                    media:       [{caption : faker.random.catch_phrase_descriptor(), url : faker.Image.imageUrl()}],
                    links:       [{title : faker.random.catch_phrase_descriptor(), url : faker.Image.imageUrl()}]
                  };

                  companySaves.push(Company.create(company));
                }

                console.log('Saving companies.. ');
                Q.all(companySaves)
                  .then(function(companyResults){
                    console.log('Saved companies: ', companyResults.length);
                    var opportunitySaves = [];
                    var stageEnum = [
                      'Offer Accepted',
                      'Offer Received',
                      'On-Site Interview',
                      'Phone Interview'
                    ];

                    for(var i = 0; i < 20; i++) {
                      var index = Math.floor(Math.random() * companyResults.length);
                      var opportunity = {
                        active:         true,
                        company:        companyResults[index]._id,
                        jobTitle:       faker.Company.bs(),
                        description:    faker.Company.catchPhrase(),
                        tags:           userTags,
                        links:          [{title : faker.random.catch_phrase_descriptor(), url : faker.Image.imageUrl()}],
                        notes:          [{date : new Date(), text : faker.Lorem.sentence()}],
                        internalNotes:  [{date : new Date(), text : faker.Lorem.sentence()}],
                        questions:      [{date : new Date(), question : faker.Lorem.sentence()}],
                        survey:         [{  user:   userResults[Math.floor(Math.random() * userResults.length)]._id,
                                            salary: faker.random.number(80000, 160000),
                                            notes:  [faker.Lorem.sentence(),faker.Lorem.sentence()],
                                            stage:  stageEnum[Math.floor(Math.random() * stageEnum.length)]
                                        }],
                        category:       categoryResults[Math.floor(Math.random() * categoryResults.length)]._id
                      };
                      opportunitySaves.push(Opportunity.create(opportunity));
                    // UPDATE COMPANIES WITH OPPERTUNITY
                    }
                    console.log('Saving opportunities.. ');
                    Q.all(opportunitySaves)
                      .then(function(opportunityResults) {
                        console.log('Saved opportunities: ', opportunityResults.length);
                      }, function(error){
                        console.log(error);
                      });
                  });
              });
          });
      });
    });
Example #4
0
    .then(function(categoryResults){
      console.log('Saved categories: ', categoryResults.length);

      var tagSaves = [];
      // Populate 20 tags
      for(var i = 0; i < 20; i++) {
        var tag = {
          name:             faker.random.bs_noun() + i,
          label:            faker.random.catch_phrase_descriptor(),
          scaleDescription: [null,'None', 'Basic', 'Experienced', 'Expert'],
          category:         categoryResults[Math.floor(Math.random() * categoryResults.length)]._id
        };
        tagSaves.push(Tag.create(tag));
      }
      console.log('Saving tags..');
      Q.all(tagSaves)
        .then(function(results) {
          console.log('Saved tags: ', results.length);
          var userSaves = [];
          Tag.find(function(err, tags) {
            var userTags = [];
            userTags = tags.map(function(item){
              var tag = {
                tag : item._id,
                score : Math.floor(Math.random() * 4)
              };
              return tag;
            });
            // Populate users
            for(var i = 0; i < 20; i++) {
              var user = {
                email:          faker.Internet.email(),
                password:       '******',
                name:           faker.Name.findName(),
                github:         'github.com/' + faker.Name.firstName(),
                linkedin:       'linkedin.com/in/' + faker.Name.firstName(),
                isAdmin:        false,
                isRegistered:   true,
                searchStage:    'Early',
                city:           'San Francisco',
                state:          'CA',
                country:        'USA',
                tags:           userTags,
                category:       categoryResults[Math.floor(Math.random() * categoryResults.length)]._id
              };
              userSaves.push(User.create(user));
            }
            console.log('Saving users.. ');
            Q.all(userSaves)
              .then(function(userResults) {
                console.log('Saved users: ', userResults.length);
                var companySaves = [];

                // Create companies
                for(var j = 0; j < 10; j++) {
                  var company = {
                    name:        faker.Company.companyName(),
                    tagline:     faker.Company.catchPhrase(),
                    description: faker.Company.bs(),
                    address:     faker.Address.streetAddress(),
                    city:        faker.Address.city(),
                    state:       faker.Address.usState(),
                    country:     faker.Address.ukCountry(),
                    geo:         [faker.random.number(1,100), faker.random.number(1,100)],
                    media:       [{caption : faker.random.catch_phrase_descriptor(), url : faker.Image.imageUrl()}],
                    links:       [{title : faker.random.catch_phrase_descriptor(), url : faker.Image.imageUrl()}]
                  };

                  companySaves.push(Company.create(company));
                }

                console.log('Saving companies.. ');
                Q.all(companySaves)
                  .then(function(companyResults){
                    console.log('Saved companies: ', companyResults.length);
                    var opportunitySaves = [];
                    var stageEnum = [
                      'Offer Accepted',
                      'Offer Received',
                      'On-Site Interview',
                      'Phone Interview'
                    ];

                    for(var i = 0; i < 20; i++) {
                      var index = Math.floor(Math.random() * companyResults.length);
                      var opportunity = {
                        active:         true,
                        company:        companyResults[index]._id,
                        jobTitle:       faker.Company.bs(),
                        description:    faker.Company.catchPhrase(),
                        tags:           userTags,
                        links:          [{title : faker.random.catch_phrase_descriptor(), url : faker.Image.imageUrl()}],
                        notes:          [{date : new Date(), text : faker.Lorem.sentence()}],
                        internalNotes:  [{date : new Date(), text : faker.Lorem.sentence()}],
                        questions:      [{date : new Date(), question : faker.Lorem.sentence()}],
                        survey:         [{  user:   userResults[Math.floor(Math.random() * userResults.length)]._id,
                                            salary: faker.random.number(80000, 160000),
                                            notes:  [faker.Lorem.sentence(),faker.Lorem.sentence()],
                                            stage:  stageEnum[Math.floor(Math.random() * stageEnum.length)]
                                        }],
                        category:       categoryResults[Math.floor(Math.random() * categoryResults.length)]._id
                      };
                      opportunitySaves.push(Opportunity.create(opportunity));
                    // UPDATE COMPANIES WITH OPPERTUNITY
                    }
                    console.log('Saving opportunities.. ');
                    Q.all(opportunitySaves)
                      .then(function(opportunityResults) {
                        console.log('Saved opportunities: ', opportunityResults.length);
                      }, function(error){
                        console.log(error);
                      });
                  });
              });
          });
      });
    });