def extractUserTier()

in src/main/scala/security/ApiKeyAuth.scala [49:63]


  def extractUserTier(req:Request[IO]):Option[UserTier] = {
    req.headers
      .get(ApiKeyAuth.name)
      .flatMap(keyValue=>{
        lookUpInCache(keyValue.head.value) match {
          case Some(tier)=>Some(tier)
          case None=>
            for {
              tierName <- lookUpKey(keyValue.head.value)
              tier <- UserTier(tierName)
              _ = updateCache(keyValue.head.value, tier)
            } yield tier
        }
      })
  }