def handleRequest()

in src/main/scala/GraphQLServer.scala [46:63]


  def handleRequest(req:Request[IO], tier:UserTier) = {
    for {
      bodyText <- req.bodyText
      gqlRequest <- Stream.apply(GraphQLRequestBody.parseJsonRequest(bodyText))
      parsedQuery <- parser(gqlRequest.query)
      result <- parsedQuery match {
        case Success(doc)=>
          Stream.apply(performQuery(doc, gqlRequest.variables, tier))
            .handleErrorWith(err => {
              logger.error("Error performing query", err)
              Stream.apply(InternalServerError(err.getMessage))
            })
        case Failure(err)=>
          println(s"Syntax error: ${err.getMessage}")
          Stream.apply(BadRequest(err.getMessage))
      }
    } yield result
  }