fromShelfRequest<R, Res extends BaseResponse> static method

Future<ShelfQueryRequest<R>> fromShelfRequest<R, Res extends BaseResponse>(
  1. Request shelfRequest,
  2. HttpContract<R, Res> contract
)

Implementation

static Future<ShelfQueryRequest<R>> fromShelfRequest<R, Res extends http.BaseResponse>(
  Request shelfRequest,
  HttpContract<R, Res> contract,
) async {
  // Validate Headers
  final headers = shelfRequest.headers;
  if (contract.headers != null) {
    contract.headers!.parse(headers);
  }

  // Validate Query
  ObjectData<R>? queryData;
  if (contract.query != null) {
    final queryParams = shelfRequest.url.queryParameters;
    final parsedQuery = contract.query!.parse(queryParams);
    queryData = ObjectData<R>(parsedQuery as Map<String, dynamic>);
  }

  return ShelfQueryRequest<R>(
    shelfRequest: shelfRequest,
    query: queryData,
    headers: headers,
  );
}