| 591 | } // namespace |
| 592 | |
| 593 | Future<Response<Defaults>> Connection::defaults() const { |
| 594 | const std::string url = |
| 595 | CesiumUtility::Uri::resolve(this->_apiUrl, "v1/defaults"); |
| 596 | return this->ensureValidToken().thenImmediately( |
| 597 | [pAssetAccessor = this->_pAssetAccessor, |
| 598 | asyncSystem = this->_asyncSystem, |
| 599 | url](Result<std::string>&& result) { |
| 600 | if (!result.value) { |
| 601 | return asyncSystem.createResolvedFuture( |
| 602 | createNoValidTokenResponse<Defaults>(std::move(result))); |
| 603 | } |
| 604 | |
| 605 | return pAssetAccessor |
| 606 | ->get( |
| 607 | asyncSystem, |
| 608 | url, |
| 609 | {{"Accept", "application/json"}, |
| 610 | {"Authorization", *result.value}}) |
| 611 | .thenImmediately( |
| 612 | [](std::shared_ptr<CesiumAsync::IAssetRequest>&& pRequest) { |
| 613 | const IAssetResponse* pResponse = pRequest->response(); |
| 614 | if (!pResponse) { |
| 615 | return createEmptyResponse<Defaults>(); |
| 616 | } |
| 617 | |
| 618 | if (pResponse->statusCode() < 200 || |
| 619 | pResponse->statusCode() >= 300) { |
| 620 | return createErrorResponse<Defaults>(pResponse); |
| 621 | } |
| 622 | |
| 623 | rapidjson::Document d; |
| 624 | if (!parseJsonObject(pResponse, d)) { |
| 625 | return createJsonErrorResponse<Defaults>(pResponse, d); |
| 626 | } |
| 627 | if (!d.IsObject()) { |
| 628 | return createJsonTypeResponse<Defaults>( |
| 629 | pResponse, |
| 630 | "object"); |
| 631 | } |
| 632 | |
| 633 | return Response<Defaults>( |
| 634 | defaultsFromJson(d), |
| 635 | pResponse->statusCode(), |
| 636 | std::string(), |
| 637 | std::string()); |
| 638 | }); |
| 639 | }); |
| 640 | } |
| 641 | |
| 642 | CesiumAsync::Future<Response<Assets>> Connection::assets() const { |
| 643 | const std::string url = Uri::resolve(this->_apiUrl, "v1/assets"); |
no test coverage detected