🏁 Vous pouvez désormais muter les valeurs meta dans Gato GraphQL
v11.3 de Gato GraphQL a été publiée aujourd'hui, avec la prise en charge d'une fonctionnalité importante : Les mutations de meta !
Vous pouvez désormais ajouter, mettre à jour et supprimer des valeurs meta, pour les custom posts, les tags, les catégories, les commentaires et les utilisateurs.
Voici des exemples de requêtes qui mutent des meta.
Ajout de meta
Vous pouvez ajouter des entrées meta aux custom posts, aux tags, aux catégories, aux commentaires et aux utilisateurs.
Cette requête ajoute une entrée meta à l'article avec l'ID 4 :
mutation {
addCustomPostMeta(input: {
id: 4
key: "some_key"
value: "Some value"
}) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
customPost {
id
metaValue(key: "some_key")
}
}
}Cette requête ajoute la même clé meta avec différentes valeurs à différents articles, en masse :
mutation {
addCustomPostMetas(inputs: [
{
id: 4
key: "some_key"
value: "Some value"
},
{
id: 5
key: "some_key"
value: "Some other value"
},
{
id: 6
key: "some_key"
value: "Yet another value"
}
]) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
customPost {
id
metaValue(key: "some_key")
}
}
}Mise à jour de meta
Mettre à jour une entrée meta de catégorie :
mutation {
updateCategoryMeta(input: {
id: 20
key: "_source"
value: "Updated source value"
}) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
category {
__typename
id
metaValue(key: "_source")
}
}
}Cette requête utilise des nested mutations pour mettre à jour une valeur meta dans un article :
mutation {
post(by: {id: 1}) {
updateMeta(input: {
key: "some_key"
value: "Updated description"
}) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
post {
id
metaValue(key: "single_meta_key")
}
}
}
}Suppression de meta
Supprimer une entrée meta d'un article :
mutation {
deletePostMeta(input: {
id: 5
key: "some_key"
}) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
post {
id
metaValue(key: "some_key")
}
}
}Supprimer la même entrée meta de plusieurs articles, en masse :
mutation {
deletePostMetas(inputs: [
{
id: 5
key: "some_key"
},
{
id: 6
key: "some_key"
}
]) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
post {
id
metaValue(key: "some_key")
}
}
}Définir plusieurs entrées meta à la fois
Vous pouvez définir plusieurs entrées meta à la fois en passant un JSON aux différentes mutations set{Entity}Meta :
mutation {
setCustomPostMeta(input: {
id: 4
entries: {
single_meta_key: [
"This is a single entry",
],
object_meta_key: [
{
key: "This is a key",
value: "This is a value",
},
],
array_meta_key: [
"This is a string",
"This is another string",
],
object_array_meta_key: [
[
{
key: "This is a key 1",
value: "This is a value 1",
},
{
key: "This is a key 2",
value: "This is a value 2",
},
]
],
}
}) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
customPost {
id
meta(keys: ["single_meta_key", "object_meta_key", "array_meta_key", "object_array_meta_key"])
}
}
}Définir des entrées meta lors de la création/mise à jour d'une entité
Vous pouvez définir des entrées meta directement lors de la création ou de la mise à jour d'un custom post, d'un tag, d'une catégorie ou d'un commentaire, via le paramètre meta.
Cette requête définit des meta lors de l'ajout d'un commentaire :
mutation {
addCommentToCustomPost(input: {
customPostID: 1130
commentAs: { html: "New comment" }
meta: {
some_meta_key: [
"This is a single entry",
],
another_meta_key: [
"This is an array entry 1",
"This is an array entry 2",
],
}
}) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
comment {
id
meta(keys: ["some_meta_key", "another_meta_key"])
}
}
}Cette requête injecte le meta dans la nested mutation Post.update :
mutation {
post(by: {id: 1}) {
update(input: {
meta: {
single_meta_key: [
"This is an updated value",
]
}
}) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
post {
id
metaValue(key: "single_meta_key")
}
}
}
}