FIX: UserSeeder

ADD: Get-Self endpoint for users
ADD: Category and Role Seeder
FIX: Login Check Bug
ADD: Extra fields for documents and images in belonging model
ADD: localhost:5173 to cors
ADD: SuperAdmin ID to env
This commit is contained in:
2025-01-03 17:45:09 +03:30
parent bda5bca9de
commit 465b678357
11 changed files with 180 additions and 12 deletions
+7 -1
View File
@@ -26,11 +26,17 @@ const belongingSchema = new mongoose.Schema(
required: true,
},
},
documents: [String],
documentNames: [String],
documentUrls: [String],
imageNames: [String],
imageUrls: [String],
mainImageUrl: String,
mainImageName: String,
numId: {
type: Number,
unique: true,
},
tags: [String],
isActive: {
type: Boolean,
default: true,
+22
View File
@@ -0,0 +1,22 @@
const Category = require('./categoryModel')
const chalk = require('chalk')
const runSeeder = async () => {
const categories = [
{ nativeName: 'ساختمان', englishName: 'Building' },
{ nativeName: 'زمین', englishName: 'Lot' },
{ nativeName: 'کالا', englishName: 'Product' },
]
await Category.deleteMany({})
console.log(chalk.red('Deleted all category records.'))
await Category.create(categories, null)
console.log(
chalk.green.bold(
`CATEGORY: Created ${categories.length} category(ies)`
)
)
}
module.exports = { runSeeder }
+1 -1
View File
@@ -29,7 +29,7 @@ const runSeeder = async () => {
await Role.deleteMany({})
console.log(chalk.red('Deleted all role records.'))
await Role.insertMany(roles, null)
await Role.create(roles, null)
console.log(chalk.green.bold(`ROLE: Created ${roles.length} role(s)`))
}
+11
View File
@@ -1,6 +1,7 @@
// userController.js
const catchAsync = require('../../globalErrorHandler/catchAsync')
const userService = require('./userService')
const AppError = require("../../globalErrorHandler/AppError");
exports.signup = catchAsync(async (req, res, next) => {
const { user, token, cookieOptions } = await userService.signup(
@@ -55,6 +56,16 @@ exports.getAllUsers = catchAsync(async (req, res, next) => {
})
})
exports.userGetSelf = catchAsync(async (req, res, next) => {
const user = req.user
if (!user) {
throw new AppError('NotLoggedIn', 403, {})
}
return res.status(200).json({ status: 'success ', data: { user } })
})
exports.getUser = catchAsync(async (req, res, next) => {
const user = await userService.getUser(req.params.userId)
+4 -2
View File
@@ -5,13 +5,15 @@ const loginCheck = require('../../middlewares/loginCheck')
const router = new express.Router()
router.post('/signup', userController.signup)
router.post('/login', userController.loginUser)
router.post('/user/signup-email', userController.signup)
router.post('/user/login-email', userController.loginUser)
router.post('/logout', userController.logoutUser)
router.use(loginCheck.loginProtect)
// router.use(loginCheck.adminProtect)
router.get('/user/get-self', userController.userGetSelf)
router.get('/', userController.getAllUsers)
router.get('/:userId', userController.getUser)
+2 -2
View File
@@ -5,7 +5,7 @@ const runSeeder = async () => {
{
_id: '66ddb52302f30f105de39e61',
name: 'main admin',
email: 'superadmin@chayamarket.ir',
email: 'superadmin@belongingm.ir',
password: '$2a$10$pabxmRjm6klipAC6vBvgI.J.GJpnG//L1MeNcdbtxuYQRYHLI/I3O',
phoneNumber: '+989123456789',
favorites: [],
@@ -20,7 +20,7 @@ const runSeeder = async () => {
await User.deleteMany({})
console.log(chalk.red('Deleted all user records.'))
await User.insertMany(users, null)
await User.create(users, null)
console.log(chalk.green.bold(`USER: Created ${users.length} user(s)`))
}