Skip to content

Commit

Permalink
Implemented models for events and webhooks
Browse files Browse the repository at this point in the history
  • Loading branch information
petefox committed Mar 18, 2023
1 parent e091e7a commit 7ec18b9
Show file tree
Hide file tree
Showing 5 changed files with 88 additions and 0 deletions.
1 change: 1 addition & 0 deletions src/Close/Models/Common/ObjectType.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ namespace Close.Models.Common;

public enum ObjectType
{
lead,
emailthread,
call,
opportunity,
Expand Down
53 changes: 53 additions & 0 deletions src/Close/Models/Events/Event.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
using System.Text.Json.Serialization;
using Close.Models.Common;
using Close.Services.Interfaces;

namespace Close.Models.Events;

public class Event<TEntity> : ICloseEntity where TEntity : ICloseEntity
{
[JsonPropertyName("action")]
public EventAction Action { get; set; }

[JsonPropertyName("id")]
public string Id { get; set; }

[JsonPropertyName("api_key_id")]
public string ApiKeyId { get; set; }

[JsonPropertyName("changed_fields")]
public List<string> ChangedFields { get; set; }

[JsonPropertyName("data")]
public TEntity Data { get; set; }

[JsonPropertyName("previous_data")]
public TEntity PreviousData { get; set; }

[JsonPropertyName("lead_id")]
public string LeadId { get; set; }

[JsonPropertyName("meta")]
public EventMetaData Meta { get; set; }

[JsonPropertyName("object_id")]
public string ObjectId { get; set; }

[JsonPropertyName("object_type")]
public ObjectType ObjectType { get; set; }

[JsonPropertyName("request_id")]
public string RequestId { get; set; }

[JsonPropertyName("user_id")]
public string UserId { get; set; }

[JsonPropertyName("organization_id")]
public string OrganizationId { get; set; }

[JsonPropertyName("date_created")]
public DateTimeOffset DateCreated { get; set; }

[JsonPropertyName("date_updated")]
public DateTimeOffset? DateUpdated { get; set; }
}
8 changes: 8 additions & 0 deletions src/Close/Models/Events/EventAction.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
namespace Close.Models.Events;

public enum EventAction
{
created,
updated,
deleted
}
12 changes: 12 additions & 0 deletions src/Close/Models/Events/EventMetaData.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
using System.Text.Json.Serialization;

namespace Close.Models.Events;

public class EventMetaData
{
[JsonPropertyName("request_method")]
public string RequestMethod { get; set; }

[JsonPropertyName("request_path")]
public string RequestPath { get; set; }
}
14 changes: 14 additions & 0 deletions src/Close/Models/Webhooks/Webhook.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
using System.Text.Json.Serialization;
using Close.Models.Events;
using Close.Services.Interfaces;

namespace Close.Models.Webhooks;

public class Webhook<TEntity> where TEntity : ICloseEntity
{
[JsonPropertyName("subscription_id")]
public string SubscriptionId { get; set; }

[JsonPropertyName("event")]
public Event<TEntity> Event { get; set; }
}

0 comments on commit 7ec18b9

Please sign in to comment.