diff --git a/android/Omnivore/app/src/main/graphql/CreateLabel.graphql b/android/Omnivore/app/src/main/graphql/CreateLabel.graphql new file mode 100644 index 000000000..d3b438b2e --- /dev/null +++ b/android/Omnivore/app/src/main/graphql/CreateLabel.graphql @@ -0,0 +1,16 @@ +mutation CreateLabel($input: CreateLabelInput!) { + createLabel(input: $input) { + ... on CreateLabelSuccess { + label { + id + name + color + description + createdAt + } + } + ... on CreateLabelError { + errorCodes + } + } +} diff --git a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/networking/SavedItemLabelMutations.kt b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/networking/SavedItemLabelMutations.kt index 39755b22f..e7120536f 100644 --- a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/networking/SavedItemLabelMutations.kt +++ b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/networking/SavedItemLabelMutations.kt @@ -1,6 +1,8 @@ package app.omnivore.omnivore.networking +import app.omnivore.omnivore.graphql.generated.CreateLabelMutation import app.omnivore.omnivore.graphql.generated.SetLabelsMutation +import app.omnivore.omnivore.graphql.generated.type.CreateLabelInput import app.omnivore.omnivore.graphql.generated.type.SetLabelsInput suspend fun Networker.updateLabelsForSavedItem(input: SetLabelsInput): Boolean { @@ -11,3 +13,12 @@ suspend fun Networker.updateLabelsForSavedItem(input: SetLabelsInput): Boolean { false } } + +suspend fun Networker.createNewLabel(input: CreateLabelInput): CreateLabelMutation.Label? { + return try { + val result = authenticatedApolloClient().mutation(CreateLabelMutation(input)).execute() + return result.data?.createLabel?.onCreateLabelSuccess?.label + } catch (e: java.lang.Exception) { + null + } +}