TableView の実装(2) : hkob の雑記録 (455)

はじめに

hkob の雑記録の第455回目(通算28日目)は、TableView の configuration の取り扱いを検討します。

Table configuration

Table configuration の説明はこちらにあります。

説明書きはこちらになります。これらに含まれる Property configuration, Group-by configuration, Subtask configuration をそれぞれ見ていきます。

Table configuration

Property configuration

Property configuration はこのようになります。

Property configuration

プロパティによって細かい設定があるのですが、先日取得した retrieve では全ての properties は以下の項目しか保持していませんでした(ここでは DateProperty を示します)。ここでは time_format を "24_hour" に設定しているのですが、retrieve ではその設定は見えないようです。そもそも retrieve では型の情報も何も取得できないようです。このため、retrieve では親クラスの Property object として作成するしかなさそうです。

 {
        "property_id": "SPrp",
        "property_name": "DateTitle",
        "visible": true,
        "width": 200,
        "wrap": true
      },

先回りして、Update a view - Notion Docs を確認してみたところ、以下のような説明がありました。Page などと異なり、Update の際には変更された Property のみ渡し、渡されなかったものは変更されない仕組みのようです。このため、Update をする際には親である DataSource のプロパティを取得し、そこから View property configuration を作成するのがよさそうです(これであればプロパティの型情報が存在するため)。

All body parameters are optional. Only the provided fields are updated; omitted fields are left unchanged. To clear a field, pass null.

Group by configuration

共通の configuration はこちらです。こちらは type があるので、細分化された Property class のオブジェクトが使えそうです。

Group by configuration (Common)

そのプロパティごとに設定できるものが変わります。

Group by configuration (Each property)

さらに Formula の場合には、返却される型によってさらに設定できるものが変わります。

Group by configuration (Formula)

Subtask configuration

Subtask configuration も型情報はないようです。これも Property class で実装するしかなさそうです。

Subtask configuration

おわりに

View については、retrieve した JSON には全ての情報が含まれるわけではないので、retrieve から update という技は使えなさそうです。そういうわけで、retrieve の properties 対応などは後回しとし、一つのプロパティごとに view 設定を追加していき、Update a view を実行して実装を追加していきましょう。全てのプロパティの update が実装できたら、Create a view を作成してみます。それらをもとに retrieve のプロパティ化も検討していきます。

hkob.notion.site