Diarkis Room を使ってプロパティを操作する

Room のプロパティを取得する方法

property := room.GetProperty(roomID, "RoomName")
if property == nil {
// property RoomName does not exist
}
 
properties := room.GetProperties(roomID)

Room のプロパティを更新する方法

コールバック関数は、Room のプロパティを更新した場合は true を返し、プロパティを更新しなかった場合は false を返すことが期待されます。

_ := room.UpdatePropertis(roomID, func(properties map[string]interface{}) bool {
if _, ok := properties["counter"]; !ok {
properties["counter"] = 0
return true
}
counter := properties["counter"].(int)
properties["counter"] = counter + 1
return true
})

Room のプロパティの更新に失敗した場合の例

_ := room.UpdatePropertis(roomID, func(properties map[string]interface{}) bool {
if _, ok := properties["booked"]; !ok {
properties["booked"] = true
return true
      }
      // The room has already been booked
      return false
})