diff --git a/src/Close/Close.csproj b/src/Close/Close.csproj index 0a8afff..2badf67 100644 --- a/src/Close/Close.csproj +++ b/src/Close/Close.csproj @@ -18,7 +18,7 @@ - + @@ -37,5 +37,9 @@ + + + + diff --git a/src/Close/CloseClient.cs b/src/Close/CloseClient.cs index 5496e7f..3b61f6f 100644 --- a/src/Close/CloseClient.cs +++ b/src/Close/CloseClient.cs @@ -9,6 +9,7 @@ public interface ICloseClient Opportunities Opportunities { get; } OpportunityStatuses OpportunityStatuses { get; } Pipelines Pipelines { get; } + Activity Activity { get; } } public class CloseClient : ICloseClient @@ -25,4 +26,5 @@ public CloseClient(HttpClient httpClient) public Opportunities Opportunities => new(this, "opportunity"); public OpportunityStatuses OpportunityStatuses => new(this, "status/opportunity"); public Pipelines Pipelines => new(this, "pipeline"); + public Activity Activity => new(this, "activity"); } \ No newline at end of file diff --git a/src/Close/Extensions/ParameterExtensions.cs b/src/Close/Extensions/ParameterExtensions.cs index e1dad33..f11a37a 100644 --- a/src/Close/Extensions/ParameterExtensions.cs +++ b/src/Close/Extensions/ParameterExtensions.cs @@ -3,8 +3,8 @@ using System.Reflection; using System.Text.Json; using System.Text.Json.Serialization; +using Close.Interfaces; using Close.Models.Common; -using Close.Services.Interfaces; namespace Close.Extensions; diff --git a/src/Close/Extensions/UriExtensions.cs b/src/Close/Extensions/UriExtensions.cs index 248201c..6b85d58 100644 --- a/src/Close/Extensions/UriExtensions.cs +++ b/src/Close/Extensions/UriExtensions.cs @@ -1,6 +1,6 @@ using System.Web; +using Close.Interfaces; using Close.Models.Common; -using Close.Services.Interfaces; namespace Close.Extensions; diff --git a/src/Close/Helpers/ActivityService.cs b/src/Close/Helpers/ActivityService.cs new file mode 100644 index 0000000..fa19eed --- /dev/null +++ b/src/Close/Helpers/ActivityService.cs @@ -0,0 +1,13 @@ +using Close.Interfaces; + +namespace Close.Helpers; + +public abstract class ActivityService where TEntity : ICloseEntity +{ + protected Request _request; + + public ActivityService(CloseClient closeClient, string endpoint) + { + _request = new Request(closeClient, endpoint); + } +} \ No newline at end of file diff --git a/src/Close/Services/Request.cs b/src/Close/Helpers/Request.cs similarity index 97% rename from src/Close/Services/Request.cs rename to src/Close/Helpers/Request.cs index d060004..68a2d29 100644 --- a/src/Close/Services/Request.cs +++ b/src/Close/Helpers/Request.cs @@ -2,11 +2,10 @@ using System.Text.Json; using System.Text.Json.Serialization; using Close.Extensions; -using Close.Helpers; +using Close.Interfaces; using Close.Models.Common; -using Close.Services.Interfaces; -namespace Close.Services; +namespace Close.Helpers; public class Request where TEntity : ICloseEntity { diff --git a/src/Close/Services/Service.cs b/src/Close/Helpers/Service.cs similarity index 81% rename from src/Close/Services/Service.cs rename to src/Close/Helpers/Service.cs index 9f8c802..edce283 100644 --- a/src/Close/Services/Service.cs +++ b/src/Close/Helpers/Service.cs @@ -1,6 +1,6 @@ -using Close.Services.Interfaces; +using Close.Interfaces; -namespace Close.Services; +namespace Close.Helpers; public abstract class Service where TEntity : ICloseEntity { @@ -10,5 +10,4 @@ public Service(CloseClient closeClient, string endpoint) { _request = new Request(closeClient, endpoint); } - } \ No newline at end of file diff --git a/src/Close/Services/Interfaces/ICloseEntity.cs b/src/Close/Interfaces/ICloseEntity.cs similarity index 51% rename from src/Close/Services/Interfaces/ICloseEntity.cs rename to src/Close/Interfaces/ICloseEntity.cs index b183f5c..a1d9160 100644 --- a/src/Close/Services/Interfaces/ICloseEntity.cs +++ b/src/Close/Interfaces/ICloseEntity.cs @@ -1,4 +1,4 @@ -namespace Close.Services.Interfaces; +namespace Close.Interfaces; public interface ICloseEntity { diff --git a/src/Close/Services/Interfaces/ICreatable.cs b/src/Close/Interfaces/ICreatable.cs similarity index 78% rename from src/Close/Services/Interfaces/ICreatable.cs rename to src/Close/Interfaces/ICreatable.cs index d2f3cc8..f0b69cf 100644 --- a/src/Close/Services/Interfaces/ICreatable.cs +++ b/src/Close/Interfaces/ICreatable.cs @@ -1,6 +1,4 @@ -using Close.Models.Common; - -namespace Close.Services.Interfaces; +namespace Close.Interfaces; public interface ICreatable where TEntity : ICloseEntity where TCreateOptions : ICreateOptions, new() { diff --git a/src/Close/Services/Interfaces/ICreateOptions.cs b/src/Close/Interfaces/ICreateOptions.cs similarity index 52% rename from src/Close/Services/Interfaces/ICreateOptions.cs rename to src/Close/Interfaces/ICreateOptions.cs index 21a23ec..5fa408f 100644 --- a/src/Close/Services/Interfaces/ICreateOptions.cs +++ b/src/Close/Interfaces/ICreateOptions.cs @@ -1,4 +1,4 @@ -namespace Close.Services.Interfaces; +namespace Close.Interfaces; public interface ICreateOptions { diff --git a/src/Close/Services/Interfaces/IDeletable.cs b/src/Close/Interfaces/IDeletable.cs similarity index 75% rename from src/Close/Services/Interfaces/IDeletable.cs rename to src/Close/Interfaces/IDeletable.cs index 02a675a..cb76c1a 100644 --- a/src/Close/Services/Interfaces/IDeletable.cs +++ b/src/Close/Interfaces/IDeletable.cs @@ -1,4 +1,4 @@ -namespace Close.Services.Interfaces; +namespace Close.Interfaces; internal interface IDeletable { diff --git a/src/Close/Services/Interfaces/IHasCreatedBy.cs b/src/Close/Interfaces/IHasCreatedBy.cs similarity index 87% rename from src/Close/Services/Interfaces/IHasCreatedBy.cs rename to src/Close/Interfaces/IHasCreatedBy.cs index 1d2e935..196fd27 100644 --- a/src/Close/Services/Interfaces/IHasCreatedBy.cs +++ b/src/Close/Interfaces/IHasCreatedBy.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace Close.Services.Interfaces; +namespace Close.Interfaces; public interface IHasCreatedBy { diff --git a/src/Close/Services/Interfaces/IHasUpdatedBy.cs b/src/Close/Interfaces/IHasUpdatedBy.cs similarity index 87% rename from src/Close/Services/Interfaces/IHasUpdatedBy.cs rename to src/Close/Interfaces/IHasUpdatedBy.cs index 93edad8..93c9ec7 100644 --- a/src/Close/Services/Interfaces/IHasUpdatedBy.cs +++ b/src/Close/Interfaces/IHasUpdatedBy.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace Close.Services.Interfaces; +namespace Close.Interfaces; public interface IHasUpdatedBy { diff --git a/src/Close/Services/Interfaces/IListable.cs b/src/Close/Interfaces/IListable.cs similarity index 91% rename from src/Close/Services/Interfaces/IListable.cs rename to src/Close/Interfaces/IListable.cs index 9a9b647..32c6e21 100644 --- a/src/Close/Services/Interfaces/IListable.cs +++ b/src/Close/Interfaces/IListable.cs @@ -1,6 +1,6 @@ using Close.Models.Common; -namespace Close.Services.Interfaces; +namespace Close.Interfaces; public interface IListable where TEntity : ICloseEntity { diff --git a/src/Close/Services/Interfaces/IRequestOptions.cs b/src/Close/Interfaces/IRequestOptions.cs similarity index 53% rename from src/Close/Services/Interfaces/IRequestOptions.cs rename to src/Close/Interfaces/IRequestOptions.cs index 2bc6665..8043322 100644 --- a/src/Close/Services/Interfaces/IRequestOptions.cs +++ b/src/Close/Interfaces/IRequestOptions.cs @@ -1,4 +1,4 @@ -namespace Close.Services.Interfaces; +namespace Close.Interfaces; public interface IRequestOptions { diff --git a/src/Close/Services/Interfaces/IRetrievable.cs b/src/Close/Interfaces/IRetrievable.cs similarity index 70% rename from src/Close/Services/Interfaces/IRetrievable.cs rename to src/Close/Interfaces/IRetrievable.cs index 9aafd59..2b98e77 100644 --- a/src/Close/Services/Interfaces/IRetrievable.cs +++ b/src/Close/Interfaces/IRetrievable.cs @@ -1,6 +1,4 @@ -using Close.Models.Common; - -namespace Close.Services.Interfaces; +namespace Close.Interfaces; public interface IRetrievable where TEntity : ICloseEntity { diff --git a/src/Close/Services/Interfaces/IUpdatable.cs b/src/Close/Interfaces/IUpdatable.cs similarity index 79% rename from src/Close/Services/Interfaces/IUpdatable.cs rename to src/Close/Interfaces/IUpdatable.cs index 6e5e9d9..1a9865c 100644 --- a/src/Close/Services/Interfaces/IUpdatable.cs +++ b/src/Close/Interfaces/IUpdatable.cs @@ -1,6 +1,4 @@ -using Close.Models.Common; - -namespace Close.Services.Interfaces; +namespace Close.Interfaces; public interface IUpdatable where TEntity : ICloseEntity where TUpdateOptions : IUpdateOptions, new() { diff --git a/src/Close/Services/Interfaces/IUpdateOptions.cs b/src/Close/Interfaces/IUpdateOptions.cs similarity index 52% rename from src/Close/Services/Interfaces/IUpdateOptions.cs rename to src/Close/Interfaces/IUpdateOptions.cs index 86785da..48a7842 100644 --- a/src/Close/Services/Interfaces/IUpdateOptions.cs +++ b/src/Close/Interfaces/IUpdateOptions.cs @@ -1,4 +1,4 @@ -namespace Close.Services.Interfaces; +namespace Close.Interfaces; public interface IUpdateOptions { diff --git a/src/Close/Models/Activities/Notes/Note.cs b/src/Close/Models/Activities/Notes/Note.cs new file mode 100644 index 0000000..7b66438 --- /dev/null +++ b/src/Close/Models/Activities/Notes/Note.cs @@ -0,0 +1,46 @@ +using System.Text.Json.Serialization; +using Close.Interfaces; + +namespace Close.Models.Activities.Notes; + +public class Note : ICloseEntity, IHasCreatedBy, IHasUpdatedBy +{ + [JsonPropertyName("id")] + public string Id { get; set; } + + [JsonPropertyName("lead_id")] + public string LeadId { get; set; } + + [JsonPropertyName("user_id")] + public string UserId { get; set; } + + [JsonPropertyName("user_name")] + public string UserName { get; set; } + + [JsonPropertyName("organization_id")] + public string OrganizationId { get; set; } + + [JsonPropertyName("contact_id")] + public string ContactId { get; set; } + + [JsonPropertyName("note_html")] + public string NoteHtml { get; set; } + + [JsonPropertyName("created_by_name")] + public string CreatedByName { get; set; } + + [JsonPropertyName("date_created")] + public DateTimeOffset DateCreated { get; set; } + + [JsonPropertyName("created_by")] + public string CreatedBy { get; set; } + + [JsonPropertyName("updated_by_name")] + public string UpdatedByName { get; set; } + + [JsonPropertyName("date_updated")] + public DateTimeOffset? DateUpdated { get; set; } + + [JsonPropertyName("updated_by")] + public string UpdatedBy { get; set; } +} \ No newline at end of file diff --git a/src/Close/Models/Activities/Notes/NoteCreateOptions.cs b/src/Close/Models/Activities/Notes/NoteCreateOptions.cs new file mode 100644 index 0000000..4fd42b5 --- /dev/null +++ b/src/Close/Models/Activities/Notes/NoteCreateOptions.cs @@ -0,0 +1,16 @@ +using System.Text.Json.Serialization; +using Close.Interfaces; + +namespace Close.Models.Activities.Notes; + +public class NoteCreateOptions : ICreateOptions +{ + [JsonPropertyName("lead_id")] + public string LeadId { get; set; } + + [JsonPropertyName("note")] + public string Note { get; set; } + + [JsonPropertyName("note_html")] + public string NoteHtml { get; set; } +} \ No newline at end of file diff --git a/src/Close/Models/Activities/Notes/NoteListOptions.cs b/src/Close/Models/Activities/Notes/NoteListOptions.cs new file mode 100644 index 0000000..0b41208 --- /dev/null +++ b/src/Close/Models/Activities/Notes/NoteListOptions.cs @@ -0,0 +1,22 @@ +using System.Text.Json.Serialization; +using Close.Models.Common; + +namespace Close.Models.Activities.Notes; + +public class NoteListOptions : IListOptions +{ + [JsonPropertyName("_skip")] + public int? Skip { get; set; } + + [JsonPropertyName("_limit")] + public int? Limit { get; set; } + + [JsonPropertyName("_fields")] + public string[] Fields { get; set; } + + [JsonPropertyName("query")] + public string Query { get; set; } + + [JsonPropertyName("lead_saved_search_id")] + public string LeadSavedSearchId { get; set; } +} \ No newline at end of file diff --git a/src/Close/Models/Activities/Notes/NoteUpdateOptions.cs b/src/Close/Models/Activities/Notes/NoteUpdateOptions.cs new file mode 100644 index 0000000..6a4a949 --- /dev/null +++ b/src/Close/Models/Activities/Notes/NoteUpdateOptions.cs @@ -0,0 +1,13 @@ +using System.Text.Json.Serialization; +using Close.Interfaces; + +namespace Close.Models.Activities.Notes; + +public class NoteUpdateOptions : IUpdateOptions +{ + [JsonPropertyName("note")] + public string Note { get; set; } + + [JsonPropertyName("note_html")] + public string NoteHtml { get; set; } +} \ No newline at end of file diff --git a/src/Close/Models/Common/CloseList.cs b/src/Close/Models/Common/CloseList.cs index 1217f1d..a41dd1f 100644 --- a/src/Close/Models/Common/CloseList.cs +++ b/src/Close/Models/Common/CloseList.cs @@ -1,5 +1,5 @@ using System.Text.Json.Serialization; -using Close.Services.Interfaces; +using Close.Interfaces; namespace Close.Models.Common; diff --git a/src/Close/Models/Common/IListOptions.cs b/src/Close/Models/Common/IListOptions.cs index 9f342a8..e19945b 100644 --- a/src/Close/Models/Common/IListOptions.cs +++ b/src/Close/Models/Common/IListOptions.cs @@ -1,5 +1,5 @@ using System.Text.Json.Serialization; -using Close.Services.Interfaces; +using Close.Interfaces; namespace Close.Models.Common; diff --git a/src/Close/Models/Contacts/Contact.cs b/src/Close/Models/Contacts/Contact.cs index ad6c14c..6479668 100644 --- a/src/Close/Models/Contacts/Contact.cs +++ b/src/Close/Models/Contacts/Contact.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; +using Close.Interfaces; using Close.Models.Common; -using Close.Services.Interfaces; namespace Close.Models.Contacts; diff --git a/src/Close/Models/Events/Event.cs b/src/Close/Models/Events/Event.cs index c6f4894..5ddde07 100644 --- a/src/Close/Models/Events/Event.cs +++ b/src/Close/Models/Events/Event.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; +using Close.Interfaces; using Close.Models.Common; -using Close.Services.Interfaces; namespace Close.Models.Events; diff --git a/src/Close/Models/Leads/Lead.cs b/src/Close/Models/Leads/Lead.cs index b104857..34ad67e 100644 --- a/src/Close/Models/Leads/Lead.cs +++ b/src/Close/Models/Leads/Lead.cs @@ -1,8 +1,8 @@ using System.Text.Json.Serialization; +using Close.Interfaces; using Close.Models.Common; using Close.Models.Contacts; using Close.Models.Opportunities; -using Close.Services.Interfaces; namespace Close.Models.Leads; diff --git a/src/Close/Models/Leads/LeadCreateOptions.cs b/src/Close/Models/Leads/LeadCreateOptions.cs index 752c737..13bdb2c 100644 --- a/src/Close/Models/Leads/LeadCreateOptions.cs +++ b/src/Close/Models/Leads/LeadCreateOptions.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; +using Close.Interfaces; using Close.Models.Contacts; -using Close.Services.Interfaces; namespace Close.Models.Leads; diff --git a/src/Close/Models/Leads/LeadUpdateOptions.cs b/src/Close/Models/Leads/LeadUpdateOptions.cs index 732dd07..ef4c4e7 100644 --- a/src/Close/Models/Leads/LeadUpdateOptions.cs +++ b/src/Close/Models/Leads/LeadUpdateOptions.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; +using Close.Interfaces; using Close.Models.Contacts; -using Close.Services.Interfaces; namespace Close.Models.Leads; diff --git a/src/Close/Models/Opportunities/Opportunity.cs b/src/Close/Models/Opportunities/Opportunity.cs index 62c27b3..64c5e91 100644 --- a/src/Close/Models/Opportunities/Opportunity.cs +++ b/src/Close/Models/Opportunities/Opportunity.cs @@ -1,7 +1,7 @@ using System.Text.Json.Serialization; +using Close.Interfaces; using Close.Models.Common; using Close.Models.Statuses; -using Close.Services.Interfaces; namespace Close.Models.Opportunities; diff --git a/src/Close/Models/Opportunities/OpportunityCreateOptions.cs b/src/Close/Models/Opportunities/OpportunityCreateOptions.cs index 5ddfe3c..b5d6d0b 100644 --- a/src/Close/Models/Opportunities/OpportunityCreateOptions.cs +++ b/src/Close/Models/Opportunities/OpportunityCreateOptions.cs @@ -1,5 +1,5 @@ using System.Text.Json.Serialization; -using Close.Services.Interfaces; +using Close.Interfaces; namespace Close.Models.Opportunities; diff --git a/src/Close/Models/Opportunities/OpportunityUpdateOptions.cs b/src/Close/Models/Opportunities/OpportunityUpdateOptions.cs index e4bf846..baa3a78 100644 --- a/src/Close/Models/Opportunities/OpportunityUpdateOptions.cs +++ b/src/Close/Models/Opportunities/OpportunityUpdateOptions.cs @@ -1,5 +1,5 @@ using System.Text.Json.Serialization; -using Close.Services.Interfaces; +using Close.Interfaces; namespace Close.Models.Opportunities; diff --git a/src/Close/Models/Pipelines/Pipeline.cs b/src/Close/Models/Pipelines/Pipeline.cs index 041d23a..9f4af71 100644 --- a/src/Close/Models/Pipelines/Pipeline.cs +++ b/src/Close/Models/Pipelines/Pipeline.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; +using Close.Interfaces; using Close.Models.Statuses; -using Close.Services.Interfaces; namespace Close.Models.Pipelines; diff --git a/src/Close/Models/Pipelines/PipelineCreateOptions.cs b/src/Close/Models/Pipelines/PipelineCreateOptions.cs index c91304d..96d1b6a 100644 --- a/src/Close/Models/Pipelines/PipelineCreateOptions.cs +++ b/src/Close/Models/Pipelines/PipelineCreateOptions.cs @@ -1,5 +1,5 @@ using System.Text.Json.Serialization; -using Close.Services.Interfaces; +using Close.Interfaces; namespace Close.Models.Pipelines; diff --git a/src/Close/Models/Pipelines/PipelineUpdateOptions.cs b/src/Close/Models/Pipelines/PipelineUpdateOptions.cs index 01c7a48..b2da93c 100644 --- a/src/Close/Models/Pipelines/PipelineUpdateOptions.cs +++ b/src/Close/Models/Pipelines/PipelineUpdateOptions.cs @@ -1,5 +1,5 @@ using System.Text.Json.Serialization; -using Close.Services.Interfaces; +using Close.Interfaces; namespace Close.Models.Pipelines; diff --git a/src/Close/Models/Statuses/LeadStatus.cs b/src/Close/Models/Statuses/LeadStatus.cs index 9c33deb..14918ef 100644 --- a/src/Close/Models/Statuses/LeadStatus.cs +++ b/src/Close/Models/Statuses/LeadStatus.cs @@ -1,5 +1,5 @@ using System.Text.Json.Serialization; -using Close.Services.Interfaces; +using Close.Interfaces; namespace Close.Models.Statuses; diff --git a/src/Close/Models/Statuses/LeadStatusCreateOptions.cs b/src/Close/Models/Statuses/LeadStatusCreateOptions.cs index c8ea5b9..a5f3627 100644 --- a/src/Close/Models/Statuses/LeadStatusCreateOptions.cs +++ b/src/Close/Models/Statuses/LeadStatusCreateOptions.cs @@ -1,5 +1,5 @@ using System.Text.Json.Serialization; -using Close.Services.Interfaces; +using Close.Interfaces; namespace Close.Models.Statuses; diff --git a/src/Close/Models/Statuses/LeadStatusUpdateOptions.cs b/src/Close/Models/Statuses/LeadStatusUpdateOptions.cs index 80b500b..6afe070 100644 --- a/src/Close/Models/Statuses/LeadStatusUpdateOptions.cs +++ b/src/Close/Models/Statuses/LeadStatusUpdateOptions.cs @@ -1,5 +1,5 @@ using System.Text.Json.Serialization; -using Close.Services.Interfaces; +using Close.Interfaces; namespace Close.Models.Statuses; diff --git a/src/Close/Models/Statuses/OpportunityStatus.cs b/src/Close/Models/Statuses/OpportunityStatus.cs index b8cb6e3..5f05940 100644 --- a/src/Close/Models/Statuses/OpportunityStatus.cs +++ b/src/Close/Models/Statuses/OpportunityStatus.cs @@ -1,5 +1,5 @@ using System.Text.Json.Serialization; -using Close.Services.Interfaces; +using Close.Interfaces; namespace Close.Models.Statuses; diff --git a/src/Close/Models/Statuses/OpportunityStatusCreateOptions.cs b/src/Close/Models/Statuses/OpportunityStatusCreateOptions.cs index 8445195..e76f3ff 100644 --- a/src/Close/Models/Statuses/OpportunityStatusCreateOptions.cs +++ b/src/Close/Models/Statuses/OpportunityStatusCreateOptions.cs @@ -1,5 +1,5 @@ using System.Text.Json.Serialization; -using Close.Services.Interfaces; +using Close.Interfaces; namespace Close.Models.Statuses; diff --git a/src/Close/Models/Statuses/OpportunityStatusUpdateOptions.cs b/src/Close/Models/Statuses/OpportunityStatusUpdateOptions.cs index d7cf720..3b05d18 100644 --- a/src/Close/Models/Statuses/OpportunityStatusUpdateOptions.cs +++ b/src/Close/Models/Statuses/OpportunityStatusUpdateOptions.cs @@ -1,5 +1,5 @@ using System.Text.Json.Serialization; -using Close.Services.Interfaces; +using Close.Interfaces; namespace Close.Models.Statuses; diff --git a/src/Close/Models/Tasks/Task.cs b/src/Close/Models/Tasks/Task.cs index 5963546..92187cc 100644 --- a/src/Close/Models/Tasks/Task.cs +++ b/src/Close/Models/Tasks/Task.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; +using Close.Interfaces; using Close.Models.Common; -using Close.Services.Interfaces; namespace Close.Models.Tasks; diff --git a/src/Close/Models/Webhooks/Webhook.cs b/src/Close/Models/Webhooks/Webhook.cs index 41c5ef1..7da394f 100644 --- a/src/Close/Models/Webhooks/Webhook.cs +++ b/src/Close/Models/Webhooks/Webhook.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; +using Close.Interfaces; using Close.Models.Events; -using Close.Services.Interfaces; namespace Close.Models.Webhooks; diff --git a/src/Close/Services/Activities/Notes.cs b/src/Close/Services/Activities/Notes.cs new file mode 100644 index 0000000..7927378 --- /dev/null +++ b/src/Close/Services/Activities/Notes.cs @@ -0,0 +1,38 @@ +using Close.Helpers; +using Close.Interfaces; +using Close.Models.Activities.Notes; +using Close.Models.Common; + +namespace Close.Services.Activities; + +public class Notes : ActivityService, ICreatable, IUpdatable, IRetrievable, IListable, IDeletable +{ + public Notes(CloseClient closeClient, string endpoint) : base(closeClient, endpoint) + { + } + + public async Task CreateAsync(NoteCreateOptions createOptions, CancellationToken cancellationToken = default) + { + return await _request.CreateEntityAsync(createOptions, cancellationToken); + } + + public async Task UpdateAsync(string id, NoteUpdateOptions updateOptions, CancellationToken cancellationToken = default) + { + return await _request.UpdateEntityAsync(id, updateOptions, cancellationToken); + } + + public async Task GetAsync(string id, CancellationToken cancellationToken = default) + { + return await _request.GetEntityAsync(id, cancellationToken); + } + + public async Task> ListAsync(NoteListOptions options, CancellationToken cancellationToken = default) + { + return await _request.ListEntitiesAsync(options, cancellationToken); + } + + public async Task DeleteAsync(string id, CancellationToken cancellationToken = default) + { + await _request.DeleteEntityAsync(id, cancellationToken); + } +} \ No newline at end of file diff --git a/src/Close/Services/Activity.cs b/src/Close/Services/Activity.cs new file mode 100644 index 0000000..42eeaff --- /dev/null +++ b/src/Close/Services/Activity.cs @@ -0,0 +1,22 @@ +using Close.Services.Activities; + +namespace Close.Services; + +public interface IActivity +{ + Notes Notes { get; } +} + +public class Activity : IActivity +{ + private readonly CloseClient _closeClient; + private readonly string _endpoint; + + public Activity(CloseClient closeClient, string endpoint) + { + _closeClient = closeClient; + _endpoint = endpoint; + } + + public Notes Notes => new(_closeClient, $"{_endpoint}/note"); +} \ No newline at end of file diff --git a/src/Close/Services/LeadStatuses.cs b/src/Close/Services/LeadStatuses.cs index 3a21616..53e203e 100644 --- a/src/Close/Services/LeadStatuses.cs +++ b/src/Close/Services/LeadStatuses.cs @@ -1,6 +1,7 @@ +using Close.Helpers; +using Close.Interfaces; using Close.Models.Common; using Close.Models.Statuses; -using Close.Services.Interfaces; namespace Close.Services; diff --git a/src/Close/Services/Leads.cs b/src/Close/Services/Leads.cs index 02d5679..7f8f798 100644 --- a/src/Close/Services/Leads.cs +++ b/src/Close/Services/Leads.cs @@ -1,6 +1,7 @@ +using Close.Helpers; +using Close.Interfaces; using Close.Models.Common; using Close.Models.Leads; -using Close.Services.Interfaces; namespace Close.Services; diff --git a/src/Close/Services/Opportunities.cs b/src/Close/Services/Opportunities.cs index 171cb75..9998d89 100644 --- a/src/Close/Services/Opportunities.cs +++ b/src/Close/Services/Opportunities.cs @@ -1,7 +1,8 @@ +using Close.Helpers; +using Close.Interfaces; using Close.Models.Common; using Close.Models.Leads; using Close.Models.Opportunities; -using Close.Services.Interfaces; namespace Close.Services; diff --git a/src/Close/Services/OpportunityStatuses.cs b/src/Close/Services/OpportunityStatuses.cs index ebbe8b2..bff3781 100644 --- a/src/Close/Services/OpportunityStatuses.cs +++ b/src/Close/Services/OpportunityStatuses.cs @@ -1,6 +1,7 @@ +using Close.Helpers; +using Close.Interfaces; using Close.Models.Common; using Close.Models.Statuses; -using Close.Services.Interfaces; namespace Close.Services; diff --git a/src/Close/Services/Pipelines.cs b/src/Close/Services/Pipelines.cs index 39f1034..5e0ed53 100644 --- a/src/Close/Services/Pipelines.cs +++ b/src/Close/Services/Pipelines.cs @@ -1,6 +1,7 @@ +using Close.Helpers; +using Close.Interfaces; using Close.Models.Common; using Close.Models.Pipelines; -using Close.Services.Interfaces; namespace Close.Services;