first commit

This commit is contained in:
sajjadtalkhabi
2026-05-13 01:43:05 +03:30
commit d2a577f254
297 changed files with 36274 additions and 0 deletions
+103
View File
@@ -0,0 +1,103 @@
import { register } from '@/services/mock/registry'
import { endpoints } from '@/services/api/endpoints'
import { adminUsers, roles } from '@/services/mock/fixtures/admin-users'
import {
filterDateRange,
filterItems,
findOrThrow,
isoNow,
makeId,
paginate,
removeById,
updateById,
} from '@/services/mock/helpers'
register('GET', endpoints.getApprovedUsers, ({ query }) => {
let list = filterItems(adminUsers, query, {
name: (item, v) =>
`${item.firstName} ${item.lastName}`.toLowerCase().includes(String(v).toLowerCase()),
nationalCode: 'includes',
phoneNumber: 'includes',
roleId: (item, v) => String(item.roleId) === String(v),
})
list = filterDateRange(list, query)
return paginate(list, query)
})
register('GET', endpoints.showUserDetails, ({ params }) => ({
data: findOrThrow(adminUsers, params.id),
}))
register('POST', endpoints.addNewUser, ({ data }) => {
const id = makeId()
const role = 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 user = {
id,
firstName: data.firstName || '',
lastName: data.lastName || '',
fullName: `${data.firstName || ''} ${data.lastName || ''}`.trim(),
phoneNumber: data.phoneNumber || '',
nationalCode: data.nationalCode || '',
avatarUrl: '',
status: 'approved',
roles: role ? [role.name] : [],
roleId: role?.id,
address: { address: data.address || '', province, city },
profile: {
bio: data.bio || '',
birthDate: data.birthDate || '',
maritalStatus: data.maritalStatus || '',
gender: data.gender || '',
avatarId: data.avatarId || null,
},
createdAt: isoNow(),
}
adminUsers.unshift(user)
return { data: user }
})
register('PUT', endpoints.updateUser, ({ params, data }) => {
const role = roles.find((r) => r.id === Number(data.roleId))
const patch = {
firstName: data.firstName,
lastName: data.lastName,
fullName: `${data.firstName || ''} ${data.lastName || ''}`.trim(),
phoneNumber: data.phoneNumber,
nationalCode: data.nationalCode,
roleId: role?.id,
roles: role ? [role.name] : [],
address: {
address: data.address || '',
province: data.provinceId ? { id: data.provinceId, name: '' } : null,
city: data.cityId ? { id: data.cityId, name: '' } : null,
},
profile: {
bio: data.bio || '',
birthDate: data.birthDate || '',
maritalStatus: data.maritalStatus || '',
gender: data.gender || '',
avatarId: data.avatarId || null,
},
}
const updated = updateById(adminUsers, params.id, patch)
return { data: updated }
})
register('POST', endpoints.updateUserRole, ({ params, data }) => {
const role = roles.find((r) => r.id === Number(data.roleId))
const patch = role ? { roleId: role.id, roles: [role.name] } : {}
return { data: updateById(adminUsers, params.id, patch) }
})
register('POST', endpoints.changeUserStatus, ({ params, data }) => ({
data: updateById(adminUsers, params.id, { status: data.status }),
}))
register('DELETE', endpoints.deleteUser, ({ params }) => {
removeById(adminUsers, params.id)
return { data: { message: 'حذف موفق' } }
})
register('GET', endpoints.getRolesList, () => ({ data: roles }))