Fix Bug
This commit is contained in:
@@ -25,18 +25,17 @@ const authentication = {
|
|||||||
async isAdmin(req, res, next) {
|
async isAdmin(req, res, next) {
|
||||||
try {
|
try {
|
||||||
const token = req.headers?.authorization
|
const token = req.headers?.authorization
|
||||||
if (!token) throw new Error('err')
|
if (!token) throw new Error('err1')
|
||||||
|
|
||||||
const decoded = jwt.verify(token.replace(/^Bearer\s/, ''), authentication.secretKey)
|
const decoded = jwt.verify(token.replace(/^Bearer\s/, ''), authentication.secretKey)
|
||||||
if (!decoded) throw new Error('err')
|
if (!decoded) throw new Error('err2')
|
||||||
|
|
||||||
const user = await User.findById(decoded._id)
|
const user = await User.findById(decoded._id)
|
||||||
if (!user || !user.scope.includes('admin')) throw new Error('err')
|
if (!user || !user.scope.includes('admin')) throw new Error('err3')
|
||||||
|
|
||||||
req.user_id = decoded._id
|
req.user_id = decoded._id
|
||||||
return next()
|
return next()
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log(err)
|
|
||||||
return res401(res, 'unauthorized')
|
return res401(res, 'unauthorized')
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -44,13 +43,13 @@ const authentication = {
|
|||||||
async isGPS(req, res, next) {
|
async isGPS(req, res, next) {
|
||||||
try {
|
try {
|
||||||
const token = req.headers?.authorization
|
const token = req.headers?.authorization
|
||||||
if (!token) throw new Error('err')
|
if (!token) throw new Error('err1')
|
||||||
|
|
||||||
const decoded = jwt.verify(token.replace(/^Bearer\s/, ''), authentication.secretKey)
|
const decoded = jwt.verify(token.replace(/^Bearer\s/, ''), authentication.secretKey)
|
||||||
if (!decoded) throw new Error('err')
|
if (!decoded) throw new Error('err2')
|
||||||
|
|
||||||
const user = await User.findById(decoded._id)
|
const user = await User.findById(decoded._id)
|
||||||
if (!user || !user.scope.includes('gps')) throw new Error('err')
|
if (!user || !user.scope.includes('gps')) throw new Error('err3')
|
||||||
|
|
||||||
req.user_id = decoded._id
|
req.user_id = decoded._id
|
||||||
return next()
|
return next()
|
||||||
|
|||||||
@@ -43,21 +43,21 @@ module.exports.login = [
|
|||||||
const user = await User.findOne({
|
const user = await User.findOne({
|
||||||
$or: [{ email: username.toLowerCase().trim() }, { national_code: username }, { username }]
|
$or: [{ email: username.toLowerCase().trim() }, { national_code: username }, { username }]
|
||||||
})
|
})
|
||||||
if (!user) throw new Error('err')
|
if (!user) throw new Error(_sr.fa.not_found.password)
|
||||||
const passwordMatch = await bcrypt.compare(password, user.password)
|
const passwordMatch = await bcrypt.compare(password, user.password)
|
||||||
if (!passwordMatch) throw new Error('err')
|
if (!passwordMatch) throw new Error(_sr.fa.not_found.password)
|
||||||
const token = await jwt.sign({ _id: user._id }, secretKey, {
|
const token = await jwt.sign({ _id: user._id }, secretKey, {
|
||||||
expiresIn: req.body.remember_me ? '30d' : '7d'
|
expiresIn: req.body.remember_me ? '30d' : '7d'
|
||||||
})
|
})
|
||||||
if(!user.scope.includes('gps')){
|
if(!user.scope.includes('gps')){
|
||||||
throw new Error('err')
|
throw new Error('شما به این بخش دسترسی ندارید')
|
||||||
}
|
}
|
||||||
user.token = token
|
user.token = token
|
||||||
await user.save()
|
await user.save()
|
||||||
return res.status(200).json({ token })
|
return res.status(200).json({ token })
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
return res.status(422).json({
|
return res.status(422).json({
|
||||||
validation: { username: { msg: _sr.fa.not_found.password } }
|
validation: { username: { msg: err.message } }
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,12 +9,13 @@ module.exports.createAward = [
|
|||||||
body('score').notEmpty().isInt().withMessage(_sr.fa.required.field),
|
body('score').notEmpty().isInt().withMessage(_sr.fa.required.field),
|
||||||
body('title').notEmpty().isString().withMessage(_sr.fa.required.field),
|
body('title').notEmpty().isString().withMessage(_sr.fa.required.field),
|
||||||
body('desc').notEmpty().isString().withMessage(_sr.fa.required.field),
|
body('desc').notEmpty().isString().withMessage(_sr.fa.required.field),
|
||||||
body('expireDate').notEmpty().isDate().withMessage(_sr.fa.required.field),
|
body('expireDate').notEmpty().withMessage(_sr.fa.required.field),
|
||||||
],
|
],
|
||||||
checkValidations(validationResult),
|
checkValidations(validationResult),
|
||||||
async (req, res) => {
|
async (req, res) => {
|
||||||
const { score, title, desc, expireData } = req.body;
|
const { score, title, desc, expireDate } = req.body;
|
||||||
const award = await Award.create({ score, title, desc, expireData })
|
const fixDate = new Date(expireDate)
|
||||||
|
const award = await Award.create({ score, title, desc, expireDate:fixDate })
|
||||||
res.status(201).json({
|
res.status(201).json({
|
||||||
msg: _sr.fa.response.success_save,
|
msg: _sr.fa.response.success_save,
|
||||||
data: award
|
data: award
|
||||||
@@ -26,7 +27,7 @@ module.exports.createAward = [
|
|||||||
|
|
||||||
module.exports.findAllUser = async (req, res) => {
|
module.exports.findAllUser = async (req, res) => {
|
||||||
const toDay = new Date()
|
const toDay = new Date()
|
||||||
const data = await Award.find({$lt: {expireDate: toDay}})
|
const data = await Award.find({expireDate: {$gt: toDay}})
|
||||||
res.status(200).json(data)
|
res.status(200).json(data)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -57,11 +58,11 @@ module.exports.update =[
|
|||||||
body('score').notEmpty().isInt().withMessage(_sr.fa.required.field),
|
body('score').notEmpty().isInt().withMessage(_sr.fa.required.field),
|
||||||
body('title').notEmpty().isString().withMessage(_sr.fa.required.field),
|
body('title').notEmpty().isString().withMessage(_sr.fa.required.field),
|
||||||
body('desc').notEmpty().isString().withMessage(_sr.fa.required.field),
|
body('desc').notEmpty().isString().withMessage(_sr.fa.required.field),
|
||||||
body('expireDate').notEmpty().isDate().withMessage(_sr.fa.required.field),
|
body('expireDate').notEmpty().withMessage(_sr.fa.required.field),
|
||||||
],
|
],
|
||||||
checkValidations(validationResult),
|
checkValidations(validationResult),
|
||||||
async (req, res) => {
|
async (req, res) => {
|
||||||
const { score, title, desc, expireData } = req.body;
|
const { score, title, desc, expireDate } = req.body;
|
||||||
const data = await Award.findById(req.params.id)
|
const data = await Award.findById(req.params.id)
|
||||||
if (!data) {
|
if (!data) {
|
||||||
res.status(404).json({ msg: _sr.fa.not_found.item_id })
|
res.status(404).json({ msg: _sr.fa.not_found.item_id })
|
||||||
@@ -69,7 +70,7 @@ module.exports.update =[
|
|||||||
data.score = score;
|
data.score = score;
|
||||||
data.title = title;
|
data.title = title;
|
||||||
data.desc = desc;
|
data.desc = desc;
|
||||||
data.expireData = expireData;
|
data.expireDate = new Date(expireDate)
|
||||||
data.save()
|
data.save()
|
||||||
res.status(200).json({
|
res.status(200).json({
|
||||||
msg: _sr.fa.response.success_save,
|
msg: _sr.fa.response.success_save,
|
||||||
|
|||||||
@@ -85,6 +85,8 @@ module.exports.update = [
|
|||||||
metaData
|
metaData
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
res.status(200).json({ msg: _sr.fa.response.success_save })
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,24 +11,29 @@ module.exports.addCard = [
|
|||||||
],
|
],
|
||||||
checkValidations(validationResult),
|
checkValidations(validationResult),
|
||||||
async (req, res) => {
|
async (req, res) => {
|
||||||
const { holderName, PAN, IBAN } = req.body;
|
try {
|
||||||
const userData = await User.findById(req.user_id).select('id cardBank')
|
const { holderName, PAN, IBAN } = req.body;
|
||||||
if (userData?.cardBank && Array.isArray(userData?.cardBank)) {
|
const userData = await User.findById(req.user_id).select('id cardBank')
|
||||||
userData.cardBank.push({
|
if (userData?.cardBank && Array.isArray(userData?.cardBank)) {
|
||||||
holderName,
|
userData.cardBank.push({
|
||||||
PAN,
|
holderName,
|
||||||
IBAN
|
PAN,
|
||||||
})
|
IBAN
|
||||||
userData.save()
|
})
|
||||||
res.status(201).json({ msg: 'با موفقیت ثبت شد ' })
|
userData.save()
|
||||||
} else {
|
res.status(201).json({ msg: 'با موفقیت ثبت شد ' })
|
||||||
userData.cardBank = [{
|
} else {
|
||||||
holderName,
|
userData.cardBank = [{
|
||||||
PAN,
|
holderName,
|
||||||
IBAN
|
PAN,
|
||||||
}];
|
IBAN
|
||||||
userData.save()
|
}];
|
||||||
res.status(201).json({ msg: 'با موفقیت ثبت شد ' })
|
userData.save()
|
||||||
|
res.status(201).json({ msg: 'با موفقیت ثبت شد ' })
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
res.status(500).json({ msg: error })
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -57,7 +62,8 @@ module.exports.deleteCard = [
|
|||||||
$pull: {
|
$pull: {
|
||||||
cardBank: { _id: req.params.id }
|
cardBank: { _id: req.params.id }
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
{ new:true }
|
||||||
).select('id cardBank')
|
).select('id cardBank')
|
||||||
res.status(200).json({ msg: "با موفقیت حذف شد ", data: userData })
|
res.status(200).json({ msg: "با موفقیت حذف شد ", data: userData })
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -89,6 +89,23 @@ module.exports.getOne = [
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
|
module.exports.getOneByIMEI = [
|
||||||
|
[
|
||||||
|
param('imei').notEmpty().isString().withMessage('ایدی اشتباه است')
|
||||||
|
],
|
||||||
|
checkValidations(validationResult),
|
||||||
|
async (req, res) => {
|
||||||
|
const data = await Device.findOne({IMEI:req.params.imei}).sort({ created_at: -1 })
|
||||||
|
if (!data) {
|
||||||
|
res.status(404).json(_sr.fa.not_found.item_id)
|
||||||
|
} else {
|
||||||
|
res.status(200).json(data)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
module.exports.updateDevice = [
|
module.exports.updateDevice = [
|
||||||
[
|
[
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ module.exports.deviceRegistration = [
|
|||||||
],
|
],
|
||||||
checkValidations(validationResult),
|
checkValidations(validationResult),
|
||||||
async (req, res) => {
|
async (req, res) => {
|
||||||
const device = await Device.find({ IMEI: req.body.IMEI });
|
const device = await Device.findOne({ IMEI: req.body.IMEI });
|
||||||
if (!device) {
|
if (!device) {
|
||||||
throw res.status(404).json({ msg: 'این IMEI وجود ندارد' })
|
throw res.status(404).json({ msg: 'این IMEI وجود ندارد' })
|
||||||
// eslint-disable-next-line eqeqeq
|
// eslint-disable-next-line eqeqeq
|
||||||
@@ -38,21 +38,23 @@ module.exports.deviceRegistration = [
|
|||||||
module.exports.getAllForUser = async (req, res) => {
|
module.exports.getAllForUser = async (req, res) => {
|
||||||
let page;
|
let page;
|
||||||
let rows;
|
let rows;
|
||||||
if (!req.query?.rows) {
|
if (!req.query?.rows || req.query?.rows <= 5) {
|
||||||
rows = 10
|
rows = 10
|
||||||
} else {
|
} else {
|
||||||
rows = req.query.rows
|
rows = parseInt(req.query.rows)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!req.query?.page) {
|
if (!req.query?.page) {
|
||||||
page = 0
|
page = 0
|
||||||
// eslint-disable-next-line eqeqeq
|
// eslint-disable-next-line eqeqeq
|
||||||
} else if (!req.query.page == 1) {
|
} else if (req.query.page <= 1) {
|
||||||
page = 0
|
page = 0
|
||||||
} else {
|
} else {
|
||||||
page = req.query.page
|
page = req.query.page
|
||||||
page = page * rows - rows
|
page = page * rows - rows
|
||||||
}
|
}
|
||||||
const data = await InstalledDevice.find({ userId: req.user_id }).sort({ created_at: -1 }).populate('deviceId').skip(page).limit(rows);
|
const data = await InstalledDevice.find({ userId: req.user_id }).skip(page).limit(rows).sort({ created_at: -1 }).populate('deviceId')
|
||||||
|
|
||||||
const total = Math.ceil((await InstalledDevice.countDocuments({ userId: req.user_id })))
|
const total = Math.ceil((await InstalledDevice.countDocuments({ userId: req.user_id })))
|
||||||
res.status(200).json({ data, total })
|
res.status(200).json({ data, total })
|
||||||
|
|
||||||
@@ -61,15 +63,16 @@ module.exports.getAllForUser = async (req, res) => {
|
|||||||
module.exports.getAllForAdmin = async (req, res) => {
|
module.exports.getAllForAdmin = async (req, res) => {
|
||||||
let page;
|
let page;
|
||||||
let rows;
|
let rows;
|
||||||
if (!req.query?.rows) {
|
if (!req.query?.rows || req.query?.rows <= 5) {
|
||||||
rows = 10
|
rows = 10
|
||||||
} else {
|
} else {
|
||||||
rows = req.query.rows
|
rows = parseInt(req.query.rows)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!req.query?.page) {
|
if (!req.query?.page) {
|
||||||
page = 0
|
page = 0
|
||||||
// eslint-disable-next-line eqeqeq
|
// eslint-disable-next-line eqeqeq
|
||||||
} else if (!req.query.page == 1) {
|
} else if (req.query.page <= 1) {
|
||||||
page = 0
|
page = 0
|
||||||
} else {
|
} else {
|
||||||
page = req.query.page
|
page = req.query.page
|
||||||
@@ -95,24 +98,29 @@ module.exports.updateInstalled = [
|
|||||||
if (!installedDevice) {
|
if (!installedDevice) {
|
||||||
throw res.status(404).json({ msg: 'این ایدی وجود ندارد' })
|
throw res.status(404).json({ msg: 'این ایدی وجود ندارد' })
|
||||||
} else {
|
} else {
|
||||||
const user = await User.findById(installedDevice.userID)
|
const user = await User.findById(installedDevice.userId).select('walletBalance dollarBalance score')
|
||||||
const device = await Device.findById(installedDevice.deviceId)
|
const device = await Device.findById(installedDevice.deviceId)
|
||||||
switch (req.params.type) {
|
switch (req.params.type) {
|
||||||
case "accept": {
|
case "accept": {
|
||||||
|
|
||||||
installedDevice.status = 1;
|
installedDevice.status = 1;
|
||||||
installedDevice.installationDate = new Date();
|
installedDevice.installationDate = new Date();
|
||||||
installedDevice.save()
|
|
||||||
device.status = 1;
|
device.status = 1;
|
||||||
device.save()
|
|
||||||
user.walletBalance += device.profit
|
user.walletBalance = device.profit
|
||||||
user.dollarBalance += device.dollarProfit
|
user.dollarBalance = device.dollarProfit
|
||||||
user.score += device.score
|
user.score = device.score
|
||||||
user.save()
|
|
||||||
|
|
||||||
await Score.create({
|
await Score.create({
|
||||||
deviceId: device.id,
|
deviceId: device.id,
|
||||||
score: device.score,
|
score: device.score,
|
||||||
userId: installedDevice.userID
|
userId: installedDevice.userId
|
||||||
})
|
})
|
||||||
|
user.save()
|
||||||
|
device.save()
|
||||||
|
installedDevice.save()
|
||||||
res.status(201).json({ msg: _sr.fa.response.success_save, data: installedDevice })
|
res.status(201).json({ msg: _sr.fa.response.success_save, data: installedDevice })
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -84,22 +84,41 @@ module.exports.changeStatus = [
|
|||||||
status: 1
|
status: 1
|
||||||
},
|
},
|
||||||
{ new: true })
|
{ new: true })
|
||||||
const userPreData = await User.findById(data.userId).select('walletBalance dollarBalance score')
|
const userPreData = await User.findById(data.userId).select('walletBalance dollarBalance score scope')
|
||||||
const userData = await User.findByIdAndUpdate(
|
if(userPreData.scope.includes('gps')){
|
||||||
data.userId,
|
const userData = await User.findByIdAndUpdate(
|
||||||
{
|
data.userId,
|
||||||
shopName: data.shopName,
|
{
|
||||||
shopNumber: data.shopNumber,
|
shopName: data.shopName,
|
||||||
shopAddress: data.shopAddress,
|
shopNumber: data.shopNumber,
|
||||||
birthDate: data.birthDate,
|
shopAddress: data.shopAddress,
|
||||||
walletBalance: userPreData?.walletBalance | 0,
|
birthDate: data.birthDate,
|
||||||
dollarBalance: userPreData?.dollarBalance | 0,
|
walletBalance: userPreData?.walletBalance | 0,
|
||||||
score: userPreData?.score | 0,
|
dollarBalance: userPreData?.dollarBalance | 0,
|
||||||
$push:{scope:'gps'}
|
score: userPreData?.score | 0,
|
||||||
},
|
$push:{scope:'gps'}
|
||||||
{ new: true }
|
},
|
||||||
)
|
{ new: true }
|
||||||
|
).select('first_name last_name')
|
||||||
res.status(200).json({ msg: 'با موفقیت به روز شد', data: userData })
|
res.status(200).json({ msg: 'با موفقیت به روز شد', data: userData })
|
||||||
|
|
||||||
|
}else{
|
||||||
|
const userData = await User.findByIdAndUpdate(
|
||||||
|
data.userId,
|
||||||
|
{
|
||||||
|
shopName: data.shopName,
|
||||||
|
shopNumber: data.shopNumber,
|
||||||
|
shopAddress: data.shopAddress,
|
||||||
|
birthDate: data.birthDate,
|
||||||
|
walletBalance: userPreData?.walletBalance | 0,
|
||||||
|
dollarBalance: userPreData?.dollarBalance | 0,
|
||||||
|
score: userPreData?.score | 0,
|
||||||
|
},
|
||||||
|
{ new: true }
|
||||||
|
).select('first_name last_name')
|
||||||
|
res.status(200).json({ msg: 'با موفقیت به روز شد', data: userData })
|
||||||
|
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "reject": {
|
case "reject": {
|
||||||
|
|||||||
@@ -9,15 +9,16 @@ const User = require('../models/User')
|
|||||||
module.exports.getAll = async (req, res) => {
|
module.exports.getAll = async (req, res) => {
|
||||||
let page;
|
let page;
|
||||||
let rows;
|
let rows;
|
||||||
if (!req.query?.rows) {
|
if (!req.query?.rows || req.query?.rows <= 5) {
|
||||||
rows = 10
|
rows = 10
|
||||||
} else {
|
} else {
|
||||||
rows = req.query.rows
|
rows = parseInt(req.query.rows)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!req.query?.page) {
|
if (!req.query?.page) {
|
||||||
page = 0
|
page = 0
|
||||||
// eslint-disable-next-line eqeqeq
|
// eslint-disable-next-line eqeqeq
|
||||||
} else if (!req.query.page == 1) {
|
} else if (req.query.page <= 1) {
|
||||||
page = 0
|
page = 0
|
||||||
} else {
|
} else {
|
||||||
page = req.query.page
|
page = req.query.page
|
||||||
@@ -25,7 +26,7 @@ module.exports.getAll = async (req, res) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const score = await Score.find({ userId: req.user_id }).skip(page).limit(rows);
|
const score = await Score.find({ userId: req.user_id }).skip(page).limit(rows);
|
||||||
const total = Math.ceil((await score.estimatedDocumentCount()))
|
const total = Math.ceil((await Score.countDocuments({ userId: req.user_id })))
|
||||||
|
|
||||||
const user = await User.findById(req.user_id).select('score')
|
const user = await User.findById(req.user_id).select('score')
|
||||||
res.status(200).json({ data: score, score: user.score, total })
|
res.status(200).json({ data: score, score: user.score, total })
|
||||||
|
|||||||
@@ -11,20 +11,25 @@ module.exports.createRequest = [
|
|||||||
],
|
],
|
||||||
checkValidations(validationResult),
|
checkValidations(validationResult),
|
||||||
async (req, res) => {
|
async (req, res) => {
|
||||||
const user = await User.findById(req.user_id)
|
try {
|
||||||
const data = {
|
const user = await User.findById(req.user_id)
|
||||||
card: req.body.card,
|
const data = {
|
||||||
userId: req.user_id,
|
card: req.body.card,
|
||||||
amount: user.walletBalance,
|
userId: req.user_id,
|
||||||
dollarAmount: user.dollarBalance,
|
amount: user.walletBalance,
|
||||||
status: 0
|
dollarAmount: user.dollarBalance,
|
||||||
|
status: 0
|
||||||
|
}
|
||||||
|
|
||||||
|
const request = await Withdraw.create(data)
|
||||||
|
user.dollarBalance = 0;
|
||||||
|
user.walletBalance = 0;
|
||||||
|
user.save()
|
||||||
|
res.status(201).json({ msg: _sr.fa.response.success_save, data: request })
|
||||||
|
} catch (error) {
|
||||||
|
res.status(500).json({ msg: error })
|
||||||
|
|
||||||
}
|
}
|
||||||
user.dollarBalance = 0;
|
|
||||||
user.walletBalance = 0;
|
|
||||||
user.save()
|
|
||||||
const request = await Withdraw.create(data)
|
|
||||||
|
|
||||||
res.status(201).json({ msg: _sr.fa.response.success_save, data: request })
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -32,21 +37,23 @@ module.exports.createRequest = [
|
|||||||
module.exports.getAllForUser = async (req, res) => {
|
module.exports.getAllForUser = async (req, res) => {
|
||||||
let page;
|
let page;
|
||||||
let rows;
|
let rows;
|
||||||
if (!req.query?.rows) {
|
if (!req.query?.rows || req.query?.rows <= 5) {
|
||||||
rows = 10
|
rows = 10
|
||||||
} else {
|
} else {
|
||||||
rows = req.query.rows
|
rows = parseInt(req.query.rows)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!req.query?.page) {
|
if (!req.query?.page) {
|
||||||
page = 0
|
page = 0
|
||||||
// eslint-disable-next-line eqeqeq
|
// eslint-disable-next-line eqeqeq
|
||||||
} else if (!req.query.page == 1) {
|
} else if (req.query.page <= 1) {
|
||||||
page = 0
|
page = 0
|
||||||
} else {
|
} else {
|
||||||
page = req.query.page
|
page = req.query.page
|
||||||
page = page * rows - rows
|
page = page * rows - rows
|
||||||
}
|
}
|
||||||
const data = await Withdraw.find({ userId: req.user_id }).sort({ created_at: -1 }).skip(page).limit(rows);
|
|
||||||
|
const data = await Withdraw.find({ userId: req.user_id }).skip(page).limit(rows).sort({ created_at: -1 });
|
||||||
const total = Math.ceil((await Withdraw.countDocuments({ userId: req.user_id })))
|
const total = Math.ceil((await Withdraw.countDocuments({ userId: req.user_id })))
|
||||||
res.status(201).json({ data, total })
|
res.status(201).json({ data, total })
|
||||||
}
|
}
|
||||||
@@ -54,15 +61,16 @@ module.exports.getAllForUser = async (req, res) => {
|
|||||||
module.exports.getAllForAdmin = async (req, res) => {
|
module.exports.getAllForAdmin = async (req, res) => {
|
||||||
let page;
|
let page;
|
||||||
let rows;
|
let rows;
|
||||||
if (!req.query?.rows) {
|
if (!req.query?.rows || req.query?.rows <= 5) {
|
||||||
rows = 10
|
rows = 10
|
||||||
} else {
|
} else {
|
||||||
rows = req.query.rows
|
rows = parseInt(req.query.rows)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!req.query?.page) {
|
if (!req.query?.page) {
|
||||||
page = 0
|
page = 0
|
||||||
// eslint-disable-next-line eqeqeq
|
// eslint-disable-next-line eqeqeq
|
||||||
} else if (!req.query.page == 1) {
|
} else if (req.query.page <= 1) {
|
||||||
page = 0
|
page = 0
|
||||||
} else {
|
} else {
|
||||||
page = req.query.page
|
page = req.query.page
|
||||||
|
|||||||
@@ -9,4 +9,4 @@ const AwairdSchema = mongoose.Schema({
|
|||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
module.exports = mongoose.model('AwairdGPS', AwairdSchema)
|
module.exports = mongoose.model('AwardGPS', AwairdSchema)
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ const mongoose = require('mongoose')
|
|||||||
|
|
||||||
const AwardRequestSchema = mongoose.Schema({
|
const AwardRequestSchema = mongoose.Schema({
|
||||||
awardId:{
|
awardId:{
|
||||||
type:String,
|
type:mongoose.Types.ObjectId,
|
||||||
ref:'Award'
|
ref:'AwardGPS'
|
||||||
},
|
},
|
||||||
userId:{
|
userId:{
|
||||||
type:String,
|
type:String,
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ const BankSchema = mongoose.Schema({
|
|||||||
type: Number,
|
type: Number,
|
||||||
},
|
},
|
||||||
IBAN: {
|
IBAN: {
|
||||||
type: Number,
|
type: String,
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ const BankSchema = mongoose.Schema({
|
|||||||
type:Number,
|
type:Number,
|
||||||
},
|
},
|
||||||
IBAN:{
|
IBAN:{
|
||||||
type:Number,
|
type:String,
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
+17
-3
@@ -30,6 +30,8 @@ const requestController = require('../controllers/GPS.Request')
|
|||||||
const withdraw = require('../controllers/GPS.Withdraw')
|
const withdraw = require('../controllers/GPS.Withdraw')
|
||||||
const installedDevice = require('../controllers/GPS.InstalledDevice')
|
const installedDevice = require('../controllers/GPS.InstalledDevice')
|
||||||
const device = require('../controllers/GPS.Device')
|
const device = require('../controllers/GPS.Device')
|
||||||
|
const award = require('../controllers/GPS.Award')
|
||||||
|
const awardRequest = require('../controllers/GPS.AwardRequest')
|
||||||
|
|
||||||
|
|
||||||
/// //////////////////////////////////////////////////////// routes
|
/// //////////////////////////////////////////////////////// routes
|
||||||
@@ -37,6 +39,17 @@ const device = require('../controllers/GPS.Device')
|
|||||||
|
|
||||||
/// ///////////////////////////// GPS
|
/// ///////////////////////////// GPS
|
||||||
|
|
||||||
|
/// ////////////// Award
|
||||||
|
router.post('/gps/award',hasPermission('gps'), award.createAward)
|
||||||
|
router.get('/gps/award',hasPermission('gps'), award.findAllAdmin)
|
||||||
|
router.get('/gps/award/:id',hasPermission('gps'), award.findOne)
|
||||||
|
router.put('/gps/award/:id',hasPermission('gps'), award.update)
|
||||||
|
|
||||||
|
/// ////////////// Award request
|
||||||
|
router.get('/gps/award-request',hasPermission('gps'), awardRequest.findAllAdmin)
|
||||||
|
router.get('/gps/award-request/:id',hasPermission('gps'), awardRequest.findOne)
|
||||||
|
router.put('/gps/award-request/:id',hasPermission('gps'), awardRequest.update)
|
||||||
|
|
||||||
/// ////////////// request for access to gps
|
/// ////////////// request for access to gps
|
||||||
router.get('/gps/request',hasPermission('gps'), requestController.getAllRequest)
|
router.get('/gps/request',hasPermission('gps'), requestController.getAllRequest)
|
||||||
router.get('/gps/request/:id',hasPermission('gps'), requestController.getOneRequest)
|
router.get('/gps/request/:id',hasPermission('gps'), requestController.getOneRequest)
|
||||||
@@ -47,14 +60,15 @@ router.get('/gps/withdraw',hasPermission('gps'), withdraw.getAllForAdmin)
|
|||||||
router.patch('/gps/withdraw/:id/:type',hasPermission('gps'), withdraw.updateReq)
|
router.patch('/gps/withdraw/:id/:type',hasPermission('gps'), withdraw.updateReq)
|
||||||
|
|
||||||
/// ////////////// Installed device
|
/// ////////////// Installed device
|
||||||
router.patch('/register-device/:id/:type', installedDevice.updateInstalled)
|
router.patch('/gps/register-device/:id/:type', installedDevice.updateInstalled)
|
||||||
router.get('/register-device', installedDevice.getAllForAdmin)
|
router.get('/gps/register-device', installedDevice.getAllForAdmin)
|
||||||
|
|
||||||
/// ////////////// Device
|
/// ////////////// Device
|
||||||
router.post('/gps/device',hasPermission('gps'), device.addCode)
|
router.post('/gps/device',hasPermission('gps'), device.addCode)
|
||||||
router.post('/gps/device/exel',hasPermission('gps'), device.importExel)
|
router.post('/gps/device/exel',hasPermission('gps'), device.importExel)
|
||||||
router.get('/gps/device',hasPermission('gps'), device.getAll)
|
router.get('/gps/device',hasPermission('gps'), device.getAll)
|
||||||
router.get('/gps/device/:id',hasPermission('gps'), device.getOne)
|
router.get('/gps/device/imei/:imei',hasPermission('gps'), device.getOneByIMEI)
|
||||||
|
router.get('/gps/device/id/:id',hasPermission('gps'), device.getOne)
|
||||||
router.put('/gps/device/:id',hasPermission('gps'), device.updateDevice)
|
router.put('/gps/device/:id',hasPermission('gps'), device.updateDevice)
|
||||||
|
|
||||||
/// /////////////////////////////////////////////////////////
|
/// /////////////////////////////////////////////////////////
|
||||||
|
|||||||
@@ -1,6 +1,11 @@
|
|||||||
const { Router } = require('express')
|
const { Router } = require('express')
|
||||||
const router = Router()
|
const router = Router()
|
||||||
const userController = require('../controllers/userController')
|
const userController = require('../controllers/userController')
|
||||||
|
const gpsAuthController = require('../controllers/GPS.Auth')
|
||||||
|
|
||||||
|
/// /////////////////// gps routes
|
||||||
|
router.post('/gps/login', gpsAuthController.login)
|
||||||
|
|
||||||
|
|
||||||
/// /////////////////// admin routes
|
/// /////////////////// admin routes
|
||||||
// router.post('/register/admin', userController.register_admin)
|
// router.post('/register/admin', userController.register_admin)
|
||||||
@@ -13,4 +18,6 @@ router.post('/login', userController.webLogin)
|
|||||||
router.post('/logout', userController.webLogout)
|
router.post('/logout', userController.webLogout)
|
||||||
router.get('/user', userController.getUser)
|
router.get('/user', userController.getUser)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
module.exports = router
|
module.exports = router
|
||||||
|
|||||||
@@ -4,6 +4,16 @@ const bankAccount = require('../controllers/GPS.BankAccount')
|
|||||||
const withdraw = require('../controllers/GPS.Withdraw')
|
const withdraw = require('../controllers/GPS.Withdraw')
|
||||||
const installedDevice = require('../controllers/GPS.InstalledDevice')
|
const installedDevice = require('../controllers/GPS.InstalledDevice')
|
||||||
const score = require('../controllers/GPS.Score')
|
const score = require('../controllers/GPS.Score')
|
||||||
|
const award = require('../controllers/GPS.Award')
|
||||||
|
const awardRequest = require('../controllers/GPS.AwardRequest')
|
||||||
|
|
||||||
|
|
||||||
|
/// ////////////// Award request
|
||||||
|
router.post('/award-request', awardRequest.sendRequest)
|
||||||
|
router.get('/award-request', awardRequest.findAllUser)
|
||||||
|
|
||||||
|
/// ////////////// Award
|
||||||
|
router.get('/award', award.findAllUser)
|
||||||
|
|
||||||
/// ///////////////// Bank card
|
/// ///////////////// Bank card
|
||||||
router.post('/bank-card', bankAccount.addCard)
|
router.post('/bank-card', bankAccount.addCard)
|
||||||
|
|||||||
Reference in New Issue
Block a user