データ変換

todoアプリのリアルタイム機能の1つは、オンラインユーザーのリストの表示です。ユーザーが最後にオンラインにいた時刻を示す last_seen の値に基づいて、この情報を取得する方法が必要です。

これまで、テーブルとリレーションシップを構築していました。Postgresでは、次のものを使って、データ変換を実行できます。

この例では、Views を利用します。このビューは、過去30秒にログインしオンラインになっているユーザーをアプリが検索するために必要です。

ビューを作成する

このビューを作成するためのSQLステートメントは、以下のようになります。

CREATE OR REPLACE VIEW "public"."online_users" AS
SELECT users.id,
users.last_seen
FROM users
WHERE (users.last_seen >= (now() - '00:00:30'::interval));

このビューを追加して、Hasuraでビューを追跡して、クエリできるようにします。

コンソール -> DATA -> SQLページに移動します。

ビューonline_usersを作成する

Run をクリックして、ビューを作成します。

オンラインユーザーへのサブスクリプション

サブスクリプションクエリを online_users ビューに作成して、テストしましょう。

subscription {
online_users {
id
last_seen
}
}

別のタブで、既存のユーザーの last_seen 値を更新して、サブスクリプション応答が更新されることを確認します。

ユーザー last_seen を更新する

last_seen 列の now() として値を入力して、Save をクリックします。

サブスクリプションクエリが実行されているタブに戻って、更新された応答を確認します。

サブスクリプションオンラインユーザー

Did you find this page helpful?
Start with GraphQL on Hasura for Free
  • ArrowBuild apps and APIs 10x faster
  • ArrowBuilt-in authorization and caching
  • Arrow8x more performant than hand-rolled APIs
Promo
footer illustration
Brand logo
© 2024 Hasura Inc. All rights reserved
Github
Titter
Discord
Facebook
Instagram
Youtube
Linkedin