webhooks/NetlifyHookBody.cs (39 lines of code) (raw):
using System;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
namespace React.Site.Hooks
{
/// <summary>
/// Body of Netlify webhook requests
/// </summary>
public class NetlifyHookBody
{
public string Id { get; set; }
public string SiteId { get; set; }
public string BuildId { get; set; }
public string State { get; set; }
public string Name { get; set; }
public Uri Url { get; set; }
public Uri SslUrl { get; set; }
public Uri AdminUrl { get; set; }
public Uri DeployUrl { get; set; }
public Uri DeploySslUrl { get; set; }
public DateTime CreatedAt { get; set; }
public DateTime UpdatedAt { get; set; }
public string UserId { get; set; }
public string ErrorMessage { get; set; }
public string CommitRef { get; set; }
public int? ReviewId { get; set; }
public string Branch { get; set; }
public Uri CommitUrl { get; set; }
public string Title { get; set; }
public int? DeployTime { get; set; }
public static NetlifyHookBody CreateFromRequest(string request)
{
return JsonConvert.DeserializeObject<NetlifyHookBody>(request, new JsonSerializerSettings
{
ContractResolver = new DefaultContractResolver
{
NamingStrategy = new SnakeCaseNamingStrategy()
}
});
}
}
}