class NaptimeResolver extends DeferredResolver[SangriaGraphQlContext] with StrictLogging
- Alphabetic
- By Inheritance
- NaptimeResolver
- StrictLogging
- DeferredResolver
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
- new NaptimeResolver()
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
fetchForwardRelations(requests: Vector[NaptimeRequest], resourceName: ResourceName, context: SangriaGraphQlContext)(implicit ec: ExecutionContext): Future[Map[RequestId, Either[NaptimeError, NaptimeResponse]]]
Fetches forward relations (via multiget) for a specific resource given a list of requests.
Fetches forward relations (via multiget) for a specific resource given a list of requests. This implementation optimizes fetches by merging multigets into as few requests as possible.
Multiget requests can be merged if all other query parameters are the same.
In the event of an error, a NaptimeError is returned instead of a NaptimeResponse
- requests
list of NaptimeRequests containing the endpoint and arguments (including ids)
- resourceName
resource that the requests is made against
- context
request context (includes things like header)
- returns
Map of request ids (indexes from the deferred request batching) to either a NaptimeError or NaptimeResponse
-
def
fetchReverseRelations(requests: Vector[NaptimeRequest], resourceName: ResourceName, context: SangriaGraphQlContext)(implicit ec: ExecutionContext): Future[Map[RequestId, Either[NaptimeError, NaptimeResponse]]]
Fetches reverse relations for a specific resource given a list of requests
Fetches reverse relations for a specific resource given a list of requests
In the event of an error, a NaptimeError is returned instead of a NaptimeResponse
- requests
list of NaptimeRequests containing the endpoint and arguments (including ids)
- resourceName
resource that the requests is made against
- context
request context (includes things like header)
- returns
Map of request ids (indexes from the deferred request batching) to either a NaptimeError or NaptimeResponse
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
getResourceName(requests: Vector[NaptimeRequest]): Option[ResourceName]
Extracts a resource name from a list of NaptimeRequests.
Extracts a resource name from a list of NaptimeRequests.
This method assumes that all requests will be for the same resource, otherwise it will return None.
- requests
a list of NaptimeRequests
- returns
a ResourceName if all requests are for the same resource, otherwise None
-
def
groupDeferred[T <: DeferredWithInfo](deferred: Vector[T]): Vector[Vector[T]]
- Definition Classes
- DeferredResolver
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
includeDeferredFromField: Option[(Field[_, _], Vector[Field], Args, Double) ⇒ Boolean]
- Definition Classes
- DeferredResolver
-
def
initialQueryState: Any
- Definition Classes
- DeferredResolver
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
val
logger: Logger
- Attributes
- protected
- Definition Classes
- StrictLogging
-
def
mergeMultigetRequests(header: RequestHeader, requests: Vector[NaptimeRequest], resourceName: ResourceName): Map[Request, Vector[NaptimeRequest]]
Converts a list of forward requests into the most optimal list of requests to execute.
Converts a list of forward requests into the most optimal list of requests to execute. Multiget requests can be merged into a single request, but _only_ if all of the query parameters are the same for the requests.
- requests
A list of NaptimeRequests specifying the resource and arguments
- returns
a map of TopLevelRequests -> list of NaptimeRequests that it fulfills
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
def
parseElements(request: Request, response: Response, resourceSchema: RecordDataSchema): List[DataMapWithParent]
Helper to parse the elements in a response into a map of JsValue -> DataMapWithParent
Helper to parse the elements in a response into a map of JsValue -> DataMapWithParent
- response
Response from the network call, containing data returned
- resourceSchema
schema that defines the shape of the response, for later use
- returns
Map of JsValue ids to DataMapWithParents
-
def
resolve(deferred: Vector[Deferred[Any]], ctx: SangriaGraphQlContext, queryState: Any)(implicit ec: ExecutionContext): Vector[Future[Any]]
- Definition Classes
- NaptimeResolver → DeferredResolver
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )