Skip to content

Commit

Permalink
馃摝 NEW: Sort Validation
Browse files Browse the repository at this point in the history
  • Loading branch information
ahmadawais committed Apr 23, 2020
1 parent 1a09647 commit 73432df
Show file tree
Hide file tree
Showing 5 changed files with 55 additions and 0 deletions.
3 changes: 3 additions & 0 deletions utils/getCountries.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ const { sortingKeys } = require('./table.js');
const to = require('await-to-js').default;
const handleError = require('cli-handle-error');
const orderBy = require('lodash.orderby');
const sortValidation = require('./sortValidation.js');

module.exports = async (
spinner,
Expand All @@ -17,6 +18,8 @@ module.exports = async (
{ sortBy, limit, reverse }
) => {
if (!countryName && !states && !bar) {
sortValidation(sortBy, spinner);

const [err, response] = await to(
axios.get(`https://corona.lmao.ninja/v2/countries`)
);
Expand Down
1 change: 1 addition & 0 deletions utils/getCountryChart.js
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ module.exports = async (spinner, countryName, { chart, log }) => {
spinner.stop();
line.setData([casesSeries, deathsSeries, recoveredSeries]);
screen.render();

await new Promise((resolve, _) => {
screen.key(['escape', 'q', 'C-c', 'enter', 'space'], (ch, key) => {
return process.exit(0);
Expand Down
2 changes: 2 additions & 0 deletions utils/getStates.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,11 @@ const { sortingStateKeys } = require('./table.js');
const to = require('await-to-js').default;
const handleError = require('cli-handle-error');
const orderBy = require('lodash.orderby');
const sortStateValidation = require('./sortStateValidation.js');

module.exports = async (spinner, table, states, { sortBy, limit, reverse }) => {
if (states) {
sortStateValidation(sortBy, spinner);
const [err, response] = await to(
axios.get(`https://corona.lmao.ninja/v2/states`)
);
Expand Down
23 changes: 23 additions & 0 deletions utils/sortStateValidation.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
const sym = require('log-symbols');
const { sortingStateKeys } = require('./table.js');
const { red, green, dim } = require('chalk');

module.exports = (sortBy, spinner) => {
if (sortBy !== 'cases') {
if (Object.keys(sortingStateKeys).indexOf(sortBy) === -1) {
spinner.stop();
console.log(`${sym.error} ${red(`Wrong sorting key!`)}`);
console.log(`${sym.info} You can only sort by:
${dim(`-`)} ${green(`cases`)}
${dim(`-`)} ${green(`cases-today`)}
${dim(`-`)} ${green(`deaths`)}
${dim(`-`)} ${green(`deaths-today`)}
${dim(`-`)} ${green(`active`)}\n`);
process.exit(0);
}
// It is a custom sort.
return true;
}
// Not a custom sort.
return false;
};
26 changes: 26 additions & 0 deletions utils/sortValidation.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
const sym = require('log-symbols');
const { sortingKeys } = require('./table.js');
const { red, green, dim } = require('chalk');

module.exports = (sortBy, spinner) => {
if (sortBy !== 'cases') {
if (Object.keys(sortingKeys).indexOf(sortBy) === -1) {
spinner.stop();
console.log(`${sym.error} ${red(`Wrong sorting key!`)}`);
console.log(`${sym.info} You can only sort by:
${dim(`-`)} ${green(`cases`)}
${dim(`-`)} ${green(`cases-today`)}
${dim(`-`)} ${green(`deaths`)}
${dim(`-`)} ${green(`deaths-today`)}
${dim(`-`)} ${green(`recovered`)}
${dim(`-`)} ${green(`active`)}
${dim(`-`)} ${green(`critical`)}
${dim(`-`)} ${green(`per-million`)}\n`);
process.exit(0);
}
// It is a custom sort.
return true;
}
// Not a custom sort.
return false;
};

0 comments on commit 73432df

Please sign in to comment.