Ribbit.work

APIで取得したフォーム設定から、指定したフィールドのみを抽出する

JavaScriptKintone

last modified date2021-11-24

publish date2021-10-27

KintoneではAPIを使用して、指定したアプリの各フィールド情報を取得することができます。

ただ、このAPIのリクエストパラメーターはアプリIDと言語の設定しかできず、指定したアプリのすべてのフィールドが取得されます。

レコードIDや作成日付、更新日付などの、アプリが標準で持っているフィールドや、使用していないカテゴリーフィールドなども取得されてしまいます。

今回は、APIを使用して取得したフォーム情報から、指定したフィールドのみを抽出する方法を紹介します。

汎用的な関数の定義

まず、次のような関数を定義します。

export const filterFieldProperties = (properties, callback) => {
  const filtered = Object.entries(properties).filter(([_, value]) =>
    callback(value)
  );

  const reduced = filtered.reduce(
    (acc, [key, value]) => ({ ...acc, [key]: value }),
    {}
  );

  return reduced;
};

関数はAPIから取得した全フィールドと、その絞り込み条件を受け取ります。

各フィールドに対して、指定した条件に当てはまるフィールドのみを返却します。

Object.entrieでフィルターして、その後reduceしているのは、受け取った型と同じ状態に戻すためです。

使用例

/* 文字列1行フィールドのみ抽出した一覧 */
const filterd = filterFieldProperties(
  properties,
  (property) => property.type === "SINGLE_LINE_TEXT"
);

指定したフィールドタイプを除外する

前述した関数を使用して、フィールドタイプを配列で指定し、全フィールドから取り除く関数を紹介します。

export const omitFieldProperties = (properties, omittingTypes) => {
  return filterFieldProperties(
    properties,
    (property) => !omittingTypes.includes(property.type)
  );
};

使用例

/* 全フィールドから、レコード番号と作成者を取り除いたフィールド一覧 */
const omitted = omitFieldProperties(properties, ["RECORD_NUMBER", "CREATOR"]);

この記事をシェア

この記事を読んだ方におすすめの記事

kuromoji.jsで形態素解析
2021-12-4

kuromoji.jsで形態素解析

TypeScriptJavaScript
レコードのサブテーブルを並び替えて登録する【Kintone JavaScriptカスタマイズ】
2021-12-4

レコードのサブテーブルを並び替えて登録する【Kintone JavaScriptカスタマイズ】

JavaScriptKintone
レコード一覧表示時(app.record.index.show)のサンプルコード集【Kintone】
2021-11-29

レコード一覧表示時(app.record.index.show)のサンプルコード集【Kintone】

JavaScriptKintone
スライダーを使って数値を設定できるKintoneプラグイン【無料公開】
2021-11-26

スライダーを使って数値を設定できるKintoneプラグイン【無料公開】

KintoneJavaScriptTypeScript

最新の記事

kuromoji.jsで形態素解析
2021-12-4

kuromoji.jsで形態素解析

TypeScriptJavaScript
レコードのサブテーブルを並び替えて登録する【Kintone JavaScriptカスタマイズ】
2021-12-4

レコードのサブテーブルを並び替えて登録する【Kintone JavaScriptカスタマイズ】

JavaScriptKintone
レコード一覧表示時(app.record.index.show)のサンプルコード集【Kintone】
2021-11-29

レコード一覧表示時(app.record.index.show)のサンプルコード集【Kintone】

JavaScriptKintone
スライダーを使って数値を設定できるKintoneプラグイン【無料公開】
2021-11-26

スライダーを使って数値を設定できるKintoneプラグイン【無料公開】

KintoneJavaScriptTypeScript