rtm-cli icon indicating copy to clipboard operation
rtm-cli copied to clipboard

Failed to add task but still reported success

Open beauraines opened this issue 4 years ago • 4 comments

I was adding several tasks using the rtm a interactive mode. While I was entering them, my internet went out. Then when finishing with a blank line, it cycled through the tasks, reported a failure and then ended with the success message.

New Task: Install new Comcast modem #personal !1 ^today @home =15 minutes New Task: Install new Nest floodlight #Personal !1 ~tomorrow ^Saturday =1 hour @home New Task: ✖ Could not add new Task #1 (Network Error: Could not make request to RTM API Server) ✖ Could not add new Task #2 (Network Error: Could not make request to RTM API Server) ✔ Task(s) Added

I was expecting that the final message would have reported an error.

I've not attempted to troubleshoot this yet.

beauraines avatar Dec 06 '21 01:12 beauraines

Just hit this same problem this week

progers-de avatar Aug 05 '24 20:08 progers-de

I may have some time this weekend to troubleshoot this.

beauraines avatar Aug 09 '24 16:08 beauraines

FWIW, I've solved the underlying problem for myself by using the npm version instead of the .exe, but yeah, worth seeing why it says "Task(s) added" when no tasks were added

progers-de avatar Aug 09 '24 16:08 progers-de

This is where the problem is coming from

https://github.com/beauraines/rtm-cli/blob/870a8a7408e25f71830e3eae123c7a00eaf84034/src/cmd/add.js#L42-L71

/**
 * Process the request
 * @private
 */
function _process(task, count=1, max=1) {
  log.spinner.start("Adding New Task(s)...");
  config.user(function(user) {
    task = _parseTask(task);

    // Add Task
    user.tasks.add(task, function(err) {
      if ( err ) {
        log.spinner.error("Could not add new Task #" + count + " (" + err.msg + ")");
      }
      _processFinished(count, max);
    });
  });
}

/**
 * Request Callback
 * @private
 */
function _processFinished(count, max) {
  log.spinner.start("Adding Task [" + count + "/" + max + "]...");
  if ( count === max ) {
    log.spinner.success("Task(s) Added");
    return finish();
  }
}

If there is an error, it displays that there was an error, but once all the tasks have been processed, it still goes on to _processFinished It seems that _processFinished should take the err as an argument and then display log.spinner.error() with some error message.

However, this pattern repeats itself through each of the commands...

beauraines avatar Aug 18 '24 23:08 beauraines