Parámetros requeridos de la API de Discourse 'actualizar categoría'

¿Por qué los atributos name, color y text_color son obligatorios para la ruta de actualización de categoría (Discourse API Docs)?

Parece que atributos como el slug deberían poder actualizarse sin especificar ningún otro atributo.

Yo también encuentro esto ligeramente irritante. Al actualizar otra información sobre una categoría, no necesariamente conozco el color ni el text_color de la misma. Por lo tanto, mis opciones son cambiar ambos a algo inocuo o añadir otra llamada a la API para recopilar esa información primero. Aquí tienes un ejemplo usando el discourse_api gem:

response = client.categories

cat = response.find {|e| e['name'] == 'Category Name'}

response = client.update_category(
  id: cat['id'],
  name: cat['name'],
  color: cat['color'],
  text_color: cat['text_color'],

  # Añade el (los) atributo(s) que realmente quieras actualizar a continuación
  parent_category_id: 7, # Estoy anidando varias categorías bajo la #7
)

Obviamente, tampoco siempre sabré el nombre de la categoría. Definitivamente necesito consultarlo antes de actualizar la categoría.

Sería útil si esos parámetros no fueran obligatorios. Alternativamente, ¿podría haber alguna sintaxis para indicar «no quiero cambiar el campo»? Por ejemplo, si pasas _, simplemente establecería ese atributo en su valor actual. (No estoy seguro de la razón por la que los campos son obligatorios, así que estoy lanzando ideas que pueden o no ser útiles.)

Estoy de acuerdo. No creo que los campos de color deban ser obligatorios en la actualización. Probablemente tampoco deberían serlo al crear. Investigaré esto y veré qué puedo mejorar aquí.

Acabo de subir una actualización para esto :slight_smile:

Al crear una categoría, el campo de nombre sigue siendo obligatorio, pero al actualizar una categoría ya no es necesario especificar el nombre, el color y el color del texto, además de la propiedad real que deseas actualizar.