コンテンツの操作
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ステップでファイルをレコードに紐づけることができます。