updateUser. В которой необходимо реализовать добавление новой роли в массив userRole_id. Соответственно, сохранив существующую.
resolvers:
async updateUser(_, args) {
try {
const user = await User.findById(args._id);
if (user) {
let email = args.email !== undefined ? args.email : user.email;
let password = args.password !== undefined ? args.password : user.password;
let firstName = args.firstName !== undefined ? args.firstName : user.firstName;
let lastName = args.lastName !== undefined ? args.lastName : user.lastName;
let userRole_id = args.userRole_id !== undefined ? args.userRole_id : user.userRole_id;
let avatar = args.avatar !== undefined ? args.avatar : user.avatar;
let canvas = args.canvas !== undefined ? args.canvas : user.canvas;
await user.updateOne({
email, password, firstName, lastName, userRole_id, avatar, canvas
});
return user;
} else {
throw new AuthenticationError("(Mutation: updateUser, Dir: Resolvers/index.js) - Пожалуйста, заполните все обязательные поля!");
}
} catch (err) {
throw new Error('(Mutation: updateUser, Dir: Resolvers/index.js) - Some error', err)
}
},
Заранее благодарен за уделённое время. ☺️
return await user.updateOne(Object.assign(user, args))
вообще можно let password = args.password !== undefined ? args.password : user.password; просто так let password = args.password || user.password; или если прям на undefined, то по модному let password = args.password ?? user.password;
Обсуждают сегодня