LoginSignup
1
1

Hexabase TypeScript SDKを使ってステータスを更新する

Posted at

Hexabase(ヘキサベース)は企業においても安心して利用できるBaaS(Backend as a Service)を提供しています。多くのBaaSがそうであるように、主にフロントエンド開発者に利用してもらいたいと考えています。そこで現在、TypeScript SDKの開発が進められています。

この記事ではHexabase TypeScript SDKのインストールと、ステータスの更新方法を紹介します。

インストール

インストールはnpmやyarnを使って行います。

# npmの場合
npm install @hexabase/hexabase-js

# yarnの場合
yarn add @hexabase/hexabase-js

インポート

インポートすると、 HexabaseClient というオブジェクトが取得できます。

import { HexabaseClient } from "@hexabase/hexabase-js";

初期化

HexabaseClientを初期化します。

const client = new HexabaseClient();

認証

Hexabaseでは業務利用を想定しているため、利用する際に認証情報が必須になります。最初はメールアドレスとパスワードで認証し、その後はトークンを使ってGraphQLにアクセスします。 client を使って処理します。

初回の認証は次のようになります。emailとパスワード、またはトークンが必須です。

await client.login({email, password, token});

後はこの client に対して処理を行います。

ステータスとは

Hexabaseのデータストア(RDBMSでいうテーブル相当)ではステータスという特別なフィールドが用意されています。

ステータスは、データの状態を表すためのフィールドです。例えば、案件のデータを管理する場合、ステータスには「新規」「進行中」「完了」などの値を設定します。そして、ステータスは直接変更はできず、ステータス変更のアクションを実行して変更します。

たとえば以下のようになります。

データの状態 ステータス
新規保存 起票
プロジェクト開始 開始
納品完了 検収中
プロジェクト終了 請求前
請求書発行 入金前
入金確認 完了

そして、このステータスの中には差し戻しが発生することもあるでしょう。検収中のステータスから開始に戻すこともあるでしょう。このような場合も、ステータスの変更はアクションを実行することで行います。

image.png

Hexabaseでは、特定のステータスから別なステータスに変更するアクションは、あらかじめ定義したものだけが指定できます。

ステータスの作成

ステータスは管理画面で作成します。ここで各ステータスが別なステータスに変更できるアクションを定義します。

image.png

TypeScript SDKでの実装

ステータスの取得

あるアイテム(既存)のアイテムがどんなステータスアクションを実行できるかは、 item.statusActions で取得できます。

const item = await datastore.item('99999999');
item.statusActions.map(action => {
	console.log(action.name);
});

ステータスの変更

ステータスの変更は execute メソッドを使います。これは保存処理とは異なりますので注意してください。

await item.execute('納品完了');

まとめ

Hexabaseのステータス管理を使えば、データの管理を柔軟に行えるようになります。ステータスは間違って上書きしてしまうと、データの二重処理などにつながりますので、アクションを通して変更する仕組みが便利です。

ステータスの変更時にアクションスクリプト(FaaS)を実行したり、Webhookなども呼び出せます。ぜひ活用してください。

Hexabase | 新規事業向け開発・競争領域でのDX実現をサポート

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1