MCPcopy Create free account
hub / github.com/audacity/audacity / GetProjects

Method GetProjects

libraries/lib-cloud-audiocom/CloudSyncService.cpp:289–341  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

287}
288
289CloudSyncService::GetProjectsFuture CloudSyncService::GetProjects(
290 concurrency::CancellationContextPtr context, int page, int pageSize,
291 std::string_view searchString)
292{
293 using namespace audacity::network_manager;
294
295 auto promise = std::make_shared<GetProjectsPromise>();
296
297 auto& serviceConfig = GetServiceConfig();
298 auto& oAuthService = GetOAuthService();
299
300 auto request =
301 Request(serviceConfig.GetProjectsUrl(page, pageSize, searchString));
302
303 request.setHeader(
304 common_headers::ContentType, common_content_types::ApplicationJson);
305 request.setHeader(
306 common_headers::Accept, common_content_types::ApplicationJson);
307
308 SetCommonHeaders(request);
309 SetOptionalHeaders(request);
310
311 auto response = NetworkManager::GetInstance().doGet(request);
312
313 context->OnCancelled(response);
314
315 response->setRequestFinishedCallback(
316 [promise, response](auto)
317 {
318 auto responseResult = GetResponseResult(*response, true);
319
320 if (responseResult.Code != SyncResultCode::Success)
321 {
322 promise->set_value(responseResult);
323 return;
324 }
325
326 auto projects =
327 sync::DeserializePaginatedProjectsResponse(responseResult.Content);
328
329 if (!projects)
330 {
331 promise->set_value(
332 ResponseResult { SyncResultCode::UnexpectedResponse,
333 std::move(responseResult.Content) });
334 return;
335 }
336
337 promise->set_value(std::move(*projects));
338 });
339
340 return promise->get_future();
341}
342
343CloudSyncService::SyncFuture CloudSyncService::OpenFromCloud(
344 std::string projectId, std::string snapshotId, SyncMode mode,

Callers 1

RefreshMethod · 0.80

Calls 11

SetCommonHeadersFunction · 0.85
SetOptionalHeadersFunction · 0.85
GetResponseResultFunction · 0.85
moveFunction · 0.85
GetProjectsUrlMethod · 0.80
setHeaderMethod · 0.80
doGetMethod · 0.80
OnCancelledMethod · 0.80
RequestClass · 0.70

Tested by

no test coverage detected