diff --git a/src/main/scala/rocks/muki/graphql/package.scala b/src/main/scala/rocks/muki/graphql/package.scala index d9517d7..98e7199 100644 --- a/src/main/scala/rocks/muki/graphql/package.scala +++ b/src/main/scala/rocks/muki/graphql/package.scala @@ -40,10 +40,14 @@ package object graphql { val gqlSchemas = graphqlSchemas.value val labels = gqlSchemas.schemas.map(_.label) // create a depended parser. A label can only be selected once - schemaLabelParser(labels).flatMap { selectedLabel => - success(schemaOrError(selectedLabel, gqlSchemas)) ~ schemaLabelParser( - labels.filterNot(_ == selectedLabel)).map(label => - schemaOrError(label, gqlSchemas)) + schemaLabelParser(labels).flatMap { + case selectedLabel if labels.contains(selectedLabel) => + success(schemaOrError(selectedLabel, gqlSchemas)) ~ schemaLabelParser( + labels.filterNot(_ == selectedLabel)).map(label => + schemaOrError(label, gqlSchemas)) + case selectedLabel => + failure( + s"$selectedLabel is not available. Use: [${labels.mkString(" | ")}]") } }