Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ bld/
[Bb]in/
[Oo]bj/
[Ll]og/
out

# Visual Studio 2015 cache/options directory
.vs/
Expand Down
150 changes: 150 additions & 0 deletions Services/WebFormServices.cs
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,9 @@
using ServiceStack.Text;
using System.Text;
using ServiceStack.Redis;
using ExpressBase.Objects.ServiceStack_Artifacts.EbButtonPublicFormAttachServiceStackArtifacts;
using ExpressBase.Common.Helpers;
using ExpressBase.Objects.Dtos;

namespace ExpressBase.ServiceStack.Services
{
Expand Down Expand Up @@ -3139,6 +3142,153 @@ public AttDeviceSaveRawPunchRecordsResp Post(AttDeviceSaveRawPunchRecordsReq req
return resp;
}


public ResponseEbButtonPublicFormAttachServiceStackArtifact Get(RequestEbButtonPublicFormAttachServiceStackArtifact request)
{

if (request == null)
{
return new ResponseEbButtonPublicFormAttachServiceStackArtifact
{
Success = false,
Error = new ErrorEbButtonPublicFormAttachServiceStackArtifact
{
ErrorCode = "InvalidRequest",
ErrorMessage = "Request payload is null."
}
};
}


if (string.IsNullOrWhiteSpace(request.PublicFormRefId))
{
return new ResponseEbButtonPublicFormAttachServiceStackArtifact
{
Success = false,
Error = new ErrorEbButtonPublicFormAttachServiceStackArtifact
{
ErrorCode = "MissingFormRefId",
ErrorMessage = "The 'PublicFormRefId' query parameter or path value is required."
}
};
}

if (string.IsNullOrWhiteSpace(request.SourceFormRefId))
{
return new ResponseEbButtonPublicFormAttachServiceStackArtifact
{
Success = false,
Error = new ErrorEbButtonPublicFormAttachServiceStackArtifact
{
ErrorCode = "MissingFormRefId",
ErrorMessage = "The 'SourceFormRefId' query parameter or path value is required."
}
};
}

string publicFormId = null;
int expireInDays = 0;
int expireInHours = 0;
int expireInMinutes = 0;
bool found = false;
List<EbButtonPublicFromAttachFieldMaps> fieldMaps = null;
EbButtonPublicFormAttachServiceDto dto;
List<SingleColumn> sourceFormPrimaryTableData = null;



if (request.SourceFormDataId < 0)
{
return new ResponseEbButtonPublicFormAttachServiceStackArtifact
{
Success = false,
Error = new ErrorEbButtonPublicFormAttachServiceStackArtifact
{
ErrorCode = "MissingFormRefId",
ErrorMessage = "The 'SourceFormDataId' query parameter or path value is required."
}
};
}


try
{

EbWebForm form = this.GetWebFormObject(request.SourceFormRefId, request.UserAuthId, request.SolnId);


foreach (var table in form.FormSchema.Tables)
{
foreach (var column in table.Columns)
{
if (column.Control != null && column.Control is EbButtonPublicFormAttach control)
{
//throwing an exception as there is a mismatch in PublicFormRefId reveived from frontend

if (request.PublicFormRefId != control.PublicFormId)
{
throw new ArgumentException($"PublicFormRefId ({request.PublicFormRefId}) does not match PublicFormId ({control.PublicFormId}).");
}

publicFormId = control.PublicFormId;
expireInDays = control.ExpireInDays;
expireInHours = control.ExpireInHours;
expireInMinutes = control.ExpireInMinutes;
fieldMaps = control.FieldMaps;

found = true;
break;

}
}

if (found)
{
break;
}
}

form.TableRowId = request.SourceFormDataId;
form.RefreshFormData(EbConnectionFactory.DataDBRO, this);

foreach (var sourceFormPrimaryTableDataum in form.FormData.MultipleTables[form.TableName])
{
if (sourceFormPrimaryTableDataum.RowId == request.SourceFormDataId)
{
sourceFormPrimaryTableData = sourceFormPrimaryTableDataum.Columns;
break;
}
}


return new ResponseEbButtonPublicFormAttachServiceStackArtifact
{
Success = true,
EbButtonPublicFormAttachServiceDto = new EbButtonPublicFormAttachServiceDto(
publicFormId,
expireInDays,
expireInHours,
expireInMinutes,
fieldMaps,
sourceFormPrimaryTableData
),
};
}
catch (Exception ex)
{

return new ResponseEbButtonPublicFormAttachServiceStackArtifact
{
Success = false,
Error = new ErrorEbButtonPublicFormAttachServiceStackArtifact
{
ErrorCode = "ServerError",
ErrorMessage = ex.Message
}
};
}
}

}
}

Expand Down
1 change: 1 addition & 0 deletions Startup.cs
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ public override void Configure(Container container)
MyJwtAuthProvider jwtprovider = new MyJwtAuthProvider
{
HashAlgorithm = "RS256",
//TODO: base64 encode these in env
PrivateKeyXml = Environment.GetEnvironmentVariable(EnvironmentConstants.EB_JWT_PRIVATE_KEY_XML),
PublicKeyXml = Environment.GetEnvironmentVariable(EnvironmentConstants.EB_JWT_PUBLIC_KEY_XML),
//#if (DEBUG)
Expand Down