| 794 | } |
| 795 | |
| 796 | CloudSyncService::GetAudioListFuture CloudSyncService::GetAudioList( |
| 797 | concurrency::CancellationContextPtr context, int page, int pageSize, |
| 798 | std::string_view searchString) |
| 799 | { |
| 800 | using namespace audacity::network_manager; |
| 801 | |
| 802 | auto promise = std::make_shared<GetAudioListPromise>(); |
| 803 | |
| 804 | auto& serviceConfig = GetServiceConfig(); |
| 805 | auto& oAuthService = GetOAuthService(); |
| 806 | |
| 807 | auto request = Request(serviceConfig.GetAudioListUrl(page, pageSize, searchString)); |
| 808 | |
| 809 | request.setHeader( |
| 810 | common_headers::ContentType, common_content_types::ApplicationJson); |
| 811 | request.setHeader( |
| 812 | common_headers::Accept, common_content_types::ApplicationJson); |
| 813 | |
| 814 | SetCommonHeaders(request); |
| 815 | SetOptionalHeaders(request); |
| 816 | |
| 817 | auto response = NetworkManager::GetInstance().doGet(request); |
| 818 | |
| 819 | context->OnCancelled(response); |
| 820 | |
| 821 | response->setRequestFinishedCallback( |
| 822 | [promise, response](auto) |
| 823 | { |
| 824 | auto responseResult = GetResponseResult(*response, true); |
| 825 | |
| 826 | if (responseResult.Code != SyncResultCode::Success) |
| 827 | { |
| 828 | promise->set_value(responseResult); |
| 829 | return; |
| 830 | } |
| 831 | |
| 832 | auto audios = sync::DeserializePaginatedAudioResponse(responseResult.Content); |
| 833 | |
| 834 | if (!audios) |
| 835 | { |
| 836 | promise->set_value( |
| 837 | ResponseResult { SyncResultCode::UnexpectedResponse, |
| 838 | std::move(responseResult.Content) }); |
| 839 | return; |
| 840 | } |
| 841 | |
| 842 | promise->set_value(std::move(*audios)); |
| 843 | }); |
| 844 | |
| 845 | return promise->get_future(); |
| 846 | } |
| 847 | |
| 848 | void CloudSyncService::DownloadAudio(const std::string& name, const std::string& format, const std::string& url) { |
| 849 | using namespace audacity::network_manager; |
no test coverage detected