public virtual async Task <SanityQueryResponse <TResult> > FetchAsync <TResult>(string query, object parameters = null, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(query)) { throw new ArgumentException("Query cannot be empty", nameof(query)); } var oQuery = new SanityQuery { Query = query, Params = parameters }; HttpResponseMessage response = null; if (_options.UseCdn) { // CDN only supports GET requests var url = $"data/query/{WebUtility.UrlEncode(_options.Dataset)}?query={WebUtility.UrlEncode(query ?? "")}"; if (parameters != null) { //TODO: Add support for parameters } response = await _httpQueryClient.GetAsync(url, cancellationToken); } else { // Preferred method is POST var json = new StringContent(JsonConvert.SerializeObject(oQuery, Formatting.None, SerializerSettings), Encoding.UTF8, "application/json"); response = await _httpQueryClient.PostAsync($"data/query/{WebUtility.UrlEncode(_options.Dataset)}", json, cancellationToken).ConfigureAwait(false); } return(await HandleHttpResponseAsync <SanityQueryResponse <TResult> >(response).ConfigureAwait(false)); }
public SanityDeleteByQueryMutation(string query) { if (string.IsNullOrEmpty(query)) { throw new ArgumentException("Query cannot be null when creating a delete by query mutation.", nameof(query)); } Delete = new SanityQuery { Query = query }; }