From d991212980c5212da076e6b1ba527850ff9d8e87 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Patrik=20Pa=C5=A1ko?= <patrik.pasko@twinzo.eu>
Date: Thu, 8 Aug 2024 13:46:38 +0000
Subject: [PATCH] Develop

---
 README.md                                |  6 +++
 SDK/Connection/V3/SensorDatas.cs         | 53 ++++++++++++++++++++++++
 SDK/Contracts/Data/SensorDataContract.cs |  4 ++
 SDK/Helpers/Address.cs                   |  2 +
 SDK/SDK.csproj                           |  2 +-
 5 files changed, 66 insertions(+), 1 deletion(-)
 create mode 100644 SDK/Connection/V3/SensorDatas.cs

diff --git a/README.md b/README.md
index 43ec1ee..7a52bf1 100644
--- a/README.md
+++ b/README.md
@@ -245,6 +245,12 @@ await devkitConnector.AddSensorData(sensorContracts);
 	* `AddSensorData(sensors)` - Add sensor data for multiple sensors in batch mode
 	* `AddSensorData(sensorData)` - Add sensor data for single sensor (in order to do this you need to be **authenticated** as said sensor - this can be avoided when using the batch mode above - [Example](#sensor-data))
 	* `GetSensorAppInfo()` - Get information (version, size) about the sensor app
+* **SensorDatas**
+	* `GetSensorDatas()` - Get all sensor datas
+	* `GetSensorData(id)` - Get sensor data by ID
+	* `AddSensorData(sensorDataContract)` - Add a sensor data with specified properties
+	* `UpdateSensorData(id, sensorDataContract)` - Update an existing sensor data with new properties
+	* `DeleteSensorData(id)` - Delete an existing sensor data by ID
 * **Shifts**
 	* `GetShifts()` - Get all shifts
 	* `GetShift(id)` - Get shift by ID
diff --git a/SDK/Connection/V3/SensorDatas.cs b/SDK/Connection/V3/SensorDatas.cs
new file mode 100644
index 0000000..ecc1596
--- /dev/null
+++ b/SDK/Connection/V3/SensorDatas.cs
@@ -0,0 +1,53 @@
+using SDK.Communication;
+using SDK.Exceptions;
+using SDK.Models;
+using System;
+using System.Threading.Tasks;
+
+namespace SDK
+{
+    //(2/2)
+    public partial class DevkitConnectorV3
+    {
+        public async Task<SensorDataContract[]> GetSensorDatas(string queryString = "")
+        {
+            string subUrl = Address.UrlCombine(Address.SensorDatas, queryString);
+            var response = await GetRequest<SensorDataContract[]>(subUrl);
+
+            return response;
+        }
+
+        public async Task<SensorDataContract> GetSensorData(int id, string queryString = "")
+        {
+            string subUrl = Address.UrlCombine(Address.SensorDatas, Convert.ToString(id), queryString);
+            var response = await GetRequest<SensorDataContract>(subUrl);
+
+            return response;
+        }
+
+        public async Task<PostResponseContract> AddSensorData(SensorDataContract shiftContract)
+        {
+            string subUrl = Address.UrlCombine(Address.SensorDatas);
+            var response = await PostRequest<AddSensorDataResponseContract>(subUrl, shiftContract);
+
+            if (response.ErrorMessage != null)
+            {
+                throw new ServerResponseException(ServerResponseException.message + " " + response.ErrorMessage);
+            }
+
+            return response;
+        }
+
+        public async Task UpdateSensorData(int id, object changes)
+        {
+            string subUrl = Address.UrlCombine(Address.SensorDatas, id.ToString());
+            await PatchRequest(subUrl, changes);
+        }
+
+        public async Task DeleteSensorData(int id)
+        {
+            string subUrl = Address.UrlCombine(Address.SensorDatas, Convert.ToString(id));
+            await DeleteRequest(subUrl);
+        }
+    }
+}
diff --git a/SDK/Contracts/Data/SensorDataContract.cs b/SDK/Contracts/Data/SensorDataContract.cs
index 431da93..328ecbe 100644
--- a/SDK/Contracts/Data/SensorDataContract.cs
+++ b/SDK/Contracts/Data/SensorDataContract.cs
@@ -6,6 +6,8 @@ namespace SDK.Models
     {
         public int Id { get; set; }
 
+        public int SensorId { get; set; }
+
         public string Quantity { get; set; }
 
         public string Value { get; set; }
@@ -19,5 +21,7 @@ namespace SDK.Models
         public int Index { get; set; }
 
         public bool VisibleInApp { get; set; }
+
+        public RangeContract Range { get; set; }
     }
 }
diff --git a/SDK/Helpers/Address.cs b/SDK/Helpers/Address.cs
index be67972..16c08ad 100644
--- a/SDK/Helpers/Address.cs
+++ b/SDK/Helpers/Address.cs
@@ -59,6 +59,8 @@ namespace SDK.Models
         public const string SensorsAddData = "sensors/sensor-data/";
         public const string SensorsLogin = "sensors/login/";
 
+        public const string SensorDatas = "sensor-datas/";
+
         public const string Shifts = "shifts/";
 
         public const string Users = "users/detail";
diff --git a/SDK/SDK.csproj b/SDK/SDK.csproj
index c1c2a0e..b7429ea 100644
--- a/SDK/SDK.csproj
+++ b/SDK/SDK.csproj
@@ -13,7 +13,7 @@
     <TargetFrameworks Condition="'$(TargetFrameworkOverride)' != ''">$(TargetFrameworkOverride)</TargetFrameworks>
     <AssemblyVersion>2021.6.28.25</AssemblyVersion>
     <FileVersion>2021.6.28.25</FileVersion>
-    <Version>5.6.0</Version>
+    <Version>5.7.0</Version>
     <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
   </PropertyGroup>
 
-- 
GitLab