Skip to content

Commit 4301fbc

Browse files
authored
Merge pull request #102 from umbraco/v14/feature/42959-V14-Integrations-(Zapier/Forms)
V14 integrations (zapier/forms)
2 parents 2870994 + 29d28ec commit 4301fbc

39 files changed

+65939
-1019
lines changed

.gitignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,13 @@
1010
*.userosscache
1111
*.sln.docstates
1212

13+
# test site
14+
src/Umbraco.Forms.Integrations.Testsite.V14/App_Plugins/Our.Umbraco.DashIt
15+
src/Umbraco.Forms.Integrations.Testsite.V14/umbraco
16+
src/Umbraco.Forms.Integrations.Testsite.V14/Views
17+
src/Umbraco.Forms.Integrations.Testsite.V14/wwwroot
18+
src/Umbraco.Forms.Integrations.Automation.Zapier/wwwroot
19+
1320
# User-specific files (MonoDevelop/Xamarin Studio)
1421
*.userprefs
1522

src/Umbraco.Forms.Integrations.Automation.Zapier/Controllers/ZapierFormAuthorizedApiController.cs renamed to src/Umbraco.Forms.Integrations.Automation.Zapier/Api/Management/Controllers/FormsControllerBase.cs

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,27 @@
1-
using System.Linq;
2-
using Umbraco.Cms.Web.Common.Controllers;
1+
using Microsoft.AspNetCore.Mvc;
2+
using Umbraco.Cms.Api.Common.Attributes;
3+
using Umbraco.Cms.Web.Common.Routing;
34
using Umbraco.Forms.Integrations.Automation.Zapier.Services;
45

5-
namespace Umbraco.Forms.Integrations.Automation.Zapier.Controllers
6+
namespace Umbraco.Forms.Integrations.Automation.Zapier.Api.Management.Controllers
67
{
7-
public class ZapierFormAuthorizedApiController : UmbracoApiController
8+
[ApiController]
9+
[BackOfficeRoute($"{Constants.ManagementApi.RootPath}/v{{version:apiVersion}}")]
10+
[MapToApi(Constants.ManagementApi.ApiName)]
11+
public class FormsControllerBase : Controller
812
{
913
private readonly IUserValidationService _userValidationService;
14+
protected readonly ZapierFormService ZapierFormService;
1015

11-
public ZapierFormAuthorizedApiController(
12-
IUserValidationService userValidationService) =>
16+
public FormsControllerBase(
17+
IUserValidationService userValidationService,
18+
ZapierFormService zapierFormService)
19+
{
1320
_userValidationService = userValidationService;
21+
ZapierFormService = zapierFormService;
22+
}
1423

15-
public bool IsAccessValid()
24+
protected bool IsAccessValid()
1625
{
1726
string username = string.Empty;
1827
string password = string.Empty;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
using Asp.Versioning;
2+
using Microsoft.AspNetCore.Http;
3+
using Microsoft.AspNetCore.Mvc;
4+
using Umbraco.Forms.Integrations.Automation.Zapier.Extensions;
5+
using Umbraco.Forms.Integrations.Automation.Zapier.Services;
6+
7+
namespace Umbraco.Forms.Integrations.Automation.Zapier.Api.Management.Controllers
8+
{
9+
[ApiVersion("1.0")]
10+
[ApiExplorerSettings(GroupName = Constants.ManagementApi.GroupName)]
11+
public class GetFormPropertiesByIdController : FormsControllerBase
12+
{
13+
public GetFormPropertiesByIdController(IUserValidationService userValidationService, ZapierFormService zapierFormService)
14+
: base(userValidationService, zapierFormService)
15+
{
16+
}
17+
18+
[HttpGet("forms/{id}")]
19+
[ProducesResponseType(typeof(List<Dictionary<string, string>>), StatusCodes.Status200OK)]
20+
public IActionResult GetFormPropertiesById(string id)
21+
{
22+
var emptyList = new List<Dictionary<string, string>>();
23+
24+
if (!IsAccessValid()) return Ok(emptyList);
25+
26+
var form = ZapierFormService.GetById(id);
27+
28+
if (form == null) return Ok(emptyList);
29+
30+
return Ok(new List<Dictionary<string, string>> { form.ToEmptyFormDictionary() });
31+
}
32+
}
33+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
using Asp.Versioning;
2+
using Microsoft.AspNetCore.Http;
3+
using Microsoft.AspNetCore.Mvc;
4+
using Umbraco.Forms.Integrations.Automation.Zapier.Models.Dtos;
5+
using Umbraco.Forms.Integrations.Automation.Zapier.Services;
6+
7+
namespace Umbraco.Forms.Integrations.Automation.Zapier.Api.Management.Controllers
8+
{
9+
[ApiVersion("1.0")]
10+
[ApiExplorerSettings(GroupName = Constants.ManagementApi.GroupName)]
11+
public class GetFormsController : FormsControllerBase
12+
{
13+
public GetFormsController(IUserValidationService userValidationService, ZapierFormService zapierFormService)
14+
: base(userValidationService, zapierFormService)
15+
{
16+
17+
}
18+
19+
[HttpGet("forms")]
20+
[ProducesResponseType(typeof(IEnumerable<FormDto>), StatusCodes.Status200OK)]
21+
public IActionResult GetForms()
22+
{
23+
if (!IsAccessValid()) return Ok(Enumerable.Empty<FormDto>());
24+
25+
return Ok(ZapierFormService.GetAll());
26+
}
27+
}
28+
}

src/Umbraco.Forms.Integrations.Automation.Zapier/Constants.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,5 +34,16 @@ public static class EntityType
3434
{
3535
public const int Form = 2;
3636
}
37+
38+
public static class ManagementApi
39+
{
40+
public const string RootPath = "zapier/forms/management/api";
41+
42+
public const string ApiName = "zapier-forms-management";
43+
44+
public const string ApiTitle = "Zapier Forms Management API";
45+
46+
public const string GroupName = "Zapier Forms";
47+
}
3748
}
3849
}

src/Umbraco.Forms.Integrations.Automation.Zapier/Controllers/FormController.cs

Lines changed: 0 additions & 28 deletions
This file was deleted.

src/Umbraco.Forms.Integrations.Automation.Zapier/Controllers/FormPollingController.cs

Lines changed: 0 additions & 31 deletions
This file was deleted.

src/Umbraco.Forms.Integrations.Automation.Zapier/Extensions/FormExtensions.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
using System;
2-
using System.Collections.Generic;
3-
4-
using Umbraco.Forms.Core.Models;
1+
using Umbraco.Forms.Core.Models;
52
using Umbraco.Forms.Core.Persistence.Dtos;
63

74
namespace Umbraco.Forms.Integrations.Automation.Zapier.Extensions

src/Umbraco.Forms.Integrations.Automation.Zapier/Helpers/TriggerHelper.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
using System.Collections.Generic;
2-
using System.Threading.Tasks;
3-
4-
using Umbraco.Forms.Integrations.Automation.Zapier.Services;
1+
using Umbraco.Forms.Integrations.Automation.Zapier.Services;
52

63
namespace Umbraco.Forms.Integrations.Automation.Zapier.Helpers
74
{
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
using Newtonsoft.Json;
1+
using System.Text.Json.Serialization;
22

33
namespace Umbraco.Forms.Integrations.Automation.Zapier.Models.Dtos
44
{
55
public class FormDto
66
{
7-
[JsonProperty("id")]
7+
[JsonPropertyName("id")]
88
public string Id { get; set; }
99

10-
[JsonProperty("name")]
10+
[JsonPropertyName("name")]
1111
public string Name { get; set; }
1212
}
1313
}

0 commit comments

Comments
 (0)