private[handler] def parsePath()

in server/src/main/scala/com/twitter/server/handler/ToggleHandler.scala [215:237]


  private[handler] def parsePath(path: String, errors: ArrayBuffer[String]): ParsedPath = {
    path.split("/") match {
      case Array("", "admin", "toggles") =>
        ParsedPath(None, None)
      case Array("", "admin", "toggles", libraryName) =>
        if (!registeredLibrariesFn().contains(libraryName)) {
          errors += s"Unknown library name: '$libraryName'"
          ParsedPath(None, None)
        } else {
          ParsedPath(Some(libraryName), None)
        }
      case Array("", "admin", "toggles", libraryName, id) =>
        if (!registeredLibrariesFn().contains(libraryName))
          errors += s"Unknown library name: '$libraryName'"
        if (!Toggle.isValidId(id))
          errors += s"Invalid id: '$id'"
        if (errors.isEmpty) ParsedPath(Some(libraryName), Some(id))
        else ParsedPath(None, None)
      case _ =>
        errors += "Path must be of the form /admin/toggles{/$libraryName}{/$id}"
        ParsedPath(None, None)
    }
  }