From 1279382f6c6363329e03e7ef021e9dc60917e7b4 Mon Sep 17 00:00:00 2001 From: Klaus Fischer <klaus.fischer@eloware.com> Date: Thu, 9 Jun 2022 07:20:18 +0200 Subject: [PATCH] Added SubmissionService and DTOs --- FitConnect/Models/Api/Models/CallbackDto.cs | 8 ++++++ .../Models/Api/Models/CreateCallbackDto.cs | 11 ++++++++ .../Models/Api/Models/CreateSubmission.cs | 22 +++++++++++++++ .../Models/Api/Models/ServiceTypeDto.cs | 14 ++++++++++ .../Models/Api/Models/SubmissionCreatedDto.cs | 14 ++++++++++ .../Models/Api/Models/SubmissionReducedDto.cs | 28 +++++++++++++++++++ .../Models/Api/Models/SubmitSubmissionDto.cs | 11 ++++++++ .../Models/Api/Services/SubmissionService.cs | 24 ++++++++++++++++ FitConnect/Models/Area.cs | 2 +- FitConnect/Models/AreaResponse.cs | 2 +- FitConnect/Routing.cs | 1 + FitConnect/Sender.cs | 6 ++++ 12 files changed, 141 insertions(+), 2 deletions(-) create mode 100644 FitConnect/Models/Api/Models/CallbackDto.cs create mode 100644 FitConnect/Models/Api/Models/CreateCallbackDto.cs create mode 100644 FitConnect/Models/Api/Models/CreateSubmission.cs create mode 100644 FitConnect/Models/Api/Models/ServiceTypeDto.cs create mode 100644 FitConnect/Models/Api/Models/SubmissionCreatedDto.cs create mode 100644 FitConnect/Models/Api/Models/SubmissionReducedDto.cs create mode 100644 FitConnect/Models/Api/Models/SubmitSubmissionDto.cs create mode 100644 FitConnect/Models/Api/Services/SubmissionService.cs diff --git a/FitConnect/Models/Api/Models/CallbackDto.cs b/FitConnect/Models/Api/Models/CallbackDto.cs new file mode 100644 index 00000000..379d4d7c --- /dev/null +++ b/FitConnect/Models/Api/Models/CallbackDto.cs @@ -0,0 +1,8 @@ +using System.Text.Json.Serialization; + +namespace FitConnect.Models.Api.Models; + +internal class CallbackDto { + [JsonPropertyName("url")] + public string Url { get; set; } +} \ No newline at end of file diff --git a/FitConnect/Models/Api/Models/CreateCallbackDto.cs b/FitConnect/Models/Api/Models/CreateCallbackDto.cs new file mode 100644 index 00000000..13fc9392 --- /dev/null +++ b/FitConnect/Models/Api/Models/CreateCallbackDto.cs @@ -0,0 +1,11 @@ +using System.Text.Json.Serialization; + +namespace FitConnect.Models.Api.Models; + +internal class CreateCallbackDto { + [JsonPropertyName("url")] + public string Url { get; set; } + + [JsonPropertyName("secret")] + public string Secret { get; set; } +} \ No newline at end of file diff --git a/FitConnect/Models/Api/Models/CreateSubmission.cs b/FitConnect/Models/Api/Models/CreateSubmission.cs new file mode 100644 index 00000000..4faa1d3d --- /dev/null +++ b/FitConnect/Models/Api/Models/CreateSubmission.cs @@ -0,0 +1,22 @@ +using System.Text.Json.Serialization; + +namespace FitConnect.Models.Api.Models; + +internal class CreateSubmission { + [JsonPropertyName("destinationId")] + private string destinationId; + + + [JsonPropertyName("announcedAttachments")] + private List<string> announcedAttachments; + + [JsonPropertyName("caseId")] + private string caseId; + + + [JsonPropertyName("serviceType")] + private ServiceTypeDto _serviceTypeDto; + + [JsonPropertyName("callback")] + private CreateCallbackDto _callbackDto; +} \ No newline at end of file diff --git a/FitConnect/Models/Api/Models/ServiceTypeDto.cs b/FitConnect/Models/Api/Models/ServiceTypeDto.cs new file mode 100644 index 00000000..7da1aed2 --- /dev/null +++ b/FitConnect/Models/Api/Models/ServiceTypeDto.cs @@ -0,0 +1,14 @@ +using System.Text.Json.Serialization; + +namespace FitConnect.Models.Api.Models; + +internal class ServiceTypeDto { + [JsonPropertyName("name")] + public string Name { get; set; } + + [JsonPropertyName("description")] + public string Description { get; set; } + + [JsonPropertyName("identifier")] + public string Identifier { get; set; } +} \ No newline at end of file diff --git a/FitConnect/Models/Api/Models/SubmissionCreatedDto.cs b/FitConnect/Models/Api/Models/SubmissionCreatedDto.cs new file mode 100644 index 00000000..95f03c94 --- /dev/null +++ b/FitConnect/Models/Api/Models/SubmissionCreatedDto.cs @@ -0,0 +1,14 @@ +using System.Text.Json.Serialization; + +namespace FitConnect.Models.Api.Models; + +internal class SubmissionCreatedDto { + [JsonPropertyName("destinationId")] + public string DestinationId { get; set; } + + [JsonPropertyName("submissionId")] + public string SubmissionId { get; set; } + + [JsonPropertyName("caseId")] + public string CaseId { get; set; } +} \ No newline at end of file diff --git a/FitConnect/Models/Api/Models/SubmissionReducedDto.cs b/FitConnect/Models/Api/Models/SubmissionReducedDto.cs new file mode 100644 index 00000000..4c7de5e2 --- /dev/null +++ b/FitConnect/Models/Api/Models/SubmissionReducedDto.cs @@ -0,0 +1,28 @@ +using System.Text.Json.Serialization; + +namespace FitConnect.Models.Api.Models; + +public class SubmissionReducedDto { + [JsonPropertyName("destinationId")] + private string DestinationId; + + + [JsonPropertyName("submissionId")] + private string SubmissionId; + + + [JsonPropertyName("caseId")] + private string CaseId; + + + [JsonPropertyName("attachments")] + private List<string> Attachments; + + + [JsonPropertyName("serviceType")] + private ServiceTypeDto _serviceTypeDto; + + + [JsonPropertyName("callback")] + private CallbackDto Callback; +} \ No newline at end of file diff --git a/FitConnect/Models/Api/Models/SubmitSubmissionDto.cs b/FitConnect/Models/Api/Models/SubmitSubmissionDto.cs new file mode 100644 index 00000000..c8b7ca65 --- /dev/null +++ b/FitConnect/Models/Api/Models/SubmitSubmissionDto.cs @@ -0,0 +1,11 @@ +using System.Text.Json.Serialization; + +namespace FitConnect.Models.Api.Models; + +internal class SubmitSubmissionDto { + [JsonPropertyName("encryptedMetadata")] + private string EncryptedMetadata; + + [JsonPropertyName("encryptedData")] + private string EncryptedData; +} \ No newline at end of file diff --git a/FitConnect/Models/Api/Services/SubmissionService.cs b/FitConnect/Models/Api/Services/SubmissionService.cs new file mode 100644 index 00000000..1bd90c40 --- /dev/null +++ b/FitConnect/Models/Api/Services/SubmissionService.cs @@ -0,0 +1,24 @@ +using FitConnect.Models.Api.Models; + +namespace FitConnect.Models.Api.Services; + +public class SubmissionService { + internal SubmissionCreatedDto CreateSubmission(CreateSubmission submission) { + // @PostMapping("/submissions") + throw new NotImplementedException(); + } + + internal bool AddSubmissionAttachment(string submissionId, string attachmentId, + string encryptedAttachmentContent) { + // @PutMapping(value = "/submissions/{submissionId}/attachments/{attachmentId}", consumes = "application/jose") + + throw new NotImplementedException(); + } + + internal SubmissionReducedDto SubmitSubmission(string submissionId, + SubmitSubmissionDto submitSubmission) { + //@PutMapping(value = "/submissions/{submissionId}", consumes = "application/json") + throw new NotImplementedException(); + } + +} diff --git a/FitConnect/Models/Area.cs b/FitConnect/Models/Area.cs index 5995b04d..23b1e62e 100644 --- a/FitConnect/Models/Area.cs +++ b/FitConnect/Models/Area.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace FitConnect; +namespace FitConnect.Models; public class Area { [JsonPropertyName("id")] diff --git a/FitConnect/Models/AreaResponse.cs b/FitConnect/Models/AreaResponse.cs index 1bc37016..34db13d1 100644 --- a/FitConnect/Models/AreaResponse.cs +++ b/FitConnect/Models/AreaResponse.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace FitConnect; +namespace FitConnect.Models; public class AreaResponse { [JsonPropertyName("count")] diff --git a/FitConnect/Routing.cs b/FitConnect/Routing.cs index 4a5a2fab..377dec13 100644 --- a/FitConnect/Routing.cs +++ b/FitConnect/Routing.cs @@ -1,5 +1,6 @@ using System.Security.Cryptography.X509Certificates; using FitConnect.BaseClasses; +using FitConnect.Models; using Microsoft.Extensions.Logging; namespace FitConnect; diff --git a/FitConnect/Sender.cs b/FitConnect/Sender.cs index 4eec48d1..2763b2ac 100644 --- a/FitConnect/Sender.cs +++ b/FitConnect/Sender.cs @@ -72,4 +72,10 @@ public class Sender : FunctionalBaseClass { public async Task<string> CreateMetadataAsync(string data, byte[] attachment) { throw new NotImplementedException(); } + + #region Submission API + + + + #endregion } \ No newline at end of file -- GitLab