Packages

  • package root
    Definition Classes
    root
  • package org
    Definition Classes
    root
  • package coursera
    Definition Classes
    org
  • package naptime
    Definition Classes
    coursera
  • package access
    Definition Classes
    naptime
  • package actions
    Definition Classes
    naptime
  • package ari

    This ari defines the key abstractions for automatic resource inclusion as well as GraphQL.

    This ari defines the key abstractions for automatic resource inclusion as well as GraphQL.

    The system is split up into 3 distinct layers:

    +---------------------------------------------------------------------+
    |                       Presentation Layer                            |
    |           GraphQL            |            Naptime HTTP              |
    +------------------------------+--------------------------------------+
    |                                                                     |
    |                      Inclusion Engine                               |
    |                                                                     |
    +---------------------------------------------------------------------+
    |                        Data fetching                                |
    |         Local execution      |           remote execution           |
    +=====================================================================+
    |                                                                     |
    |                   Unmodified Naptime APIs                           |
    |                                                                     |
    +---------------------------------------------------------------------+

    A request enters the system via the presentation layer (typically parsed from the network). The presentation layer constructs a org.coursera.naptime.ari.Request and passes that to engine. The engine performs a number of validations against the schema, and then makes a number of requests to to the Data Fetching layer to assemble all of the (available) data required to construct a response. This is passed back to the presentation layer, which constructs a response to be sent out on the wire.

    The API between the presentation layer and the inclusion engine is the org.coursera.naptime.ari.EngineApi

    The API between the inclusion engine and the data fetching layer is defined by org.coursera.naptime.ari.FetcherApi.

    BEWARE: This code is currently in a high state of flux. Do not depend upon it unless you are prepared for breakages!

    Definition Classes
    naptime
  • package exceptions
    Definition Classes
    naptime
  • package path
    Definition Classes
    naptime
  • :::
  • CollectionResourcePathParser
  • NestedPathKeyParser
  • ParseFailure
  • ParseSuccess
  • ParsedPathKey
  • PathKeyParser
  • ResourcePathParser
  • RootParsedPathKey
  • RootPathParser
  • UrlParseResult
  • package resources
    Definition Classes
    naptime
  • package router2
    Definition Classes
    naptime
  • package schema
    Definition Classes
    naptime

package path

Ordering
  1. Alphabetic
Visibility
  1. Public
  2. All

Type Members

  1. final case class :::[+H, +T <: ParsedPathKey](h: H, t: T) extends ParsedPathKey with Product with Serializable

    HCons - Add a new element (of arbitrary type) to the front of the list.

    HCons - Add a new element (of arbitrary type) to the front of the list.

    h

    The parsed element we are holding.

    t

    The rest of the HList.

  2. case class CollectionResourcePathParser[+T](resourceName: String, resourceVersion: Int)(implicit stringFormat: StringKeyFormat[T]) extends ResourcePathParser[T] with Product with Serializable
  3. final case class NestedPathKeyParser[+H, TailParseAsType <: ParsedPathKey](head: ResourcePathParser[H], tail: PathKeyParser[TailParseAsType]) extends PathKeyParser[:::[H, TailParseAsType]] with Product with Serializable

    HCons for parsers - includes an extra type parameter because we care about both the type we will parse as, as well as the type of the chain itself.

    HCons for parsers - includes an extra type parameter because we care about both the type we will parse as, as well as the type of the chain itself.

    H

    The type the head of the chain will parse as.

    TailParseAsType

    The tail of the chain will parse as this type

    head

    All information needed to parse from a URL something of the type H

    tail

    The rest of the parser chain.

  4. final case class ParseSuccess[+T](restOfUrl: Option[String], elem: T) extends UrlParseResult[T] with Product with Serializable
  5. sealed trait ParsedPathKey extends AnyRef

    A specialized HList with the minimal features required for our purposes.

    A specialized HList with the minimal features required for our purposes.

    Note, we use ::: for concatenation to separate ourselves from normal lists which use ::.

  6. sealed trait PathKeyParser[+ParseAsType <: ParsedPathKey] extends AnyRef

    An HList for parsers, usually built up automatically via the helper traits (TODO: FILL IN LINKS)

    An HList for parsers, usually built up automatically via the helper traits (TODO: FILL IN LINKS)

    ParseAsType

    The type this HList of parsers will parse a URL into.

  7. trait ResourcePathParser[+T] extends AnyRef

    Partially parses type T from a URL.

  8. sealed trait RootParsedPathKey extends ParsedPathKey

    HNil - the end of a ParsedPathKey.

  9. sealed trait RootPathParser extends PathKeyParser[RootParsedPathKey]

    The base / end of the PathKey HList-like datastructure.

  10. sealed trait UrlParseResult[+T] extends AnyRef

    Effectively an Option[(Option[String], T)] used for partially parsing URLs for PathKeys.

    Effectively an Option[(Option[String], T)] used for partially parsing URLs for PathKeys.

    T

    The type we are supposed to parse from the url.

Value Members

  1. object ParseFailure extends UrlParseResult[Nothing] with Product with Serializable

    Indicates the request did not match / did not parse successfully.

  2. object RootParsedPathKey extends RootParsedPathKey with Product with Serializable
  3. object RootPathParser extends RootPathParser with Product with Serializable

Ungrouped