はじめに
hkob の雑記録の第455回目(通算28日目)は、TableView の configuration の取り扱いを検討します。
Table configuration
Table configuration の説明はこちらにあります。
説明書きはこちらになります。これらに含まれる Property configuration, Group-by configuration, Subtask 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 のオブジェクトが使えそうです。

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

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

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

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