const express = require('express'); const mongoose = require('mongoose'); const route = express.Router(); const Post = require('../DB/Post') // GET: Get all posts made by a user route.get('/posts/:user', async(req,res)=>{ Post.find({username: req.params.user}, async function (err, docs) { if (err){ res.status(400).json({message: error.message}) } else{ res.send({posts: docs}) } }); }); // GET: Get all comments made by a user // GET: Get average workout stats of logged in user as well as friend route.get('/avg/:user/:friend', async(req,res)=>{ Users.find({$or: [ { username: req.params.user }, { username: req.params.friend } ]}, function (err, docs) { if (err){ res.status(400).json({message: error.message}) } else { var user = {} var friend = {} if (docs[0].username == req.params.user) { user = docs[0] friend = docs[1] } else { user = docs[1] friend = docs[0] } var avg_user = user.average_stats var avg_friend = friend.average_stats var other_avg_user = user.other_avg_stats var other_avg_friend = friend.other_avg_stats var result_user = [] var result_friend = [] result_user.push({"ex_name": "Bench Press", "stat": avg_user["bench_press"]}) result_user.push({"ex_name": "Squat", "stat": avg_user["squat"]}) result_user.push({"ex_name": "Deadlift", "stat": avg_user["deadlift"]}) result_friend.push({"ex_name": "Bench Press", "stat": avg_friend["bench_press"]}) result_friend.push({"ex_name": "Squat", "stat": avg_friend["squat"]}) result_friend.push({"ex_name": "Deadlift", "stat": avg_friend["deadlift"]}) for (var i = 0; i < other_avg_user.length; i++) { var current = other_avg_user[i]; const match_result = other_avg_friend.filter(item => item.exercise.toLowerCase() === current.exercise.toLowerCase()); if (match_result.length > 0) { result_user.push({"ex_name": current.exercise, "stat": current.stat}) result_friend.push({"ex_name": match_result[0].exercise, "stat": match_result[0].stat}) } } res.send({user_avg: result_user, friend_avg: result_friend}) } }); }); // GET: Get personal records workout stats of logged in user as well as friend route.get('/pr/:user/:friend', async(req,res)=>{ Users.find({$or: [ { username: req.params.user }, { username: req.params.friend } ]}, function (err, docs) { if (err){ res.status(400).json({message: error.message}) } else { var user = {} var friend = {} if (docs[0].username == req.params.user) { user = docs[0] friend = docs[1] } else { user = docs[1] friend = docs[0] } var pr_user = user.personal_records var pr_friend = friend.personal_records var other_pr_user = user.other_personal_records var other_pr_friend = friend.other_personal_records var result_user = [] var result_friend = [] result_user.push({"ex_name": "Bench Press", "stat": pr_user["bench_press"]}) result_user.push({"ex_name": "Squat", "stat": pr_user["squat"]}) result_user.push({"ex_name": "Deadlift", "stat": pr_user["deadlift"]}) result_friend.push({"ex_name": "Bench Press", "stat": pr_friend["bench_press"]}) result_friend.push({"ex_name": "Squat", "stat": pr_friend["squat"]}) result_friend.push({"ex_name": "Deadlift", "stat": pr_friend["deadlift"]}) for (var i = 0; i < other_pr_user.length; i++) { var current = other_pr_user[i]; const match_result = other_pr_friend.filter(item => item.exercise.toLowerCase() === current.exercise.toLowerCase()); if (match_result.length > 0) { result_user.push({"ex_name": current.exercise, "stat": current.stat}) result_friend.push({"ex_name": match_result[0].exercise, "stat": match_result[0].stat}) } } res.send({user_pr: result_user, friend_pr: result_friend}) } }); }); module.exports = route;