创建多对多列关系

时间:2020-12-30 20:44:06

标签: typescript typeorm

我正在尝试为 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;

谁能帮帮我?我会很感激的。

谢谢!

0 个答案:

没有答案
相关问题