У меня проблемы с пониманием документации, относящейся к секвелированию, касающейся отношений между людьми. Я смог правильно настроить его в самой БД, но теперь, когда я хочу выполнить основную операцию CRUD, я совершенно потерян.
Так вот в чем дело: у меня есть пользователи и чаты. Когда пользователь создает чат, я хочу, чтобы он был как владельцем комнаты, так и участником.
Проблема в том ... Я не могу понять, как добавить этого пользователя к участнику. В отношении базы данных есть таблица chatroom_user, которая содержит идентификаторы пользователей и идентификаторы чатов.
Из того, что я понял из документации sequelize, я должен создать функцию addXXXXX в моей модели, добавить вызов в функции распознавателя с требуемыми аргументами ... но это не работает ...
вот мой код
модель в чате:
export default (sequelize, Datatypes) => {
const Chatroom = sequelize.define('chatroom', {
publicRoom: {
type: Datatypes.BOOLEAN,
allowNull: false
},
});
Chatroom.associate = (models) => {
Chatroom.belongsTo(models.user, {
foreignKey: {
name: 'owner',
allowNull: false
}
});
Chatroom.belongsToMany(models.user, {
through: 'user_chatroom',
foreignKey: {
name: 'chatroom',
allowNull: false
},
onDelete: 'CASCADE'
});
Chatroom.addUsers(models.user);
};
распознаватели чатов:
export default {
Query: {
// some queries here...
},
Mutation: {
createChatroom: async (parent, args, {models, user}, info) => {
try {
return await models.chatroom.create({owner: user.id})
.then(models.chatroom.addUsers(user.id));
} catch (err) {
console.log(err);
}
},
}
};
Так что да, я знаю, что это определенно не способ сделать это, но я искал много учебников и не нашел рабочих решений ...: (