Paramètres requis pour l'API Discourse « update category »

Pourquoi les attributs name, color et text_color sont-ils requis pour la route de mise à jour des catégories
(Discourse API Docs) ?

Il semble que des attributs comme slug devraient pouvoir être mis à jour sans avoir à spécifier d’autres attributs.

Je trouve cela aussi légèrement irritant. Lors de la mise à jour d’autres informations concernant une catégorie, je ne connais pas nécessairement la color et la text_color de celle-ci. Mes options consistent donc soit à modifier les deux pour des valeurs anodines, soit à ajouter un autre appel API pour récupérer ces informations au préalable. Voici un exemple utilisant le 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'],

  # Ajoutez ci-dessous les attributs que vous souhaitez réellement mettre à jour
  parent_category_id: 7, # Je niche plusieurs catégories sous la #7
)

Évidemment, je ne connais pas toujours non plus le nom de la catégorie. Je dois absolument le rechercher avant de mettre à jour la catégorie.

Il serait pratique que ces paramètres ne soient pas obligatoires. Sinon, pourrait-il exister une sorte de syntaxe pour indiquer « Je ne souhaite pas modifier ce champ » ? Par exemple, si vous passez _, cela attribuerait simplement la valeur actuelle à cet attribut. (Je ne connais pas la raison pour laquelle ces champs sont obligatoires, je propose donc des idées qui peuvent ou non être utiles.)

Je suis d’accord. Je ne pense pas que les champs de couleur devraient être obligatoires lors de la mise à jour. Ils ne devraient probablement pas l’être non plus lors de la création. Je vais examiner cela et voir ce que je peux améliorer ici.

Je viens de pousser une mise à jour pour cela :slight_smile:

Lors de la création d’une catégorie, le champ nom reste obligatoire, mais lors de la mise à jour d’une catégorie, vous n’avez plus besoin de spécifier le nom, la couleur et la couleur du texte en plus de la propriété réelle que vous souhaitez modifier.