MCPcopy Create free account
hub / github.com/CesiumGS/cesium-native / assets

Method assets

CesiumIonClient/src/Connection.cpp:642–702  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

640}
641
642CesiumAsync::Future<Response<Assets>> Connection::assets() const {
643 const std::string url = Uri::resolve(this->_apiUrl, "v1/assets");
644
645 return this->ensureValidToken().thenImmediately(
646 [pAssetAccessor = this->_pAssetAccessor,
647 asyncSystem = this->_asyncSystem,
648 url](Result<std::string>&& result) {
649 if (!result.value) {
650 return asyncSystem.createResolvedFuture(
651 createNoValidTokenResponse<Assets>(std::move(result)));
652 }
653
654 return pAssetAccessor
655 ->get(
656 asyncSystem,
657 url,
658 {{"Accept", "application/json"},
659 {"Authorization", *result.value}})
660 .thenImmediately(
661 [](std::shared_ptr<CesiumAsync::IAssetRequest>&& pRequest) {
662 const IAssetResponse* pResponse = pRequest->response();
663 if (!pResponse) {
664 return createEmptyResponse<Assets>();
665 }
666
667 if (pResponse->statusCode() < 200 ||
668 pResponse->statusCode() >= 300) {
669 return createErrorResponse<Assets>(pResponse);
670 }
671
672 rapidjson::Document d;
673 if (!parseJsonObject(pResponse, d)) {
674 return createJsonErrorResponse<Assets>(pResponse, d);
675 }
676 if (!d.IsObject()) {
677 return createJsonTypeResponse<Assets>(pResponse, "object");
678 }
679
680 Assets result;
681
682 result.link = JsonHelpers::getStringOrDefault(d, "link", "");
683
684 const auto itemsIt = d.FindMember("items");
685 if (itemsIt != d.MemberEnd() && itemsIt->value.IsArray()) {
686 const rapidjson::Value& items = itemsIt->value;
687 result.items.resize(items.Size());
688 std::transform(
689 items.Begin(),
690 items.End(),
691 result.items.begin(),
692 jsonToAsset);
693 }
694
695 return Response<Assets>{
696 std::move(result),
697 pResponse->statusCode(),
698 std::string(),
699 std::string()};

Callers

nothing calls this directly

Calls 8

ensureValidTokenMethod · 0.95
parseJsonObjectFunction · 0.85
getStringOrDefaultFunction · 0.85
thenImmediatelyMethod · 0.45
getMethod · 0.45
responseMethod · 0.45
statusCodeMethod · 0.45
beginMethod · 0.45

Tested by

no test coverage detected