Skip to content

Commit 6b1b889

Browse files
authored
Merge pull request #41 from umbraco/feature/zapier-formrecords-pull
Form polling update
2 parents b3ce018 + 69f057b commit 6b1b889

File tree

2 files changed

+23
-8
lines changed

2 files changed

+23
-8
lines changed

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

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
using System.Collections.Generic;
1+
using System;
2+
using System.Collections.Generic;
23
using System.Linq;
34
using Umbraco.Forms.Core.Data.Storage;
5+
using Umbraco.Forms.Core.Services;
46
using Umbraco.Forms.Integrations.Automation.Zapier.Extensions;
57
using Umbraco.Forms.Integrations.Automation.Zapier.Helpers;
68
using Umbraco.Forms.Integrations.Automation.Zapier.Services;
@@ -50,14 +52,9 @@ public List<Dictionary<string, string>> GetFormPropertiesById(string id)
5052

5153
var form = _zapierFormService.GetById(id);
5254

53-
var latestFormRecord = _recordStorage.GetAllRecords(form)
54-
.OrderByDescending(p => p.Created)
55-
.FirstOrDefault();
55+
if(form == null) return new List<Dictionary<string, string>>();
5656

57-
return form != null && latestFormRecord != null
58-
? new List<Dictionary<string, string>>
59-
{form.ToFormDictionary(latestFormRecord, _umbUrlHelper.GetPageUrl(latestFormRecord.UmbracoPageId))}
60-
: new List<Dictionary<string, string>>();
57+
return new List<Dictionary<string, string>> { form.ToEmptyFormDictionary() };
6158
}
6259
}
6360
}

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

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,24 @@ public static Dictionary<string, string> ToFormDictionary(this Form form, Record
2626
return contentDict;
2727
}
2828

29+
public static Dictionary<string, string> ToEmptyFormDictionary(this Form form)
30+
{
31+
var contentDict = new Dictionary<string, string>
32+
{
33+
{ Constants.FormProperties.Id, form.Id.ToString() },
34+
{ Constants.FormProperties.Name, form.Name },
35+
{ Constants.FormProperties.SubmissionDate, DateTime.UtcNow.ToString("s") },
36+
{ Constants.FormProperties.PageUrl, string.Empty }
37+
};
38+
39+
foreach (var field in form.AllFields)
40+
{
41+
contentDict.Add(field.Alias, string.Empty);
42+
}
43+
44+
return contentDict;
45+
}
46+
2947
public static Dictionary<string, string> ToFormDictionary(this Form form)
3048
{
3149
var contentDict = new Dictionary<string, string>

0 commit comments

Comments
 (0)