Create middleware inside challengeComplete.js file, which is going to check if there is a challenge with goal "Complete workouts" and if so create mechanism for checking if that challenge was completed.
Also you need to update challenges list inside user scheme. Changing challenge status to completed and creating new challenge with function drawChallenges that will be the same difficulty as the one completed.
In the end you need to place that middleware in parts of pipeline where challenge with goal "Complete workouts" can be completed.
Ex. "Completed workouts" goal can be met after ending a workout, so you should add that middleware in routes file before endWorkout.
Create middleware inside challengeComplete.js file, which is going to check if there is a challenge with goal "Complete workouts" and if so create mechanism for checking if that challenge was completed.
Also you need to update challenges list inside user scheme. Changing challenge status to completed and creating new challenge with function drawChallenges that will be the same difficulty as the one completed.
In the end you need to place that middleware in parts of pipeline where challenge with goal "Complete workouts" can be completed. Ex. "Completed workouts" goal can be met after ending a workout, so you should add that middleware in routes file before endWorkout.