Files
asan-service/server/controllers/GPS.Score.js
T
2024-08-26 00:07:19 +03:30

53 lines
1.4 KiB
JavaScript

// const { body, param, validationResult } = require('express-validator')
// const { _sr } = require('../plugins/serverResponses')
// const { checkValidations } = require('../plugins/controllersHelperFunctions')
const Score = require('../models/GPS.Score')
const User = require('../models/GPS.User')
module.exports.getAll = async (req, res) => {
let page;
let rows;
if (!req.query?.rows || req.query?.rows <= 5) {
rows = 10
} else {
rows = parseInt(req.query.rows)
}
if (!req.query?.page) {
page = 0
// eslint-disable-next-line eqeqeq
} else if (req.query.page <= 1) {
page = 0
} else {
page = req.query.page
page = page * rows - rows
}
const search = req.query?.search ? req.query.search : null
let sort
if(req.query?.sort){
sort= req.query?.sort
}else{
sort= { created_at: -1 }
}
const filter = {
userId: req.user_id,
}
if(search){
filter.$or = [
{ title: { $regex: search } },
{ score: search },
]
}
const score = await Score.find(filter).skip(page).limit(rows).sort(sort);
const total = Math.ceil((await Score.countDocuments(filter)))
const user = await User.findById(req.user_id).select('score')
res.status(200).json({ data: score, score: user.score, total })
}