92 lines
3.0 KiB
JavaScript
92 lines
3.0 KiB
JavaScript
const CounterDay = require('../models/CounterDay');
|
|
const {body, validationResult} = require('express-validator');
|
|
const {_sr} = require('../plugins/serverResponses');
|
|
const {res404, res500} = require('../plugins/controllersHelperFunctions');
|
|
const fs = require('fs');
|
|
const sharp = require('sharp');
|
|
const moment = require('moment-jalaali');
|
|
|
|
/////////////////////////////////////////////////////////////////////// admin
|
|
|
|
module.exports.updateCounterDay = [
|
|
[
|
|
body('title')
|
|
.notEmpty().withMessage(_sr['fa'].required.title),
|
|
|
|
body('publish')
|
|
.optional().isBoolean().withMessage(_sr['fa'].format.boolean),
|
|
|
|
body('expireDate')
|
|
.notEmpty().withMessage(`لطفا یک تاریخ تعیین کنید`),
|
|
|
|
],
|
|
async (req, res) => {
|
|
const errors = validationResult(req)
|
|
if (!errors.isEmpty()) return res.status(422).json({
|
|
validation: errors.mapped()
|
|
});
|
|
|
|
|
|
try {
|
|
|
|
const {title, publish , expireDate} = req.body;
|
|
|
|
const targetCounterDay = await CounterDay.findOne();
|
|
|
|
if (targetCounterDay) {
|
|
targetCounterDay.title = title;
|
|
targetCounterDay.publish = publish;
|
|
targetCounterDay.expireDate = moment(expireDate).startOf('days');
|
|
targetCounterDay._updatedBy = req.user._id;
|
|
|
|
await targetCounterDay.save();
|
|
|
|
return res.json({message: _sr['fa'].response.success_save});
|
|
}else {
|
|
const data = {
|
|
title,
|
|
publish,
|
|
expireDate : moment(expireDate).startOf('days'),
|
|
_creator : req.user._id,
|
|
_updatedBy: req.user._id
|
|
}
|
|
|
|
await CounterDay.create(data);
|
|
|
|
return res.json({message: _sr['fa'].response.success_save});
|
|
}
|
|
} catch (error) {
|
|
return res500(res, `مشکلی در اجرای درخواست پیش آمده است`);
|
|
}
|
|
}
|
|
]
|
|
|
|
module.exports.getCounterDayByAdmin = [
|
|
async (req, res) => {
|
|
try {
|
|
const targetCounterDay = await CounterDay.findOne();
|
|
|
|
if (!targetCounterDay) return res.json({title: '', publish: true , expireDate : ''});
|
|
|
|
return res.json(targetCounterDay);
|
|
} catch (error) {
|
|
return res500(res, `مشکلی در اجرای درخواست شما پیش آمده است`);
|
|
}
|
|
}
|
|
]
|
|
|
|
////////////////////////////////////////////////////////////////// public
|
|
module.exports.getCounterDayByUser = [
|
|
async (req, res) => {
|
|
try {
|
|
const targetCounterDay = await CounterDay.findOne({publish : true , expireDate : {$gte : new Date()}});
|
|
|
|
if (!targetCounterDay) return res.json(null);
|
|
|
|
return res.json(targetCounterDay);
|
|
} catch (error) {
|
|
return res500(res, `مشکلی در اجرای درخواست شما پیش آمده است`);
|
|
}
|
|
}
|
|
]
|