Blog

🏁 Du kannst jetzt Meta-Werte in Gato GraphQL mutieren

Leonardo Losoviz
Von Leonardo Losoviz ·

v11.3 von Gato GraphQL wurde heute veröffentlicht, mit UnterstĂŒtzung fĂŒr eine wichtige Funktion: Meta-Mutationen!

Du kannst jetzt Meta-Werte hinzufĂŒgen, aktualisieren und löschen, fĂŒr Custom Posts, Tags, Kategorien, Kommentare und Benutzer.

Im Folgenden findest du Beispiele fĂŒr queries, die Meta mutieren.

Meta hinzufĂŒgen

Du kannst Meta-EintrĂ€ge zu Custom Posts, Tags, Kategorien, Kommentaren und Benutzern hinzufĂŒgen.

Diese query fĂŒgt einen Meta-Eintrag zum Beitrag mit der ID 4 hinzu:

mutation {
  addCustomPostMeta(input: {
    id: 4
    key: "some_key"
    value: "Some value"
  }) {
    status
    errors {
      __typename
      ...on ErrorPayload {
        message
      }
    }
    customPost {
      id
      metaValue(key: "some_key") 
    }
  }
}

Diese query fĂŒgt denselben Meta-SchlĂŒssel mit verschiedenen Werten zu verschiedenen BeitrĂ€gen hinzu, in einem Batch:

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") 
    }
  }
}

Meta aktualisieren

Einen Kategorie-Meta-Eintrag aktualisieren:

mutation {
  updateCategoryMeta(input: {
    id: 20
    key: "_source"
    value: "Updated source value"
  }) {
    status
    errors {
      __typename
      ...on ErrorPayload {
        message
      }
    }
    category {
      __typename
      id
      metaValue(key: "_source") 
    }
  }
}

Diese query verwendet nested mutations, um einen Meta-Wert in einem Beitrag zu aktualisieren:

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") 
      }
    }
  }
}

Meta löschen

Einen Meta-Eintrag aus einem Beitrag löschen:

mutation {
  deletePostMeta(input: {
    id: 5
    key: "some_key"
  }) {
    status
    errors {
      __typename
      ...on ErrorPayload {
        message
      }
    }
    post {
      id
      metaValue(key: "some_key") 
    }
  }
}

Denselben Meta-Eintrag aus mehreren BeitrÀgen löschen, in einem Batch:

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") 
    }
  }
}

Mehrere Meta-EintrÀge auf einmal setzen

Du kannst mehrere Meta-EintrĂ€ge auf einmal setzen, indem du ein JSON an die verschiedenen set{Entity}Meta-Mutationen ĂŒbergibst:

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"])
    }
  }
}

Meta-EintrÀge beim Erstellen/Aktualisieren einer EntitÀt setzen

Du kannst Meta-EintrĂ€ge direkt beim Erstellen oder Aktualisieren eines Custom Posts, Tags, einer Kategorie oder eines Kommentars ĂŒber den Parameter meta definieren.

Diese query setzt Meta beim HinzufĂŒgen eines Kommentars:

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"]) 
    }
  }
}

Diese query injiziert das Meta in die 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") 
      }
    }
  }
}

Abonniere unseren Newsletter

Bleib ĂŒber alle Updates zu Gato GraphQL auf dem Laufenden.