Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions src/NetCoreForce.Client/ForceClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -597,14 +597,15 @@ public async Task<SObjectBasicInfo> GetObjectBasicInfo(string objectTypeName)
/// <para>Use the SObject Describe resource to retrieve all the metadata for an object, including information about each field, URLs, and child relationships.</para>
/// </summary>
/// <param name="objectTypeName">SObject name, e.g. Account</param>
/// <param name="customHeaders">Example If-Modified-Since: Wed, 3 Jul 2013 19:43:31 GMT</param>
/// <returns>Returns SObjectMetadataAll with full object meta including field metadata</returns>
public async Task<SObjectDescribeFull> GetObjectDescribe(string objectTypeName)
public async Task<SObjectDescribeFull> GetObjectDescribe(string objectTypeName, Dictionary<string, string> customHeaders = null)
{
var uri = UriFormatter.SObjectDescribe(InstanceUrl, ApiVersion, objectTypeName);

JsonClient client = new JsonClient(AccessToken, _httpClient);

return await client.HttpGetAsync<SObjectDescribeFull>(uri);
return await client.HttpGetAsync<SObjectDescribeFull>(uri, customHeaders);
}

/// <summary>
Expand Down
9 changes: 9 additions & 0 deletions src/NetCoreForce.Client/JsonClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,15 @@ private async Task<T> GetResponse<T>(HttpRequestMessage request, Dictionary<stri
return JsonConvert.DeserializeObject<T>(string.Empty);
}

// returned when header If-Modified-Since used and the object requested wasn't modified since provided date
if (responseMessage.StatusCode == HttpStatusCode.NotModified)
{
if (customHeaders != null && customHeaders.ContainsKey("If-Modified-Since"))
{
return JsonConvert.DeserializeObject<T>(string.Empty);
}
}

//sucessful response, skip deserialization of response content
if (responseMessage.IsSuccessStatusCode && !deserializeResponse)
{
Expand Down