diff --git a/server/AyaNova/Controllers/FormCustomController.cs b/server/AyaNova/Controllers/FormCustomController.cs
index 5ba7fc2e..0614bbf9 100644
--- a/server/AyaNova/Controllers/FormCustomController.cs
+++ b/server/AyaNova/Controllers/FormCustomController.cs
@@ -95,37 +95,7 @@ namespace AyaNova.Api.Controllers
- ///
- /// Get available fields for form specified
- /// Used to build UI for customizing a form
- ///
- /// Required roles:
- /// BizAdminFull only has rights to customize forms
- ///
- ///
- ///
- /// A single FormCustom
- [HttpGet("AvailableFields/{formkey}")]
- public ActionResult GetAvailableFields([FromRoute] string formkey)
- {
- if (serverState.IsClosed)
- return StatusCode(503, new ApiErrorResponse(ApiErrorCode.API_CLOSED, null, serverState.Reason));
-
- if (!Authorized.HasReadFullRole(HttpContext.Items, AyaType.FormCustom))
- return StatusCode(403, new ApiNotAuthorizedResponse());
-
- if (!ModelState.IsValid)
- return BadRequest(new ApiErrorResponse(ModelState));
-
- if (ObjectFields.IsValidObjectKey(formkey))
- {
- return Ok(ApiOkResponse.Response(ObjectFields.ObjectFields(formkey), true));
- }
- else
- {
- return NotFound(new ApiErrorResponse(ApiErrorCode.NOT_FOUND));
- }
- }
+
diff --git a/server/AyaNova/Controllers/ObjectFieldsController.cs b/server/AyaNova/Controllers/ObjectFieldsController.cs
new file mode 100644
index 00000000..ef2044a2
--- /dev/null
+++ b/server/AyaNova/Controllers/ObjectFieldsController.cs
@@ -0,0 +1,76 @@
+using System;
+using System.Collections.Generic;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.AspNetCore.Routing;
+using Microsoft.Extensions.Logging;
+using Microsoft.AspNetCore.Authorization;
+using AyaNova.Models;
+using AyaNova.Api.ControllerHelpers;
+using AyaNova.Biz;
+
+
+namespace AyaNova.Api.Controllers
+{
+
+ ///
+ /// Enum pick list controller
+ ///
+ [ApiController]
+ [ApiVersion("8.0")]
+ [Route("api/v{version:apiVersion}/[controller]")]
+ [Produces("application/json")]
+ [Authorize]
+ public class ObjectFieldsController : ControllerBase
+ {
+ private readonly AyContext ct;
+ private readonly ILogger log;
+ private readonly ApiServerState serverState;
+
+
+ ///
+ /// ctor
+ ///
+ ///
+ ///
+ ///
+ public ObjectFieldsController(AyContext dbcontext, ILogger logger, ApiServerState apiServerState)
+ {
+ ct = dbcontext;
+ log = logger;
+ serverState = apiServerState;
+ }
+
+
+ ///
+ /// Get available fields for object specified
+ /// Used to build UI for customizing forms, lists etc
+ ///
+ /// Required roles: Any
+ ///
+ ///
+ ///
+ /// List of fields and their properties
+ [HttpGet("ObjectFields/{objectKey}")]
+ public ActionResult GetObjectFields([FromRoute] string objectKey)
+ {
+ if (!serverState.IsOpen)
+ return StatusCode(503, new ApiErrorResponse(ApiErrorCode.API_CLOSED, null, serverState.Reason));
+
+ if (!ModelState.IsValid)
+ return BadRequest(new ApiErrorResponse(ModelState));
+
+ if (ObjectFields.IsValidObjectKey(objectKey))
+ {
+ return Ok(ApiOkResponse.Response(ObjectFields.ObjectFieldsList(objectKey), true));
+ }
+ else
+ {
+ return NotFound(new ApiErrorResponse(ApiErrorCode.NOT_FOUND));
+ }
+ }
+
+
+
+
+ }//eoc
+}//ens
\ No newline at end of file
diff --git a/server/AyaNova/biz/CustomFieldsValidator.cs b/server/AyaNova/biz/CustomFieldsValidator.cs
index ece7f8a4..501cb695 100644
--- a/server/AyaNova/biz/CustomFieldsValidator.cs
+++ b/server/AyaNova/biz/CustomFieldsValidator.cs
@@ -16,7 +16,7 @@ namespace AyaNova.Biz
return;
var FormTemplate = JArray.Parse(formCustom.Template);
- var ThisFormCustomFieldsList = ObjectFields.ObjectFields(formCustom.FormKey).Where(x => x.Custom == true).Select(x => x.Key).ToList();
+ var ThisFormCustomFieldsList = ObjectFields.ObjectFieldsList(formCustom.FormKey).Where(x => x.Custom == true).Select(x => x.Key).ToList();
//If the customFields string is empty then only validation is if any of the fields are required to be filled in
if (!hasCustomData)
diff --git a/server/AyaNova/biz/FormCustomBiz.cs b/server/AyaNova/biz/FormCustomBiz.cs
index ab6f5172..dd276a36 100644
--- a/server/AyaNova/biz/FormCustomBiz.cs
+++ b/server/AyaNova/biz/FormCustomBiz.cs
@@ -192,7 +192,7 @@ namespace AyaNova.Biz
if ((!PropertyHasErrors("FormKey") && !string.IsNullOrWhiteSpace(inObj.Template)))
{
var ValidCustomFieldTypes = CustomFieldType.ValidCustomFieldTypes;
- var ValidFormFields = ObjectFields.ObjectFields(inObj.FormKey);
+ var ValidFormFields = ObjectFields.ObjectFieldsList(inObj.FormKey);
try
{
//Parse the json, expecting something like this:
diff --git a/server/AyaNova/biz/ObjectFields.cs b/server/AyaNova/biz/ObjectFields.cs
index 8949d1a4..923ade7e 100644
--- a/server/AyaNova/biz/ObjectFields.cs
+++ b/server/AyaNova/biz/ObjectFields.cs
@@ -110,7 +110,7 @@ namespace AyaNova.Biz
default:
- throw new System.ArgumentOutOfRangeException($"FormAvailableFields: {key} is not a valid form key");
+ throw new System.ArgumentOutOfRangeException($"ObjectFields: {key} is not a valid form key");
}
return l;
}
@@ -129,7 +129,7 @@ namespace AyaNova.Biz
- }//eoc FormAvailableFields
+ }//eoc ObjectFields
public class ObjectField
{
@@ -158,24 +158,24 @@ namespace AyaNova.Biz
MiniAvailable = true;
}
- public ObjectField(string key, string propertyName, bool sharedLTKey = false, bool hideable = true, bool custom = false)
- {
- Key = key;
- Hideable = hideable;
- Custom = custom;
- SharedLTKey = sharedLTKey;
- PropertyName = propertyName;//Only if hideable do they require this as non-hideable ones are automatically validated anyway and this is only required for validation
- }
+ // public ObjectField(string key, string propertyName, bool sharedLTKey = false, bool hideable = true, bool custom = false)
+ // {
+ // Key = key;
+ // Hideable = hideable;
+ // Custom = custom;
+ // SharedLTKey = sharedLTKey;
+ // PropertyName = propertyName;//Only if hideable do they require this as non-hideable ones are automatically validated anyway and this is only required for validation
+ // }
- public ObjectField(string key, bool sharedLTKey = false, bool hideable = true, bool custom = false)
- {
- Key = key;
- Hideable = hideable;
- Custom = custom;
- SharedLTKey = sharedLTKey;
- PropertyName = null;
+ // public ObjectField(string key, bool sharedLTKey = false, bool hideable = true, bool custom = false)
+ // {
+ // Key = key;
+ // Hideable = hideable;
+ // Custom = custom;
+ // SharedLTKey = sharedLTKey;
+ // PropertyName = null;
- }
+ // }
}
diff --git a/server/AyaNova/biz/RequiredFieldsValidator.cs b/server/AyaNova/biz/RequiredFieldsValidator.cs
index 2950c8b6..82b994a3 100644
--- a/server/AyaNova/biz/RequiredFieldsValidator.cs
+++ b/server/AyaNova/biz/RequiredFieldsValidator.cs
@@ -18,7 +18,7 @@ namespace AyaNova.Biz
//var OuterJson=JObject.Parse(formCustom.Template);
var FormTemplate = JArray.Parse(formCustom.Template);
// var FormTemplate=(JArray)OuterJson["template"];
- var FormFields = ObjectFields.ObjectFields(formCustom.FormKey);
+ var FormFields = ObjectFields.ObjectFieldsList(formCustom.FormKey);
// var ThisFormNormalFieldsList = FormFields.Where(x => x.Custom == false).Select(x => x.Key).ToList();
foreach (JObject jo in FormTemplate)