private Uri GetUsersUri(string domain, string?username = null) { var builder = new UriBuilder(_serviceUriProvider.GetRandomManagementUri()) { Path = $"settings/rbac/users/{domain}" }; if (!string.IsNullOrWhiteSpace(username)) { builder.Path += $"/{username}"; } return(builder.Uri); }
public async Task <Dictionary <string, int> > GetPendingMutationsAsync(GetPendingAnalyticsMutationsOptions?options = null) { options ??= new GetPendingAnalyticsMutationsOptions(); _logger.LogInformation("Getting pending mutations."); try { var builder = new UriBuilder(_serviceUriProvider.GetRandomManagementUri()); builder.Path += "analytics/node/agg/stats/remaining"; var uri = builder.Uri; using var httpClient = _httpClientFactory.Create(); var result = await httpClient.GetAsync(uri, options.TokenValue).ConfigureAwait(false); result.EnsureSuccessStatusCode(); var content = await result.Content.ReadAsStringAsync().ConfigureAwait(false); var json = JToken.Parse(content); return(parseResult(json)); } catch (Exception exception) { _logger.LogError(exception, "Failed to retrieve pending mutations."); throw; } }
public async Task <IEnumerable <DesignDocument> > GetAllDesignDocumentsAsync(DesignDocumentNamespace @namespace, GetAllDesignDocumentsOptions?options = null) { options ??= GetAllDesignDocumentsOptions.Default; var uri = new UriBuilder(_serviceUriProvider.GetRandomManagementUri()) { Path = $"pools/default/buckets/{_bucketName}/ddocs" }.Uri; _logger.LogInformation("Attempting to get all design documents for bucket {_bucketName} - {uri}", _redactor.MetaData(_bucketName), _redactor.SystemData(uri)); try { using var httpClient = _httpClientFactory.Create(); var result = await httpClient.GetAsync(uri, options.TokenValue).ConfigureAwait(false); result.EnsureSuccessStatusCode(); var content = await result.Content.ReadAsStringAsync().ConfigureAwait(false); var json = JObject.Parse(content); var designDocuments = new List <DesignDocument>(); if (json.TryGetValue("rows", out var rows)) { foreach (var row in rows) { var designDoc = new DesignDocument { Name = row.SelectToken("doc.meta.id") !.Value <string>() !.Replace("_design/", string.Empty) }; foreach (var view in row.SelectTokens("doc.json.views")) { var name = view.First !.Path.Substring(view.First.Path.LastIndexOf(".", StringComparison.Ordinal) + 1); var map = view.First !.First !.SelectToken("map"); var reduce = view.First.First.SelectToken("reduce"); designDoc.Views.Add(name, new View { Map = map?.Value <string>(), Reduce = reduce?.Value <string>() }); } designDocuments.Add(designDoc); } } return(designDocuments); } catch (Exception exception) { _logger.LogError(exception, "Failed to get all design documents for bucket {_bucketName} - {uri}", _redactor.MetaData(_bucketName), _redactor.SystemData(uri)); throw; } }
internal Uri GetUri(string path) { var builder = new UriBuilder(_serviceUriProvider.GetRandomManagementUri()) { Path = path }; return(builder.Uri); }
private Uri GetUri(string?bucketName = null) { var builder = new UriBuilder(_serviceUriProvider.GetRandomManagementUri()) { Path = "pools/default/buckets" }; if (!string.IsNullOrWhiteSpace(bucketName)) { builder.Path += $"/{bucketName}"; } return(builder.Uri); }
private Uri GetUri(string?scopeName = null, string?collectionName = null) { var builder = new UriBuilder(_serviceUriProvider.GetRandomManagementUri()) { Path = $"pools/default/buckets/{_bucketName}/collections" }; if (!string.IsNullOrWhiteSpace(scopeName)) { builder.Path += $"/{scopeName}"; } if (!string.IsNullOrWhiteSpace(collectionName)) { builder.Path += $"/{collectionName}"; } return(builder.Uri); }