reels
This commit is contained in:
@@ -1,4 +1,8 @@
|
||||
const express = require('express')
|
||||
const multer = require('multer')
|
||||
const crypto = require('crypto')
|
||||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
const { setProfileImage, updateProfileImage } = require('../../../controllers/application/verify/setProfileImageController')
|
||||
const { setExpertise, updateExpertise } = require('../../../controllers/application/verify/expertiseController')
|
||||
const { setGender, updateGender } = require('../../../controllers/application/verify/genderController')
|
||||
@@ -16,16 +20,54 @@ const { setServices, updateServices } = require('../../../controllers/applicatio
|
||||
const { setPersonalDetails, updatePersonalDetails } = require('../../../controllers/application/verify/personalDetailsController')
|
||||
const router = express.Router()
|
||||
|
||||
router.post('/profile_image', setProfileImage)
|
||||
router.patch('/profile_image', [blockCheck], [auth], updateProfileImage)
|
||||
// قبلاً express-form-data بهصورتِ global این فیلدها رو تویِ req.files پر میکرد؛
|
||||
// وقتی اون middleware حذف شد (تداخل با multer توی posts/chat)، این روت بدونِ هیچ
|
||||
// parserِ جایگزینی موند — یعنی req.files همیشه undefined بود و هر آپلودِ عکسِ
|
||||
// پروفایل با «خطایی رخ داده است» شکست میخورد (همون الگویی که قبلاً برای
|
||||
// /api/v1/chat/file پیدا و با multer.diskStorage رفع شد — نگاه کن به index.js)
|
||||
const profileImageDir = path.join(__dirname, '../../../storage/profiles')
|
||||
if (!fs.existsSync(profileImageDir)) {
|
||||
fs.mkdirSync(profileImageDir, { recursive: true })
|
||||
}
|
||||
const profileImageUpload = multer({
|
||||
storage: multer.diskStorage({
|
||||
destination: (req, file, cb) => cb(null, profileImageDir),
|
||||
filename: (req, file, cb) => {
|
||||
cb(null, `${Date.now()}-${crypto.randomUUID()}${path.extname(file.originalname || '')}`)
|
||||
}
|
||||
}),
|
||||
limits: { fileSize: 20 * 1024 * 1024 }
|
||||
}).single('profile_image')
|
||||
|
||||
router.post('/profile_image', profileImageUpload, setProfileImage)
|
||||
router.patch('/profile_image', [blockCheck], [auth], profileImageUpload, updateProfileImage)
|
||||
router.post('/expertise', setExpertise)
|
||||
router.patch('/expertise', [blockCheck], [auth], updateExpertise)
|
||||
router.post('/gender', setGender)
|
||||
router.patch('/gender', [blockCheck], [auth], updateGender)
|
||||
router.post('/sizes', setSizes)
|
||||
router.patch('/sizes', [blockCheck], [auth], updateSizes)
|
||||
router.post('/services', setServices)
|
||||
router.patch('/services', [blockCheck], [auth], updateServices)
|
||||
// همون باگِ req.files (نگاه کن به کامنتِ profileImageUpload بالا) اینجا هم بود؛
|
||||
// فرق با بقیه اینه که اسمِ فیلدِ عکسِ هر خدمت پویاست (serviceImages[serviceId]،
|
||||
// یه آیدی متفاوت برای هر خدمت) پس بهجای .single()/.fields() با اسمِ ثابت، از
|
||||
// .any() استفاده میشه — همهی فایلها با هر اسمی قبول میشه، بعد توی کنترلر با
|
||||
// file.fieldname تطبیق داده میشه
|
||||
const servicesImagesDir = path.join(__dirname, '../../../storage/services')
|
||||
if (!fs.existsSync(servicesImagesDir)) {
|
||||
fs.mkdirSync(servicesImagesDir, { recursive: true })
|
||||
}
|
||||
const servicesUpload = multer({
|
||||
storage: multer.diskStorage({
|
||||
destination: (req, file, cb) => cb(null, servicesImagesDir),
|
||||
filename: (req, file, cb) => {
|
||||
cb(null, `${Date.now()}-${crypto.randomUUID()}${path.extname(file.originalname || '')}`)
|
||||
}
|
||||
}),
|
||||
limits: { fileSize: 20 * 1024 * 1024 }
|
||||
}).any()
|
||||
|
||||
router.post('/services', servicesUpload, setServices)
|
||||
router.patch('/services', [blockCheck], [auth], servicesUpload, updateServices)
|
||||
router.post('/colors', setColors)
|
||||
router.patch('/colors', [blockCheck], [auth], updateColors)
|
||||
router.post('/personal_details', [blockCheck], [auth], setPersonalDetails)
|
||||
@@ -38,7 +80,22 @@ router.post('/auth', saveAuthValidationRules(), saveAuth)
|
||||
router.patch('/shaba', [blockCheck], [auth], updateShaba)
|
||||
router.post('/address', setAddress)
|
||||
router.patch('/address', [blockCheck], [auth], updateAddress)
|
||||
router.post('/national_card_image', setNationalCardImage)
|
||||
// همون باگِ req.files (نگاه کن به کامنتِ profileImageUpload بالا) اینجا هم بود
|
||||
const nationalCardDir = path.join(__dirname, '../../../storage/carts')
|
||||
if (!fs.existsSync(nationalCardDir)) {
|
||||
fs.mkdirSync(nationalCardDir, { recursive: true })
|
||||
}
|
||||
const nationalCardUpload = multer({
|
||||
storage: multer.diskStorage({
|
||||
destination: (req, file, cb) => cb(null, nationalCardDir),
|
||||
filename: (req, file, cb) => {
|
||||
cb(null, `${Date.now()}-${crypto.randomUUID()}${path.extname(file.originalname || '')}`)
|
||||
}
|
||||
}),
|
||||
limits: { fileSize: 20 * 1024 * 1024 }
|
||||
}).single('national_card_image')
|
||||
|
||||
router.post('/national_card_image', nationalCardUpload, setNationalCardImage)
|
||||
router.post('/complete', completeRegistration)
|
||||
|
||||
module.exports = router
|
||||
|
||||
Reference in New Issue
Block a user