update:add ci cd files ==> do not edit those file
This commit is contained in:
@@ -0,0 +1,193 @@
|
||||
const SiteSetting = require('../models/SiteSetting')
|
||||
const BlogPost = require('../models/BlogPost')
|
||||
const GalleryCategory = require('../models/GalleryCategory')
|
||||
const Project = require('../models/Project')
|
||||
const mongoose = require('mongoose')
|
||||
const sharp = require('sharp')
|
||||
const fs = require('fs')
|
||||
const {body, param, validationResult} = require('express-validator')
|
||||
const {res404, res500, checkValidations} = require('../plugins/controllersHelperFunctions')
|
||||
const {_sr} = require('../plugins/serverResponses')
|
||||
|
||||
// variables
|
||||
const imageWidth = 1920
|
||||
const imageHeight = 600
|
||||
const imageQuality = 100
|
||||
|
||||
module.exports.update = [
|
||||
async (req, res) => {
|
||||
try {
|
||||
const setting = await SiteSetting.findOne()
|
||||
if (setting) {
|
||||
|
||||
} else {
|
||||
|
||||
}
|
||||
} catch (e) {
|
||||
return res500(res, _sr['fa'].response.problem)
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
module.exports.getAllByAdmin = [
|
||||
async (req, res) => {
|
||||
try {
|
||||
const images = await SiteSetting.findOne()
|
||||
if (images) {
|
||||
return res.json(images)
|
||||
} else {
|
||||
const create = await SiteSetting.create({})
|
||||
return res.json(create)
|
||||
}
|
||||
} catch (e) {
|
||||
return res500(res, _sr['fa'].response.problem)
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
module.exports.uploadCover = [
|
||||
[
|
||||
param('id')
|
||||
.notEmpty().withMessage('لطفا نوع عکس را مشخص کنید')
|
||||
],
|
||||
checkValidations(validationResult),
|
||||
async (req, res) => {
|
||||
try {
|
||||
const picType = req?.params?.id
|
||||
const image = req?.files?.file
|
||||
|
||||
let validation = {validation: {}}
|
||||
|
||||
if (!image) {
|
||||
validation.validation[picType] = {msg: _sr['fa'].required.image}
|
||||
return res.status(422).json(validation)
|
||||
}
|
||||
|
||||
if (image.mimetype.split('/')[1] !== 'jpeg' && image.mimetype.split('/')[1] !== 'jpg') {
|
||||
validation.validation[picType] = {msg: _sr['fa'].format.image}
|
||||
res.status(422).json(validation)
|
||||
}
|
||||
|
||||
const setting = await SiteSetting.findOne()
|
||||
if (!setting) return res500(res, _sr['fa'].response.problem)
|
||||
if (!setting[picType]) {
|
||||
validation[picType] = {msg: 'نوع عکس وارد شده صحیح نمی باشد'}
|
||||
return res.status(422).json(validation)
|
||||
}
|
||||
|
||||
|
||||
const imageName = `setting_${picType}_${Date.now()}.jpeg`
|
||||
|
||||
|
||||
if (image && !setting[picType].includes('undefined')) {
|
||||
fs.unlink(`../static/${setting[picType]}`, (err) => {
|
||||
if (err) console.log(err)
|
||||
})
|
||||
}
|
||||
|
||||
const target = await sharp(image.data)
|
||||
await target
|
||||
.resize(imageWidth, imageHeight, {fit: 'cover'})
|
||||
.withMetadata()
|
||||
.toFormat('jpeg')
|
||||
.jpeg({quality: imageQuality})
|
||||
.toFile(`./static/uploads/images/setting/${imageName}`)
|
||||
|
||||
setting[picType] = imageName
|
||||
|
||||
await setting.save();
|
||||
|
||||
return res.json({message: _sr['fa'].response.success_save})
|
||||
} catch (e) {
|
||||
console.log(e.message)
|
||||
return res500(res, _sr['fa'].response.problem)
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
module.exports.getAllByUser = [
|
||||
async (req, res) => {
|
||||
try {
|
||||
const images = await SiteSetting.findOne()
|
||||
|
||||
if (images) {
|
||||
return res.json(images)
|
||||
} else {
|
||||
return res.json({
|
||||
aboutUS: null,
|
||||
activity: null,
|
||||
projects: null,
|
||||
gallery: null,
|
||||
catalog: null,
|
||||
blogs: null,
|
||||
})
|
||||
}
|
||||
|
||||
} catch (e) {
|
||||
return res500(res, _sr['fa'].response.problem)
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
module.exports.search = [
|
||||
async (req, res) => {
|
||||
const {terms} = req.query;
|
||||
|
||||
try {
|
||||
const requests = [
|
||||
BlogPost.find({
|
||||
published: true,
|
||||
$or: [
|
||||
{'locale.fa.title': {$regex: terms, $options: 'i'}},
|
||||
{'locale.fa.description': {$regex: terms, $options: 'i'}},
|
||||
{'locale.fa.short_description': {$regex: terms, $options: 'i'}},
|
||||
{'locale.en.title': {$regex: terms, $options: 'i'}},
|
||||
{'locale.en.description': {$regex: terms, $options: 'i'}},
|
||||
{'locale.en.short_description': {$regex: terms, $options: 'i'}},
|
||||
]
|
||||
}),
|
||||
GalleryCategory.find({
|
||||
$or: [
|
||||
{'locale.fa.title': {$regex: terms, $options: 'i'}},
|
||||
{'locale.en.title': {$regex: terms, $options: 'i'}},
|
||||
]
|
||||
}),
|
||||
Project.find({
|
||||
$or: [
|
||||
{'locale.fa.title': {$regex: terms, $options: 'i'}},
|
||||
{'locale.fa.short_description': {$regex: terms, $options: 'i'}},
|
||||
{'locale.fa.description': {$regex: terms, $options: 'i'}},
|
||||
{'locale.fa.s3_title': {$regex: terms, $options: 'i'}},
|
||||
{'locale.fa.s3_description': {$regex: terms, $options: 'i'}},
|
||||
{'locale.fa.s5_title': {$regex: terms, $options: 'i'}},
|
||||
{'locale.fa.s5_description': {$regex: terms, $options: 'i'}},
|
||||
{'locale.fa.s6_title': {$regex: terms, $options: 'i'}},
|
||||
{'locale.fa.s6_description': {$regex: terms, $options: 'i'}},
|
||||
{'locale.en.title': {$regex: terms, $options: 'i'}},
|
||||
{'locale.en.short_description': {$regex: terms, $options: 'i'}},
|
||||
{'locale.en.description': {$regex: terms, $options: 'i'}},
|
||||
{'locale.en.s3_title': {$regex: terms, $options: 'i'}},
|
||||
{'locale.en.s3_description': {$regex: terms, $options: 'i'}},
|
||||
{'locale.en.s5_title': {$regex: terms, $options: 'i'}},
|
||||
{'locale.en.s5_description': {$regex: terms, $options: 'i'}},
|
||||
{'locale.en.s6_title': {$regex: terms, $options: 'i'}},
|
||||
{'locale.en.s6_description': {$regex: terms, $options: 'i'}},
|
||||
]
|
||||
})
|
||||
]
|
||||
|
||||
const getData = await Promise.all(requests);
|
||||
|
||||
let [blogs, categoryGallery, projects] = getData;
|
||||
|
||||
return res.json({
|
||||
blogs,
|
||||
categoryGallery,
|
||||
projects
|
||||
});
|
||||
|
||||
} catch (e) {
|
||||
return res500(res, _sr['fa'].response.problem);
|
||||
}
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user