Skip to content

Commit fd245de

Browse files
authored
Merge pull request #119 from umbraco/v16/activecampaign
ActiveCampaign upgraded for V16
2 parents 3d98fa8 + 48b83e4 commit fd245de

32 files changed

+2010
-2136
lines changed

azure-pipeline - Crm.ActiveCampaign.yml

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
trigger:
2-
- main-v10
2+
branches:
3+
include:
4+
- main-v16
5+
- v16/dev
6+
paths:
7+
include:
8+
- src/Umbraco.Forms.Integrations.Crm.ActiveCampaign/**
9+
- azure-pipeline - Crm.ActiveCampaign.yml
310

411
pool:
512
vmImage: 'windows-latest'
@@ -13,7 +20,7 @@ variables:
1320
steps:
1421
- task: NuGetToolInstaller@1
1522
displayName: 'Install NuGet'
16-
23+
1724
- task: DotNetCoreCLI@2
1825
displayName: 'NuGet Restore'
1926
inputs:
@@ -22,6 +29,12 @@ steps:
2229
projects: '$(project)'
2330
includeNuGetOrg: true
2431

32+
- task: UseDotNet@2
33+
displayName: 'Use SDK version 9.0.203'
34+
inputs:
35+
packageType: 'sdk'
36+
version: '9.0.203'
37+
2538
- task: VSBuild@1
2639
displayName: 'Build Project'
2740
inputs:
@@ -43,4 +56,4 @@ steps:
4356
inputs:
4457
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
4558
ArtifactName: 'drop'
46-
publishLocation: 'Container'
59+
publishLocation: 'Container'

src/Umbraco.Forms.Integrations.Crm.ActiveCampaign/ActiveCampaignComposer.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
using Microsoft.Extensions.DependencyInjection;
22
using Microsoft.OpenApi.Models;
33
using Swashbuckle.AspNetCore.SwaggerGen;
4+
using Umbraco.Cms.Api.Common.OpenApi;
45
using Umbraco.Cms.Core.Composing;
56
using Umbraco.Cms.Core.DependencyInjection;
67
using Umbraco.Forms.Core.Providers;
8+
using Umbraco.Forms.Integrations.Crm.ActiveCampaign.Api.Configuration;
79
using Umbraco.Forms.Integrations.Crm.ActiveCampaign.Configuration;
810
using Umbraco.Forms.Integrations.Crm.ActiveCampaign.Services;
911

@@ -44,8 +46,9 @@ public void Compose(IUmbracoBuilder builder)
4446
Description = $"Describes the {Constants.ManagementApi.ApiTitle} available for handling ActiveCampaign automation and configuration."
4547
});
4648

47-
options.CustomOperationIds(e => $"{e.ActionDescriptor.RouteValues["action"]}");
48-
});
49+
options.OperationFilter<BackOfficeSecurityRequirementsOperationFilter>();
50+
})
51+
.AddSingleton<IOperationIdHandler, ActiveCampaignOperationIdHandler>();
4952
}
5053
}
5154
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
using Asp.Versioning;
2+
using Microsoft.AspNetCore.Mvc.ApiExplorer;
3+
using Microsoft.AspNetCore.Mvc.Controllers;
4+
using Microsoft.Extensions.Options;
5+
using Umbraco.Cms.Api.Common.OpenApi;
6+
7+
namespace Umbraco.Forms.Integrations.Crm.ActiveCampaign.Api.Configuration;
8+
9+
internal class ActiveCampaignOperationIdHandler : OperationIdHandler
10+
{
11+
public ActiveCampaignOperationIdHandler(IOptions<ApiVersioningOptions> apiVersioningOptions) : base(apiVersioningOptions)
12+
{
13+
}
14+
15+
protected override bool CanHandle(ApiDescription apiDescription, ControllerActionDescriptor controllerActionDescriptor)
16+
=> controllerActionDescriptor.ControllerTypeInfo.Namespace?.StartsWith("Umbraco.Forms.Integrations.Crm.ActiveCampaign") is true;
17+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
using Umbraco.Cms.Api.Management.OpenApi;
2+
3+
namespace Umbraco.Forms.Integrations.Crm.ActiveCampaign.Api.Configuration;
4+
5+
public class BackOfficeSecurityRequirementsOperationFilter : BackOfficeSecurityRequirementsOperationFilterBase
6+
{
7+
protected override string ApiName => Constants.ManagementApi.ApiName;
8+
}

src/Umbraco.Forms.Integrations.Crm.ActiveCampaign/Api/Management/Controllers/Accounts/AccountControllerBase.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55

66
namespace Umbraco.Forms.Integrations.Crm.ActiveCampaign.Api.Management.Controllers.Accounts
77
{
8-
[ApiVersion("1.0")]
98
[BackOfficeRoute($"{Constants.ManagementApi.RootPath}/v{{version:apiVersion}}/accounts")]
109
[ApiExplorerSettings(GroupName = Constants.ManagementApi.AccountsGroupName)]
1110
public class AccountControllerBase : ActiveCampaignControllerBase

src/Umbraco.Forms.Integrations.Crm.ActiveCampaign/Api/Management/Controllers/Accounts/GetAccountController.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using Microsoft.AspNetCore.Authorization;
1+
using Asp.Versioning;
2+
using Microsoft.AspNetCore.Authorization;
23
using Microsoft.AspNetCore.Http;
34
using Microsoft.AspNetCore.Mvc;
45
using Umbraco.Cms.Web.Common.Authorization;
@@ -7,7 +8,7 @@
78

89
namespace Umbraco.Forms.Integrations.Crm.ActiveCampaign.Api.Management.Controllers.Accounts
910
{
10-
[Authorize(Policy = AuthorizationPolicies.BackOfficeAccess)]
11+
[ApiVersion("1.0")]
1112
public class GetAccountController : AccountControllerBase
1213
{
1314
public GetAccountController(IAccountService accountService) : base(accountService)

src/Umbraco.Forms.Integrations.Crm.ActiveCampaign/Api/Management/Controllers/ActiveCampaignControllerBase.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ namespace Umbraco.Forms.Integrations.Crm.ActiveCampaign.Api.Management.Controlle
88
[ApiController]
99
[Authorize(Policy = AuthorizationPolicies.BackOfficeAccess)]
1010
[MapToApi(Constants.ManagementApi.ApiName)]
11-
public class ActiveCampaignControllerBase : Controller
11+
public class ActiveCampaignControllerBase : ControllerBase
1212
{
1313
}
1414
}

src/Umbraco.Forms.Integrations.Crm.ActiveCampaign/Api/Management/Controllers/Contacts/CheckApiAccessController.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
1-
using Microsoft.AspNetCore.Authorization;
1+
using Asp.Versioning;
22
using Microsoft.AspNetCore.Http;
33
using Microsoft.AspNetCore.Mvc;
44
using Microsoft.Extensions.Options;
5-
using Umbraco.Cms.Web.Common.Authorization;
65
using Umbraco.Forms.Integrations.Crm.ActiveCampaign.Configuration;
76
using Umbraco.Forms.Integrations.Crm.ActiveCampaign.Models.Dtos;
87
using Umbraco.Forms.Integrations.Crm.ActiveCampaign.Services;
98

109
namespace Umbraco.Forms.Integrations.Crm.ActiveCampaign.Api.Management.Controllers.Contacts
1110
{
12-
[Authorize(Policy = AuthorizationPolicies.BackOfficeAccess)]
11+
[ApiVersion("1.0")]
1312
public class CheckApiAccessController : ContactControllerBase
1413
{
1514
public CheckApiAccessController(IOptions<ActiveCampaignSettings> options, IContactService contactService) : base(options, contactService)

src/Umbraco.Forms.Integrations.Crm.ActiveCampaign/Api/Management/Controllers/Contacts/ContactControllerBase.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77

88
namespace Umbraco.Forms.Integrations.Crm.ActiveCampaign.Api.Management.Controllers.Contacts
99
{
10-
[ApiVersion("1.0")]
1110
[BackOfficeRoute($"{Constants.ManagementApi.RootPath}/v{{version:apiVersion}}/contacts")]
1211
[ApiExplorerSettings(GroupName = Constants.ManagementApi.ContactGroupName)]
1312
public class ContactControllerBase : ActiveCampaignControllerBase

src/Umbraco.Forms.Integrations.Crm.ActiveCampaign/Api/Management/Controllers/Contacts/GetContactFieldsController.cs

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,13 @@
1-
using Microsoft.AspNetCore.Authorization;
1+
using Asp.Versioning;
22
using Microsoft.AspNetCore.Http;
33
using Microsoft.AspNetCore.Mvc;
44
using Microsoft.Extensions.Options;
5-
using System;
6-
using System.Collections.Generic;
7-
using System.Linq;
8-
using System.Text;
9-
using System.Threading.Tasks;
10-
using Umbraco.Cms.Web.Common.Authorization;
115
using Umbraco.Forms.Integrations.Crm.ActiveCampaign.Configuration;
12-
using Umbraco.Forms.Integrations.Crm.ActiveCampaign.Models.Dtos;
136
using Umbraco.Forms.Integrations.Crm.ActiveCampaign.Services;
147

158
namespace Umbraco.Forms.Integrations.Crm.ActiveCampaign.Api.Management.Controllers.Contacts
169
{
17-
[Authorize(Policy = AuthorizationPolicies.BackOfficeAccess)]
10+
[ApiVersion("1.0")]
1811
public class GetContactFieldsController : ContactControllerBase
1912
{
2013
public GetContactFieldsController(IOptions<ActiveCampaignSettings> options, IContactService contactService) : base(options, contactService)

0 commit comments

Comments
 (0)