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 }