Skip to content
On this page

コメント

概要

コメント機能を提供します。

コメントはイベントに付随する機能となり、投稿するイベントはイベントに紐づく事になります。

サンプル

ここでは、イベントページにコメント機能を実装するまでの流れを解説します。

WARNING

以下サンプルは、環境変数に STAGE_UUID がセットされている前提になります。

1. コメントの取得準備をする

コメント操作のためには MessageOperator を取得します。

ts
const messageOperator = await Hedgehog.stage
  .ref(process.env.STAGE_UUID as string)
  .event.ref("イベントUUID")
  .message();

MessageOperator にはコメント操作のための機能がまとまっており、以降のステップでもここで作成したインスタンスを使用します。

WARNING

イベントが有料イベントだった場合、コメント操作のためにチケット番号を指定する必要があります。

ts
// インスタンス化したオペレータにチケット番号を付与
messageOperator.setTicketNumber("チケット番号");

// チェーンメソッドで取得
const messageOperatorWithTicketNumber = await Hedgehog.stage
  .ref(process.env.STAGE_UUID as string)
  .event.ref("イベントUUID")
  .message()
  .setTicketNumber("チケット番号");

2. 過去のコメントを取得する

コメントは他のリスト系とは違い、カーソルモデルで取得します。まずは cursor() を呼び出してカーソル操作のためのインスタンスを取得します。

この例ではコメントが 15 件あると想定し、一度に 10 件ずつ取得しています。

ts
const cursor = messageOperator.cursor();
console.log(cursor.obtainable); // true

const messages1 = await cursor.next(10);
console.log(messages1); // メッセージ10件
console.log(cursor.obtainable); // true

const messages2 = await cursor.next(10);
console.log(messages2); // メッセージ5件
console.log(cursor.obtainable); // false

3. 新着コメントや削除されたコメントに対応する

リアルタイムに追加されたコメントや、管理ページで削除されたコメントを反映します。ここでは observe() を呼び出して各種イベントを監視します。

ts
const observer = messageOperator.observe(
  (m) => {
    console.log("message created:", m);
  },
  (m) => {
    console.log("message removed:", m);
  }
);

// observer.stop(); 取得の必要がなくなったら、stopを呼ぶ必要がある。

4. コメントを投稿する

新しいコメントの投稿には create() を呼び出します。

ts
await messageOperator.create({
  message: "メッセージ",
});