fix: admin users
Deploy banu-front / deploy (push) Failing after 16s

This commit is contained in:
sajjadtalkhabi
2026-06-10 20:55:54 +03:30
parent b8ccbcc030
commit b9fa65b84f
51 changed files with 373 additions and 255 deletions
+28 -22
View File
@@ -15,7 +15,9 @@ import {
register('GET', endpoints.getApprovedUsers, ({ query }) => {
let list = filterItems(adminUsers, query, {
name: (item, v) =>
`${item.firstName} ${item.lastName}`.toLowerCase().includes(String(v).toLowerCase()),
(item.name || `${item.firstName} ${item.lastName}`)
.toLowerCase()
.includes(String(v).toLowerCase()),
nationalCode: 'includes',
phoneNumber: 'includes',
roleId: (item, v) => String(item.roleId) === String(v),
@@ -39,30 +41,32 @@ register('POST', endpoints.addNewUser, ({ data }) => {
const id = makeId()
const roleByName = (n) => roles.find((r) => r.name === n)
const role =
roles.find((r) => r.id === Number(data.roleId)) ||
(data.role ? roleByName(data.role) : null) ||
(Array.isArray(data.roles) && data.roles[0] ? roleByName(data.roles[0]) : null) ||
roles.find((r) => r.id === Number(data.roleId)) ||
null
const province = data.provinceId ? { id: data.provinceId, name: '' } : null
const city = data.cityId ? { id: data.cityId, name: '' } : null
const firstName = data.firstName || ''
const lastName = data.lastName || ''
const fullName = `${firstName} ${lastName}`.trim()
const name = data.name || `${data.firstName || ''} ${data.lastName || ''}`.trim()
const [firstName, ...rest] = name.split(' ')
const lastName = rest.join(' ')
const phoneNumber = data.phoneNumber || ''
const user = {
// --- spec ---
id,
name: data.name || fullName,
name,
email: data.email || '',
phone: data.phone || (phoneNumber ? phoneNumber.replace(/^0/, '+98') : null),
roles: Array.isArray(data.roles) ? data.roles : role ? [role.name] : [],
avatarUrl: '',
avatarDownloadUrl: null,
createdAt: isoNow(),
birthday: data.birthday || null,
// --- ui-only ---
firstName,
lastName,
fullName,
fullName: name,
phoneNumber,
nationalCode: data.nationalCode || '',
status: 'approved',
@@ -70,8 +74,7 @@ register('POST', endpoints.addNewUser, ({ data }) => {
address: { address: data.address || '', province, city },
profile: {
bio: data.bio || '',
birthDate: data.birthDate || '',
maritalStatus: data.maritalStatus || '',
maritalStatus: data.marriageStatus || data.maritalStatus || '',
gender: data.gender || '',
avatarId: data.avatarId || null,
},
@@ -87,24 +90,25 @@ register('POST', endpoints.addNewUser, ({ data }) => {
register('PATCH', endpoints.updateUser, ({ params, data }) => {
const roleByName = (n) => roles.find((r) => r.name === n)
const role =
roles.find((r) => r.id === Number(data.roleId)) ||
(Array.isArray(data.roles) && data.roles[0] ? roleByName(data.roles[0]) : null) ||
roles.find((r) => r.id === Number(data.roleId)) ||
null
const firstName = data.firstName ?? ''
const lastName = data.lastName ?? ''
const fullName = `${firstName} ${lastName}`.trim()
const name = data.name ?? `${data.firstName ?? ''} ${data.lastName ?? ''}`.trim()
const [firstName, ...rest] = name.split(' ')
const lastName = rest.join(' ')
const phoneNumber = data.phoneNumber ?? ''
const patch = {
// --- spec ---
name: data.name ?? fullName,
name,
email: data.email,
phone: data.phone ?? (phoneNumber ? phoneNumber.replace(/^0/, '+98') : undefined),
roles: Array.isArray(data.roles) ? data.roles : role ? [role.name] : [],
birthday: data.birthday ?? null,
// --- ui-only ---
firstName,
lastName,
fullName,
fullName: name,
phoneNumber,
nationalCode: data.nationalCode,
roleId: role?.id,
@@ -115,8 +119,7 @@ register('PATCH', endpoints.updateUser, ({ params, data }) => {
},
profile: {
bio: data.bio || '',
birthDate: data.birthDate || '',
maritalStatus: data.maritalStatus || '',
maritalStatus: data.marriageStatus ?? data.maritalStatus ?? '',
gender: data.gender || '',
avatarId: data.avatarId || null,
},
@@ -148,9 +151,14 @@ register('PATCH', endpoints.updateUserRole, ({ params, data }) => {
}
})
register('POST', endpoints.changeUserStatus, ({ params, data }) => ({
data: updateById(adminUsers, params.id, { status: data.status }),
}))
register('PATCH', endpoints.changeUserStatus, ({ params, data }) => {
const updated = updateById(adminUsers, params.id, { status: data.status })
return {
success: true,
message: 'User status updated.',
data: { id: updated.id, name: updated.name, status: updated.status },
}
})
register('DELETE', endpoints.deleteUser, ({ params }) => {
removeById(adminUsers, params.id)
@@ -160,5 +168,3 @@ register('DELETE', endpoints.deleteUser, ({ params }) => {
data: null,
}
})
register('GET', endpoints.getRolesList, () => ({ data: roles }))