Add full project files

This commit is contained in:
root
2026-07-04 19:24:56 +03:30
parent d54f5441a3
commit b245e7b71a
835 changed files with 30149 additions and 0 deletions

View File

@@ -0,0 +1,111 @@
/* eslint-disable camelcase */
const ExpertiseModel = require('../../../models/ExpertiseModel')
const createExpertise = async (req, res, next) => {
try {
const token = req.header('Authorization').split(' ')[1]
if (!token) return res.status(401).send('Access Denied')
const { expertise } = req.body
if (!expertise
) {
return res.status(422).json({
error: true,
message: 'اطلاعات ارسالی اشتباه است'
})
}
// بررسی وجود تخصص با این نام در پایگاه داده
const existingExpertise = await ExpertiseModel.findOne({ expertise })
if (existingExpertise) {
return res.status(400).json({ message: 'تخصص با این نام قبلاً ثبت شده است' })
}
// ایجاد یک نمونه جدید از مدل ExpertiseModel
const newExpertise = new ExpertiseModel({
expertise
})
// ذخیره تخصص جدید در پایگاه داده
await newExpertise.save()
res.json({ message: 'تخصص با موفقیت اضافه شد' })
} catch (error) {
next(error)
}
}
const createSubExpertise = async (req, res, next) => {
try {
const token = req.header('Authorization').split(' ')[1]
if (!token) return res.status(401).send('Access Denied')
const expertiseId = req.query.id
const { name } = req.body
if (!expertiseId || !name) {
return res.status(422).json({
error: true,
message: 'اطلاعات ارسالی اشتباه است'
})
}
// یافتن تخصص موردنظر از طریق آیدی
const expertise = await ExpertiseModel.findById(expertiseId)
if (!expertise) {
return res.status(404).json({ message: 'تخصص موردنظر یافت نشد' })
}
// اضافه کردن زیرتخصص جدید به آرایه sub_expertise تخصص موجود
expertise.sub_expertise.push({ name })
await expertise.save()
res.json({ message: 'زیرتخصص با موفقیت به تخصص اضافه شد' })
} catch (error) {
next(error)
}
}
const getExpertise = async (req, res, next) => {
try {
const expertises = await ExpertiseModel.find().select('expertise sub_expertise')
res.json({ expertises })
} catch (error) {
next(error)
}
}
// ویرایش تخصص
const editExpertise = async (req, res, next) => {
try {
const token = req.header('Authorization').split(' ')[1]
if (!token) return res.status(401).send('Access Denied')
const { expertise } = req.body
const expertiseId = req.params.id
if (!expertise || !expertiseId) {
return res.status(422).json({ message: 'اطلاعات ارسالی اشتباه است' })
}
const updatedExpertise = await ExpertiseModel.findByIdAndUpdate(
expertiseId,
{ expertise },
{ new: true }
)
if (!updatedExpertise) {
return res.status(404).json({ message: 'تخصص یافت نشد' })
}
res.json({ message: 'تخصص با موفقیت ویرایش شد' })
} catch (error) {
next(error)
}
}
module.exports = {
createExpertise,
createSubExpertise,
getExpertise,
editExpertise
}