All files dog.js

100% Statements 8/8
100% Branches 0/0
100% Functions 4/4
100% Lines 8/8

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43          1x 1x                         2x                   2x   1x     1x 1x       2x      
/**
 * Have butlerbot get a random dog image from the internet.
 * @module dog
 * @return {Object} - string (as a message to discord text channel)
 */
const axios = require('axios');
module.exports = {
  name: 'dog',
  description: 'Get a random dog!',
  /**
   * @method execute
   * @param {string} message - command, used to determine which channel to return results
   * @return {string} results of dog api call 
   */  
  execute(message) {   
    /** 
     * @var {string} dogApi
     * @summary dog image api url
     */         
    let dogApi = 'https://dog.ceo/api/breeds/image/random';
 
    /** 
     * @function dogApiCall
     * @async
     * @param {string} api - dog image api url
     * @return {Object} response
     * @summary perform api call against provided url for advice
     */   
    function dogApiCall(api) {
      axios.get(api)
      .then(response => {
        message.channel.send(response.data.message);
      })
      .catch(error => {
        console.log(error);
        return message.channel.send(`I'm unable to grab a dog, sorry master ${message.author}`);
      });   
    }
    // call the dog image api
    dogApiCall(dogApi);
  }
};