From 38cec46df84424a8107f885fac7a9dfff74c17f5 Mon Sep 17 00:00:00 2001
From: Klaus Fischer <klaus.fischer@eloware.com>
Date: Mon, 27 Jun 2022 16:08:31 +0200
Subject: [PATCH] Added client id and secret, changes submission url to array

---
 DummyClient/Program.cs            | 11 ++++++-----
 FitConnect/Client.cs              | 13 ++++++++++++-
 FitConnect/FunctionalBaseClass.cs | 14 +++++---------
 3 files changed, 23 insertions(+), 15 deletions(-)

diff --git a/DummyClient/Program.cs b/DummyClient/Program.cs
index a0b41b48..91bae66e 100644
--- a/DummyClient/Program.cs
+++ b/DummyClient/Program.cs
@@ -32,13 +32,14 @@ void FluentSubscriberCall() {
 }
 
 
-ILogger _logger = new Logger<AppDomain>(new NullLoggerFactory());
+ILogger logger = new Logger<AppDomain>(new NullLoggerFactory());
 client = new Client(
-    FitConnectEndpoints.Create(FitConnectEndpoints.EndpointType.Development), _logger);
+    FitConnectEndpoints.Create(FitConnectEndpoints.EndpointType.Development),
+    "clientId", "clientSecret",
+    logger);
 
 Console.WriteLine(
     "This is a dummy client to demonstrate the usage of the FitConnect SDK for .NET");
 
-client =
-    new Client(FitConnectEndpoints.Create(FitConnectEndpoints.EndpointType.Development),
-        logger: _logger);
+FluentSenderCall();
+FluentSubscriberCall();
diff --git a/FitConnect/Client.cs b/FitConnect/Client.cs
index 8b68f697..55b00e99 100644
--- a/FitConnect/Client.cs
+++ b/FitConnect/Client.cs
@@ -18,8 +18,19 @@ public class Client {
     // private Routing Routing { get; }
 
 
+    /// <summary>
+    /// Constructor for the FitConnect API Client
+    /// </summary>
+    /// <param name="endpoints">Choose one endpoint or create your own one</param>
+    /// <param name="clientId">Your client id</param>
+    /// <param name="clientSecret">Your client secret</param>
+    /// <param name="logger">Optional logger</param>
     public Client(
         FitConnectEndpoints endpoints,
-        ILogger logger) {
+        string clientId,
+        string clientSecret,
+        ILogger? logger = null) {
+        ClientId = clientId;
+        ClientSecret = clientSecret;
     }
 }
diff --git a/FitConnect/FunctionalBaseClass.cs b/FitConnect/FunctionalBaseClass.cs
index 3439ea53..50339a3e 100644
--- a/FitConnect/FunctionalBaseClass.cs
+++ b/FitConnect/FunctionalBaseClass.cs
@@ -1,11 +1,7 @@
-using System;
-using System.Collections.Generic;
-using System.Net.Http;
 using System.Net.Http.Headers;
 using System.Net.Http.Json;
 using System.Security.Cryptography;
 using System.Text;
-using System.Threading.Tasks;
 using FitConnect.Models;
 using Microsoft.Extensions.Logging;
 
@@ -18,7 +14,7 @@ public class FitConnectEndpoints {
     /// <param name="tokenUrl">URL for receiving the OAuth token</param>
     /// <param name="submissionApi">URL for the submission API</param>
     /// <param name="routingApi">URL for the routing API</param>
-    public FitConnectEndpoints(string tokenUrl, string submissionApi, string routingApi) {
+    public FitConnectEndpoints(string tokenUrl, string[] submissionApi, string routingApi) {
         TokenUrl = tokenUrl;
         SubmissionApi = submissionApi;
         RoutingApi = routingApi;
@@ -32,7 +28,7 @@ public class FitConnectEndpoints {
     /// <summary>
     /// URL for the submission API.
     /// </summary>
-    public string SubmissionApi { get; }
+    public string[] SubmissionApi { get; }
 
     /// <summary>
     /// URL for the routing API.
@@ -63,19 +59,19 @@ public class FitConnectEndpoints {
 
     private static readonly FitConnectEndpoints DevEndpoints = new(
         "https://auth-testing.fit-connect.fitko.dev/token",
-        "https://submission-api-testing.fit-connect.fitko.dev",
+        new []{"https://submission-api-testing.fit-connect.fitko.dev"},
         "https://routing-api-testing.fit-connect.fitko.dev"
     );
 
     private static readonly FitConnectEndpoints TestEndpoints = new(
         "https://auth-testing.fit-connect.fitko.dev/token",
-        "https://submission-api-testing.fit-connect.fitko.dev",
+        new []{"https://submission-api-testing.fit-connect.fitko.dev"},
         "https://routing-api-testing.fit-connect.fitko.dev"
     );
 
     private static readonly FitConnectEndpoints ProductionEndpoints = new(
         "https://auth-testing.fit-connect.fitko.dev/token",
-        "https://submission-api-testing.fit-connect.fitko.dev",
+        new []{"https://submission-api-testing.fit-connect.fitko.dev"},
         "https://routing-api-testing.fit-connect.fitko.dev"
     );
 }
-- 
GitLab