UNPKG

pact-coffee-cli

Version:
65 lines (59 loc) 1.99 kB
const path = require('path'); require('dotenv').config({ path: path.join(__dirname, '..', '.env') }); const chalk = require('chalk'); const inquirer = require('./inquirer'); const CoffeeMaker = require('./CoffeeMaker'); exports.changeDate = async function (date) { const CoffeeMakerInstance = new CoffeeMaker(); await CoffeeMakerInstance.authenticate(); await CoffeeMakerInstance.getUserData(); await CoffeeMakerInstance.changeOrderDate(date); await CoffeeMakerInstance.cleanup(); }; exports.dispatchWhen = async function () { const CoffeeMakerInstance = new CoffeeMaker(); await CoffeeMakerInstance.authenticate(); // Fetch user data and dispatch data concurrently await Promise.all([ CoffeeMakerInstance.getUserData(), CoffeeMakerInstance.displayLastDispatched(), ]); await CoffeeMakerInstance.displayOrderStatus(); await CoffeeMakerInstance.cleanup(); }; exports.main = async function main() { try { const CoffeeMakerInstance = new CoffeeMaker(); await CoffeeMakerInstance.authenticate(); // Fetch user data and dispatch data concurrently await Promise.all([ CoffeeMakerInstance.getUserData(), CoffeeMakerInstance.displayLastDispatched(), ]); await CoffeeMakerInstance.displayOrderStatus(); let answers; let running = true; // Inquirer menu loop while (running) { answers = await inquirer.askOptions(); switch (answers.optionSelection) { case 'Change delivery date': await CoffeeMakerInstance.changeOrderDate(answers.date); break; case 'View order history': await CoffeeMakerInstance.displayOrderHistory(); break; case 'Display rated coffees': await CoffeeMakerInstance.displayRatedCoffees(); break; case 'Exit': await CoffeeMakerInstance.cleanup(); default: running = false; break; } } } catch (e) { console.log(chalk.red(e)); } };