diff --git a/EnvelopeGenerator.Common/Models/EnvelopeModel.vb b/EnvelopeGenerator.Common/Models/EnvelopeModel.vb index 17ebfd34..45a62fa4 100644 --- a/EnvelopeGenerator.Common/Models/EnvelopeModel.vb +++ b/EnvelopeGenerator.Common/Models/EnvelopeModel.vb @@ -8,12 +8,14 @@ Public Class EnvelopeModel Private ReadOnly UserModel As UserModel Private ReadOnly ReceiverModel As ReceiverModel + Private ReadOnly DocumentModel As DocumentModel Public Sub New(pState As State) MyBase.New(pState) UserModel = New UserModel(pState) ReceiverModel = New ReceiverModel(pState) + DocumentModel = New DocumentModel(pState) End Sub Private Function ToEnvelope(pRow As DataRow) As Envelope @@ -32,6 +34,7 @@ Public Class EnvelopeModel oEnvelope.User = UserModel.SelectUser(oEnvelope.UserId) oEnvelope.Receivers = ReceiverModel.ListEnvelopeReceivers(oEnvelope.Id) + oEnvelope.Documents = DocumentModel.List(oEnvelope.Id) Return oEnvelope End Function diff --git a/EnvelopeGenerator.Web/Controllers/DocumentController.cs b/EnvelopeGenerator.Web/Controllers/DocumentController.cs new file mode 100644 index 00000000..55bc921f --- /dev/null +++ b/EnvelopeGenerator.Web/Controllers/DocumentController.cs @@ -0,0 +1,90 @@ +using DigitalData.Modules.Logging; +using EnvelopeGenerator.Common; +using EnvelopeGenerator.Web.Services; +using Microsoft.AspNetCore.Mvc; +using System.Reflection.Metadata; +using static EnvelopeGenerator.Web.Handler.FileHandler; + +namespace EnvelopeGenerator.Web.Controllers +{ + public class DocumentController : Controller + { + private readonly DatabaseService database; + private readonly LoggingService logging; + private readonly Logger logger; + private readonly ApiService api; + + public DocumentController(DatabaseService database, LoggingService logging, ApiService api) + { + this.database = database; + this.logging = logging; + this.logger = logging.LogConfig.GetLoggerFor(GetType().Name); + this.api = api; + } + + [HttpGet] + [Route("api/document/{envelopeKey}")] + [IgnoreAntiforgeryToken] + public async Task Get(string envelopeKey) + { + try + { + logger.Info("Handling file download."); + + EnvelopeResponse r = api.EnsureValidEnvelopeKey(envelopeKey); + + var Request = ControllerContext.HttpContext.Request; + var document = api.GetDocument(Request, envelopeKey); + + // Load the document from disk + var bytes = await System.IO.File.ReadAllBytesAsync(document.Filepath); + logger.Info("Serving file, size: [{0}]", bytes.Length); + + // Return the document as bytes + return File(bytes, "application/octet-stream"); + } + catch (Exception e) + { + // Better error handling & reporting + logger.Error(e); + return Problem( + statusCode: 500, + detail: e.Message, + type: ErrorType.ServerError.ToString()); + + } + } + + [HttpPost] + [Route("api/document/{envelopeKey}")] + [IgnoreAntiforgeryToken] + public async Task Update(string envelopeKey) + { + try + { + logger.Info("Handling file update."); + + api.EnsureValidEnvelopeKey(envelopeKey); + + var Request = ControllerContext.HttpContext.Request; + var document = api.GetDocument(Request, envelopeKey); + + if (!await api.UpdateDocument(Request.Body, document.Filepath)) + { + throw new IOException("Document could not be saved to disk!"); + } + + return Ok(); + } + catch (Exception e) + { + // Better error handling & reporting + logger.Error(e); + return Problem( + statusCode: 500, + detail: e.Message, + type: ErrorType.ServerError.ToString()); + } + } + } +} diff --git a/EnvelopeGenerator.Web/Controllers/EnvelopeController.cs b/EnvelopeGenerator.Web/Controllers/EnvelopeController.cs new file mode 100644 index 00000000..2334d1c6 --- /dev/null +++ b/EnvelopeGenerator.Web/Controllers/EnvelopeController.cs @@ -0,0 +1,98 @@ +using EnvelopeGenerator.Common; +using EnvelopeGenerator.Web.Services; +using Microsoft.AspNetCore.Mvc; +using NLog; +using static EnvelopeGenerator.Web.Handler.FileHandler; + +namespace EnvelopeGenerator.Web.Controllers +{ + public class EnvelopeController : Controller + { + private readonly DatabaseService database; + private readonly LoggingService logging; + private readonly Logger logger; + private readonly ApiService api; + + public EnvelopeController(DatabaseService database, LoggingService logging, ApiService api) + { + this.database = database; + this.logging = logging; + this.logger = logging.LogConfig.GetLoggerFor(GetType().Name); + this.api = api; + } + + [HttpGet] + [Route("api/envelope/{envelopeKey}")] + [IgnoreAntiforgeryToken] + public IActionResult Get(string envelopeKey) + { + try + { + logger.Info("Handling envelope loading."); + + EnvelopeResponse r = api.EnsureValidEnvelopeKey(envelopeKey); + + // Return the envelope and additional data as json + return Json(r); + + } + catch (Exception e) + { + // Better error handling & reporting + logger.Error(e); + return Problem( + statusCode: 500, + detail: e.Message, + type: ErrorType.ServerError.ToString()); + + } + } + + [HttpPost] + [Route("api/envelope/{envelopeKey}")] + [IgnoreAntiforgeryToken] + public async Task Update(string envelopeKey) + { + try + { + logger.Info("Handling envelope saving."); + + api.EnsureValidEnvelopeKey(envelopeKey); + + EnvelopeResponse r = database.LoadEnvelope(envelopeKey); + + var Request = ControllerContext.HttpContext.Request; + var document = api.GetDocument(Request, envelopeKey); + + string? annotationData = await api.EnsureValidAnnotationData(Request); + + if (annotationData == null) + { + throw new ArgumentNullException("AnnotationData"); + } + + State state = api.GetState(logging.LogConfig, database.MSSQL); + DocumentStatusModel model = new(state); + + model.InsertOrUpdate(new DocumentStatus() + { + EnvelopeId = r.Envelope.Id, + ReceiverId = r.ReceiverId, + Value = annotationData, + Status = Common.Constants.DocumentStatus.Signed + }); + + return Ok(); + } + catch (Exception e) + { + // Better error handling & reporting + logger.Error(e); + return Problem( + statusCode: 500, + detail: e.Message, + type: ErrorType.ServerError.ToString()); + } + } + } +} diff --git a/EnvelopeGenerator.Web/Controllers/HistoryController.cs b/EnvelopeGenerator.Web/Controllers/HistoryController.cs index e80ce2a8..2f0e58f0 100644 --- a/EnvelopeGenerator.Web/Controllers/HistoryController.cs +++ b/EnvelopeGenerator.Web/Controllers/HistoryController.cs @@ -9,25 +9,28 @@ namespace EnvelopeGenerator.Web.Controllers { public class HistoryController : Controller { - private DatabaseService database; - private LoggingService logging; - private Logger logger; - private ApiService api; + private readonly DatabaseService database; + private readonly LoggingService logging; + private readonly Logger logger; + private readonly ApiService api; public HistoryController(DatabaseService database, LoggingService logging, ApiService api) { this.database = database; this.logging = logging; - this.logger = logging.LogConfig.GetLoggerFor("HistoryController"); + this.logger = logging.LogConfig.GetLoggerFor(GetType().Name); this.api = api; } [HttpPost] [Route("api/history/{envelopeKey}")] - public IActionResult Create(HttpContext ctx, string envelopeKey) + [IgnoreAntiforgeryToken] + public IActionResult Create(string envelopeKey, [FromBody] ActionObject action) { try { + var Request = ControllerContext.HttpContext.Request; + api.EnsureValidEnvelopeKey(envelopeKey); EnvelopeResponse r = database.LoadEnvelope(envelopeKey); var receiver = r.Envelope.Receivers.Where(receiver => receiver.Id == r.ReceiverId).SingleOrDefault(); @@ -37,8 +40,8 @@ namespace EnvelopeGenerator.Web.Controllers return BadRequest(); } - string actionTypeString = EnsureValidQueryField(ctx.Request, "actionType"); - string actionDescription = EnsureValidQueryField(ctx.Request, "actionDescription"); + string actionTypeString = action.actionType; + string actionDescription = action.actionDescription; if (!Enum.TryParse(actionTypeString, out var actionType)) { @@ -54,7 +57,7 @@ namespace EnvelopeGenerator.Web.Controllers UserReference = receiver.Email }); - return Json(new { }); + return Ok(); } catch (Exception e) { @@ -63,23 +66,10 @@ namespace EnvelopeGenerator.Web.Controllers } } - private string EnsureValidQueryField(HttpRequest request, string fieldName) + public class ActionObject { - if (request.Query.TryGetValue(fieldName, out StringValues documentIndexString)) - { - try - { - return documentIndexString.First(); - } - catch (Exception e) - { - throw new ArgumentNullException(fieldName, e); - } - } - else - { - throw new ArgumentNullException(fieldName); - } + public string actionType { get; set; } + public string actionDescription { get; set; } } } } diff --git a/EnvelopeGenerator.Web/EnvelopeGenerator.Web.csproj b/EnvelopeGenerator.Web/EnvelopeGenerator.Web.csproj index 1d0eca76..cf989e2f 100644 --- a/EnvelopeGenerator.Web/EnvelopeGenerator.Web.csproj +++ b/EnvelopeGenerator.Web/EnvelopeGenerator.Web.csproj @@ -1,4 +1,4 @@ - + net6.0 diff --git a/EnvelopeGenerator.Web/Handler/FileHandler.cs b/EnvelopeGenerator.Web/Handler/FileHandler.cs index 3d80c62c..ed491c13 100644 --- a/EnvelopeGenerator.Web/Handler/FileHandler.cs +++ b/EnvelopeGenerator.Web/Handler/FileHandler.cs @@ -34,7 +34,8 @@ namespace EnvelopeGenerator.Web.Handler public enum ErrorType { None, - ServerError + ServerError, + FilesystemError } /// diff --git a/EnvelopeGenerator.Web/Handler/HistoryHandler.cs b/EnvelopeGenerator.Web/Handler/HistoryHandler.cs deleted file mode 100644 index 281aa920..00000000 --- a/EnvelopeGenerator.Web/Handler/HistoryHandler.cs +++ /dev/null @@ -1,69 +0,0 @@ -using EnvelopeGenerator.Common; -using EnvelopeGenerator.Web.Services; -using Microsoft.Extensions.Primitives; -using NLog; - -namespace EnvelopeGenerator.Web.Handler -{ - public class HistoryHandler - { - private DatabaseService database; - private LoggingService logging; - private ApiService api; - - public HistoryHandler(DatabaseService database, LoggingService logging, ApiService api) - { - this.database = database; - this.logging = logging; - this.api = api; - } - - public IResult HandlePostHistoryEntry(HttpContext ctx) - { - try - { - // - - - // Load Envelope from EnvelopeKey - string envelopeKey = api.EnsureValidEnvelopeKey(ctx.Request); - EnvelopeResponse r = database.LoadEnvelope(envelopeKey); - var receiver = r.Envelope.Receivers.Where(receiver => receiver.Id == r.ReceiverId).SingleOrDefault(); - - EnvelopeHistoryEntry historyEntry = new() - { - EnvelopeId = r.Envelope.Id, - UserReference = receiver.Email - }; - - database.InsertHistoryEntry(historyEntry); - - return Results.Ok(); - } - catch (Exception) - { - - return Results.Problem(); - } - } - - private int EnsureValidHistoryEntry(Logger logger, HttpRequest request) - { - if (request.Query.TryGetValue("index", out StringValues documentIndexString)) - { - try - { - return int.Parse(documentIndexString.First()); - } - catch (Exception e) - { - throw new ArgumentNullException("DocumentIndex", e); - } - } - else - { - throw new ArgumentNullException("DocumentIndex"); - } - } - } -} diff --git a/EnvelopeGenerator.Web/Pages/_Layout.cshtml b/EnvelopeGenerator.Web/Pages/_Layout.cshtml index 6a083c41..b5e194c2 100644 --- a/EnvelopeGenerator.Web/Pages/_Layout.cshtml +++ b/EnvelopeGenerator.Web/Pages/_Layout.cshtml @@ -3,9 +3,11 @@ @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers - + + + diff --git a/EnvelopeGenerator.Web/Program.cs b/EnvelopeGenerator.Web/Program.cs index 8fbb09e3..6c3f8307 100644 --- a/EnvelopeGenerator.Web/Program.cs +++ b/EnvelopeGenerator.Web/Program.cs @@ -1,8 +1,4 @@ -using EnvelopeGenerator.Web.Handler; using EnvelopeGenerator.Web.Services; -using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Components; -using Microsoft.AspNetCore.Components.Web; var builder = WebApplication.CreateBuilder(args); @@ -38,13 +34,8 @@ app.UseStaticFiles(); // Add a router app.UseRouting(); -// Add file download endpoint -FileHandler handler = new(); - -app.MapGet("/api/document/{envelopeKey}", handler.HandleGetDocument); -app.MapPost("/api/document/{envelopeKey}", handler.HandlePostDocument); -app.MapGet("/api/envelope/{envelopeKey}", handler.HandleGetEnvelope); -app.MapPost("/api/envelope/{envelopeKey}", handler.HandlePostEnvelope); +// Add controller routes +app.MapControllers(); // Blazor plumbing app.MapBlazorHub(); diff --git a/EnvelopeGenerator.Web/Scripts/app.ts b/EnvelopeGenerator.Web/Scripts/app.ts index 6d30741e..af3bbb8e 100644 --- a/EnvelopeGenerator.Web/Scripts/app.ts +++ b/EnvelopeGenerator.Web/Scripts/app.ts @@ -1,4 +1,4 @@ -import PSPDFKitType, { AnnotationsUnion, SignatureFormField as SignatureFormFieldType } from "./index"; +import PSPDFKitType, { Action, AnnotationsUnion, SignatureFormField as SignatureFormFieldType } from "./index"; import { Instance, WidgetAnnotation, ToolbarItem } from "./index"; import { EnvelopeResponse, Envelope, User, Element, Document, IFunction } from "./interfaces"; @@ -10,6 +10,17 @@ const { SignatureFormField } = PSPDFKit.FormFields; const { DRAW, TYPE } = PSPDFKit.ElectronicSignatureCreationMode; const { DISABLED } = PSPDFKit.AutoSaveMode; +enum ActionType { + Created = 0, + Saved = 1, + Sent = 2, + EmailSent = 3, + Delivered = 4, + Seen = 5, + Signed = 6, + Rejected = 7, +} + export class App { public static Instance: Instance; public static currentDocument: Document; @@ -56,6 +67,9 @@ export class App { console.debug("Loading annotations..") const annotations = App.Annotation.createAnnotations(App.currentDocument) const createdAnnotations = await App.Instance.create(annotations) + + const description = "Umschlag wurde geöffnet" + await App.Network.postHistory(App.envelopeKey, ActionType.Seen, description); } public static async handleClick(eventType: string) { @@ -125,6 +139,14 @@ export class App { return false; } + try { + const description = "Dokument wurde signiert" + await App.Network.postHistory(App.envelopeKey, ActionType.Signed, description); + } catch (e) { + console.error(e); + return false; + } + return true; } @@ -242,7 +264,7 @@ class Network { } public postDocument(envelopeKey: string, documentId: number, buffer: ArrayBuffer): Promise { - const url = `/api/document/${envelopeKey}/${documentId}`; + const url = `/api/document/${envelopeKey}?index=${documentId}`; const options: RequestInit = { credentials: "include", method: "POST", @@ -279,6 +301,34 @@ class Network { }); } + public postHistory(envelopeKey: string, actionType: ActionType, actionDescription: string): Promise { + const url = `/api/history/${envelopeKey}`; + + const data = { + actionDescription: actionDescription, + actionType: actionType.toString() + } + + const options: RequestInit = { + credentials: "include", + method: "POST", + headers: { + 'Content-Type': "application/json; charset=utf-8" + }, + body: JSON.stringify(data) + } + + console.debug("PostHistory/Calling url: " + url) + return fetch(url, options) + .then(this.handleResponse) + .then((res: Response) => { + if (!res.ok) { + return false; + }; + return true; + }); + } + private handleResponse(res: Response) { if (!res.ok) { console.log(`Request failed with status ${res.status}`) diff --git a/EnvelopeGenerator.Web/Services/ApiService.cs b/EnvelopeGenerator.Web/Services/ApiService.cs index e2f5a404..7c501c1f 100644 --- a/EnvelopeGenerator.Web/Services/ApiService.cs +++ b/EnvelopeGenerator.Web/Services/ApiService.cs @@ -1,31 +1,37 @@ -using DigitalData.Modules.Logging; +using DigitalData.Modules.Database; +using DigitalData.Modules.Logging; using EnvelopeGenerator.Common; +using Microsoft.Extensions.Primitives; +using System.Reflection.Metadata; +using System.Text; namespace EnvelopeGenerator.Web.Services { public class ApiService { - private LogConfig _logConfig; - private Logger _logger; + private readonly DatabaseService database; + private readonly LogConfig logConfig; + private readonly Logger logger; - public ApiService(LoggingService Logging, IConfiguration Config) + public ApiService(LoggingService Logging, DatabaseService database, IConfiguration Config) { - _logConfig = Logging.LogConfig; - _logger = Logging.LogConfig.GetLogger(); + this.database = database; + this.logConfig = Logging.LogConfig; + this.logger = Logging.LogConfig.GetLogger(); - _logger.Debug("Initializing ApiService"); + logger.Debug("Initializing ApiService"); } - public string EnsureValidEnvelopeKey(string envelopeKey) + public EnvelopeResponse EnsureValidEnvelopeKey(string envelopeKey) { - _logger.Debug("Parsing EnvelopeKey.."); + logger.Debug("Parsing EnvelopeKey.."); if (string.IsNullOrEmpty(envelopeKey)) throw new ArgumentNullException("EnvelopeKey"); Tuple result = Helpers.DecodeEnvelopeReceiverId(envelopeKey); - _logger.Debug("EnvelopeUUID: [{0}]", result.Item1); - _logger.Debug("ReceiverSignature: [{0}]", result.Item2); + logger.Debug("EnvelopeUUID: [{0}]", result.Item1); + logger.Debug("ReceiverSignature: [{0}]", result.Item2); if (string.IsNullOrEmpty(result.Item1)) throw new ArgumentNullException("EnvelopeUUID"); @@ -33,13 +39,96 @@ namespace EnvelopeGenerator.Web.Services if (string.IsNullOrEmpty(result.Item2)) throw new ArgumentNullException("ReceiverSignature"); - return envelopeKey; + EnvelopeResponse r = database.LoadEnvelope(envelopeKey); + + return r; } - public string EnsureValidEnvelopeKey(HttpRequest request) - { - var envelopeKey = request.RouteValues["envelopeKey"] as string; - return EnsureValidEnvelopeKey(envelopeKey); + public async Task EnsureValidAnnotationData(HttpRequest request) + { + logger.Debug("Parsing AnnotationData.."); + + try + { + using MemoryStream ms = new(); + await request.BodyReader.CopyToAsync(ms); + var bytes = ms.ToArray(); + + return Encoding.UTF8.GetString(bytes); + } + catch (Exception e) + { + logger.Error(e); + return null; + } + + } + + public int EnsureValidDocumentIndex(HttpRequest request) + { + if (request.Query.TryGetValue("index", out StringValues documentIndexString)) + { + try + { + return int.Parse(documentIndexString.First()); + } + catch (Exception e) + { + throw new ArgumentNullException("DocumentIndex", e); + } + } + else + { + throw new ArgumentNullException("DocumentIndex"); + } + } + + + + public EnvelopeDocument GetDocument(HttpRequest request, string envelopeKey) + { + EnvelopeResponse r = database.LoadEnvelope(envelopeKey); + int documentId = EnsureValidDocumentIndex(request); + + var document = r.Envelope.Documents. + Where(d => d.Id == documentId). + FirstOrDefault(); + + if (document == null) + throw new ArgumentException("DocumentId"); + + return document; + } + + public async Task UpdateDocument(Stream fileStream, string filePath) + { + try + { + using FileStream fs = new(filePath, FileMode.Open); + await fileStream.CopyToAsync(fs); + fs.Flush(); + + return true; + } + catch (Exception ex) + { + logger.Error(ex); + return false; + } + } + + + + + + + public State GetState(LogConfig LogConfig, MSSQLServer Database) + { + return new State + { + LogConfig = LogConfig, + Database = Database, + }; } } } diff --git a/EnvelopeGenerator.Web/Services/DatabaseService.cs b/EnvelopeGenerator.Web/Services/DatabaseService.cs index 71c58cbf..f058324b 100644 --- a/EnvelopeGenerator.Web/Services/DatabaseService.cs +++ b/EnvelopeGenerator.Web/Services/DatabaseService.cs @@ -60,15 +60,12 @@ namespace EnvelopeGenerator.Web.Services public EnvelopeResponse LoadEnvelope(string pEnvelopeKey) { - Tuple result = Helpers.DecodeEnvelopeReceiverId(pEnvelopeKey); + Tuple result = Helpers.DecodeEnvelopeReceiverId(pEnvelopeKey); var envelopeUuid = result.Item1; var receiverSignature = result.Item2; var receiverId = receiverModel.GetReceiverIdBySignature(receiverSignature); Envelope envelope = envelopeModel.GetByUuid(envelopeUuid); - List documents = (List)documentModel.List(envelope.Id, receiverId); - - envelope.Documents = documents; return new() { diff --git a/EnvelopeGenerator.Web/wwwroot/js/app.js b/EnvelopeGenerator.Web/wwwroot/js/app.js index b70aae6c..74f54f83 100644 --- a/EnvelopeGenerator.Web/wwwroot/js/app.js +++ b/EnvelopeGenerator.Web/wwwroot/js/app.js @@ -39,6 +39,17 @@ var Rect = PSPDFKit.Geometry.Rect; var SignatureFormField = PSPDFKit.FormFields.SignatureFormField; var _a = PSPDFKit.ElectronicSignatureCreationMode, DRAW = _a.DRAW, TYPE = _a.TYPE; var DISABLED = PSPDFKit.AutoSaveMode.DISABLED; +var ActionType; +(function (ActionType) { + ActionType[ActionType["Created"] = 0] = "Created"; + ActionType[ActionType["Saved"] = 1] = "Saved"; + ActionType[ActionType["Sent"] = 2] = "Sent"; + ActionType[ActionType["EmailSent"] = 3] = "EmailSent"; + ActionType[ActionType["Delivered"] = 4] = "Delivered"; + ActionType[ActionType["Seen"] = 5] = "Seen"; + ActionType[ActionType["Signed"] = 6] = "Signed"; + ActionType[ActionType["Rejected"] = 7] = "Rejected"; +})(ActionType || (ActionType = {})); var App = /** @class */ (function () { function App() { } @@ -46,7 +57,7 @@ var App = /** @class */ (function () { // and will trigger loading of the Editor Interface App.init = function (container, envelopeKey) { return __awaiter(this, void 0, void 0, function () { - var envelopeObject, arrayBuffer, e_1, _a, annotations, createdAnnotations; + var envelopeObject, arrayBuffer, e_1, _a, annotations, createdAnnotations, description; return __generator(this, function (_b) { switch (_b.label) { case 0: @@ -90,6 +101,10 @@ var App = /** @class */ (function () { return [4 /*yield*/, App.Instance.create(annotations)]; case 7: createdAnnotations = _b.sent(); + description = "Umschlag wurde geöffnet"; + return [4 /*yield*/, App.Network.postHistory(App.envelopeKey, ActionType.Seen, description)]; + case 8: + _b.sent(); return [2 /*return*/]; } }); @@ -136,7 +151,7 @@ var App = /** @class */ (function () { }; App.handleFinish = function (event) { return __awaiter(this, void 0, void 0, function () { - var e_2, json, postEnvelopeResult, e_3, buffer, postDocumentResult, e_4; + var e_2, json, postEnvelopeResult, e_3, buffer, postDocumentResult, e_4, description, e_5; return __generator(this, function (_a) { switch (_a.label) { case 0: @@ -181,7 +196,18 @@ var App = /** @class */ (function () { e_4 = _a.sent(); console.error(e_4); return [2 /*return*/, false]; - case 11: return [2 /*return*/, true]; + case 11: + _a.trys.push([11, 13, , 14]); + description = "Dokument wurde signiert"; + return [4 /*yield*/, App.Network.postHistory(App.envelopeKey, ActionType.Signed, description)]; + case 12: + _a.sent(); + return [3 /*break*/, 14]; + case 13: + e_5 = _a.sent(); + console.error(e_5); + return [2 /*return*/, false]; + case 14: return [2 /*return*/, true]; } }); }); @@ -318,7 +344,7 @@ var Network = /** @class */ (function () { .then(function (res) { return res.arrayBuffer(); }); }; Network.prototype.postDocument = function (envelopeKey, documentId, buffer) { - var url = "/api/document/".concat(envelopeKey, "/").concat(documentId); + var url = "/api/document/".concat(envelopeKey, "?index=").concat(documentId); var options = { credentials: "include", method: "POST", @@ -353,6 +379,31 @@ var Network = /** @class */ (function () { return true; }); }; + Network.prototype.postHistory = function (envelopeKey, actionType, actionDescription) { + var url = "/api/history/".concat(envelopeKey); + var data = { + actionDescription: actionDescription, + actionType: actionType.toString() + }; + var options = { + credentials: "include", + method: "POST", + headers: { + 'Content-Type': "application/json; charset=utf-8" + }, + body: JSON.stringify(data) + }; + console.debug("PostHistory/Calling url: " + url); + return fetch(url, options) + .then(this.handleResponse) + .then(function (res) { + if (!res.ok) { + return false; + } + ; + return true; + }); + }; Network.prototype.handleResponse = function (res) { if (!res.ok) { console.log("Request failed with status ".concat(res.status)); diff --git a/EnvelopeGenerator.Web/wwwroot/js/app.js.map b/EnvelopeGenerator.Web/wwwroot/js/app.js.map index f15f42b7..c00aa419 100644 --- a/EnvelopeGenerator.Web/wwwroot/js/app.js.map +++ b/EnvelopeGenerator.Web/wwwroot/js/app.js.map @@ -1 +1 @@ -{"version":3,"file":"app.js","sourceRoot":"","sources":["../../Scripts/app.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"app.js","sourceRoot":"","sources":["../../Scripts/app.ts"],"names":[],"mappings":"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"} \ No newline at end of file