67 lines
2.3 KiB
JavaScript
67 lines
2.3 KiB
JavaScript
const addedUser = (newUser, users) => {
|
|
const usersWithoutNewSite = removedNewUser(users)
|
|
return [newUser,...usersWithoutNewSite]
|
|
}
|
|
|
|
const getUserById = (id, users) => {
|
|
return users.find(user => user.id === id)
|
|
}
|
|
|
|
const usersWithThisService = (serviceId, users) => {
|
|
// console.log('serviceId', serviceId)
|
|
return users.filter((user) => user.serviceId.includes(serviceId))
|
|
}
|
|
|
|
const usersWithoutThisService = (serviceId, users) => {
|
|
return users.filter((user) => {
|
|
return !user.serviceId.includes((serviceId))
|
|
})
|
|
}
|
|
|
|
const addServiceIdToUser = (selectedUserId, serviceId, users) => {
|
|
if (selectedUserId && serviceId) {
|
|
const editIdx = users.findIndex(user => user.id === selectedUserId)
|
|
const beforeEdit = users.slice(0, editIdx)
|
|
const afterEdit = users.slice(editIdx + 1)
|
|
const withEdit = [...beforeEdit, {...users[editIdx], serviceId: [...users[editIdx].serviceId, serviceId]}]
|
|
return [...withEdit, ...afterEdit]
|
|
}
|
|
}
|
|
|
|
const deleteServiceIdFromUser = (selectedUserId, serviceId, users) => {
|
|
if (selectedUserId && serviceId) {
|
|
const editIdx = users.findIndex(user => user.id === selectedUserId)
|
|
const beforeEdit = users.slice(0, editIdx)
|
|
const afterEdit = users.slice(editIdx + 1)
|
|
const withEdit = [...beforeEdit, {...users[editIdx], serviceId: users[editIdx].serviceId.filter((id) => id !== serviceId)}]
|
|
return [...withEdit, ...afterEdit]
|
|
}
|
|
}
|
|
|
|
const updatedUser = (updatedUser, users) => {
|
|
if (updatedUser.id) {
|
|
const editIdx = users.findIndex(user => user.id === updatedUser.id)
|
|
const beforeEdit = users.slice(0, editIdx)
|
|
const afterEdit = users.slice(editIdx + 1)
|
|
const withEdit = [...beforeEdit, updatedUser]
|
|
return [...withEdit, ...afterEdit]
|
|
}
|
|
}
|
|
|
|
const removedNewUser = (users) => {
|
|
if (users.length > 0) {
|
|
const firstUser = users[0]
|
|
const isNewUser = firstUser.id === -1
|
|
users = isNewUser ? users.slice(1) : users
|
|
return users
|
|
}
|
|
}
|
|
|
|
const deletedUser = (deletedUserId, users) => {
|
|
if (deletedUserId) {
|
|
const deleteIdx = users.findIndex(user => user.id === deletedUserId)
|
|
return users.slice(0, deleteIdx).concat(users.slice(deleteIdx + 1))
|
|
}
|
|
}
|
|
|
|
export { addedUser, getUserById, usersWithThisService, usersWithoutThisService, addServiceIdToUser, deleteServiceIdFromUser, updatedUser, removedNewUser, deletedUser } |