我正在尝试为 2 个用户创建直接消息室,但是它一直告诉我这是错误的。
在聊天表中,它有参与者列,并且是强制性的。该列需要 2 个用户。
这是我的聊天实体,
@Entity()
class Chat extends BaseEntity {
@PrimaryGeneratedColumn() id: number;
@OneToMany(() => Message, (message) => message.chat, {
nullable: true,
onDelete: "CASCADE"
})
messages: Message[];
@ManyToMany(() => User, (user) => user.chats)
participants: User[];
@CreateDateColumn()
createdAt: string;
@UpdateDateColumn()
updatedAt: string;
}
export default Chat;
这是解析器:
const resolvers: Resolvers = {
Mutation: {
CreateChat: async (
_,
args: CreateChatMutationArgs
): Promise<CreateChatResponse> => {
const { fromId, toId } = args;
try {
if (fromId && toId) {
const from = await User.findOne({ id: fromId });
const to = await User.findOne({ id: toId });
await Chat.create({
participants: [from , to] // here is the problem, but I couldn't solve this.
});
return {
ok: true,
err: null
};
} else {
return {
ok: false,
err: "No user found"
};
}
} catch (err) {
return {
ok: false,
err: err.message
};
}
}
}
};
export default resolvers;
谁能帮帮我?我会很感激的。
谢谢!