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, `مشکلی در اجرای درخواست شما پیش آمده است`); } } ]