コンテンツの操作
CMS SDKを使用したコンテンツ操作の方法を説明します。このドキュメントでは以下の内容を解説します。
- コンテンツの作成・更新・削除
- 下書きコンテンツの公開
- 公開データの下書き化
- storage型カラムにデータを保存
下書き機能を利用するにはテーブルの下書き管理機能を有効にする必要があります。詳細は 下書き管理 を参照してください。
コンテンツの作成
指定したテーブルに新しいコンテンツを公開状態で作成します。
const data = await client.tables.blog.create({
slug: "hello-world",
title: "Hello World",
content: "This is my first post.",
});
下書きでの作成
draft
オプションを true
にすると、コンテンツを下書き状態で作成できます。
const data = await client.tables.blog.create(
{
slug: "hello-world",
title: "Hello World",
content: "Draft content here...",
},
{ draft: true },
);
コンテンツの更新
指定したIDのコンテンツを更新します。
const data = await client.tables.blog.update(blogId, {
title: "Updated Title",
content: "Updated content.",
});
部分更新
update
メソッドでは、すべてのフィールドを指定する必要はありません。更新したいフィールドのみを指定することで部分更新が可能です。
以下の例では、title
のみを更新し、その他のフィールドは変更されません。
const data = await client.tables.blog.update(blogId, {
title: "Updated Title",
});
undefined
な値のフィールドは変更されず、既存の値が保持されます。
null
を明示的に設定した場合は、そのフィールドが null
に更新されます。
以下の例では、title
は変更されず、content
は null
に更新されます。
await client.tables.blog.update(blogId, {
title: undefined,
content: null,
});
下書きでの更新
draft
オプションを true
にすると下書き状態でコンテンツを更新します。公開されているコンテンツには影響しません。
const data = await client.tables.blog.update(
blogId,
{
title: "Draft Title",
content: "Work in progress...",
},
{ draft: true },
);
コンテンツの削除
指定したIDの公開コンテンツを削除します。
await client.tables.blog.delete(blogId);
下書きの削除
draft
オプションを true
にすると、下書き状態のコンテンツのみを削除します。公開されているコンテンツは残ります。
await client.tables.blog.delete(blogId, {
draft: true,
});
下書きコンテンツの公開
下書き状態のコンテンツを公開します。
const data = await client.tables.blog.publish(blogId);
下書きの更新と同時公開
コンテンツを更新しながら同時に公開することも可能です。
const data = await client.tables.blog.publish(blogId, {
title: "Fixed Title",
content: "Fixed content.",
});
公開コンテンツの下書き化
公開されているコンテンツを下書き状態に戻します。
const data = await client.tables.blog.unpublish(blogId);
フォーム受信データの管理
テーブルのフォーム管理機能が有効な場合のみ利用可能です。詳細は フォーム管理 を参照してください。
受信データの更新
受信データの内容は変更できませんが、管理用のカラムを更新できます。
例えば status
カラムに対応状況を記録したり、 memo
カラムに情報を残しておくことも可能です。
await client.tables.form.submissions(formId).update(blogId, {
status: "in_progress",
memo: "Started working on this.",
});
以下のデータは読み取り専用です。
_content
: 受信データの内容_formSchema
: フォームのスキーマ情報_attachments
: 添付ファイル
受信データの削除
delete()
メソッドで受信データを削除できます。
await client.tables.form.submissions(formId).delete(submissionId);
storage型カラムにデータを保存
storage型カラムについては storage を参照してください。
uploadFile()
メソッドを使用してファイルをアップロードします。このとき、戻り値として handle
を取得します。
const { handle } = await orizm.tables.blog.uploadFile(file);
次に create()
や update()
などのメソッドを使用してレコードを作成や更新します。このとき、storage型カラムに handle
を設定します。
await orizm.tables.blog.update({
thumbnail: { handle },
});
この2ステップでファイルをレコードに紐づけることができます。