Created
July 14, 2021 00:50
-
-
Save kingluddite/dcc801543e155bf51a245982461668d9 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//import inquirer | |
const inquirer = require('inquirer'); | |
//import jest | |
const jest = require('jest'); | |
//require Engineer, intern, manager | |
const Engineer = require('./lib/Engineer.js'); | |
const Intern = require('./lib/Intern.js'); | |
const Manager = require('./lib/Manager.js'); | |
//write to html pageDisplay | |
const fs = require('fs'); | |
const util = require('util'); | |
const generateHTML = require('./utils/generateMarkdown.js'); | |
const writeFileAsync = util.promisify(fs.writeFile); | |
//create a role id of 0 | |
let roleId = 0; | |
//create empty array | |
let roleArray = []; | |
//create prompt user function with inquirer & question choices | |
//use switch case for if the user chooses engineer, intern or manager | |
//create user prompt for each role | |
const promptUser = () => { | |
console.log('first question'); | |
inquirer | |
.prompt([ | |
{ | |
type: 'list', | |
name: 'role', | |
message: 'what is your role?', | |
choices: ['Engineer', 'Intern', 'Manager'], | |
}, | |
]) | |
.then(function (title) { | |
if (title.role === 'Engineer') { | |
console.log('engineer'); | |
inquirer | |
.prompt([ | |
{ | |
name: 'name', | |
message: 'What is your name?', | |
type: 'input', | |
}, | |
{ | |
name: 'github', | |
type: 'input', | |
message: 'What is your github Username?', | |
}, | |
{ | |
name: 'email', | |
type: 'input', | |
message: 'What is your email?', | |
}, | |
//push answers to team array for each job resolve | |
]) | |
.then(function (engineerTitle) { | |
var newEngineer = new Engineer( | |
engineerTitle.name, | |
engineerTitle.email, | |
roleId, | |
engineerTitle.github, | |
); | |
roleId = roleId++; | |
roleArray.push(newEngineer); | |
addUser(); | |
}); | |
} else if (title.role === 'Intern') { | |
console.log('intern'); | |
inquirer | |
.prompt([ | |
{ | |
name: 'name', | |
message: 'What is your name?', | |
type: 'input', | |
}, | |
{ | |
name: 'email', | |
type: 'input', | |
message: 'What is your email?', | |
}, | |
{ | |
name: 'school', | |
type: 'input', | |
message: 'Where did you graduate from college?', | |
}, | |
//push answers to team array for each job resolve | |
]) | |
.then(function (internTitle) { | |
var newIntern = new Intern( | |
internTitle.name, | |
internTitle.email, | |
roleId, | |
internTitle.school, | |
); | |
roleId = roleId++; | |
console.log(newIntern); | |
roleArray.push(newIntern); | |
addUser(); | |
}); | |
} else if (title.role === 'Manager') { | |
console.log('manager'); | |
inquirer | |
.prompt([ | |
{ | |
name: 'name', | |
message: 'What is your name?', | |
type: 'input', | |
}, | |
{ | |
name: 'email', | |
type: 'input', | |
message: 'What is your email?', | |
}, | |
{ | |
name: 'office', | |
type: 'input', | |
message: 'What is your office number?', | |
}, | |
//push answers to team array for each job resolve | |
]) | |
.then(function (managerTitle) { | |
var newManager = new Manager( | |
managerTitle.name, | |
managerTitle.email, | |
roleId, | |
managerTitle.office, | |
); | |
roleId = roleId++; | |
roleArray.push(newManager); | |
addUser(); | |
return newManager; | |
}); | |
} | |
}); | |
}; | |
function addUser() { | |
inquirer | |
.prompt([ | |
{ | |
name: 'continue', | |
message: 'Do you want to add another team member?', | |
type: 'confirm', | |
}, | |
]) | |
.then(function (confirmRes) { | |
confirmRes.continue && promptUser(); | |
}); | |
} | |
async function generate() { | |
// Ask user questions and generate responses | |
const roleArray = await promptUser(); | |
const generateContent = generateHTML(roleArray); | |
// Write new README.md to dist directory | |
await writeFileAsync('./dist/index.html', generateContent, function (err, result) {}); | |
} | |
generate(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment