GetConfiguration Endpoint

This commit is contained in:
Michał Zieliński
2025-03-12 15:47:00 +01:00
parent b7b3bb1b70
commit 48d40be330
4 changed files with 107 additions and 2 deletions

View File

@@ -168,6 +168,60 @@ public class LayersController : Controller
}
}
[HttpGet]
[Route("getConfiguration/{apiKey}/{number:int}")]
public IActionResult GetConfigurationByNumber(string apiKey, int number)
{
if (apiKey != _configuration["apiKey"])
{
return Unauthorized();
}
try
{
if (
!Request.Headers.TryGetValue("Authorization", out var authHeader))
{
return Unauthorized();
}
var credentialsArr = authHeader.ToString().Split(" ");
if (credentialsArr.Length != 2)
{
return Unauthorized();
}
var authValue = Encoding.UTF8.GetString(Convert.FromBase64String(credentialsArr[1]));
var username = authValue.Split(':')[0];
var password = authValue.Split(':')[1];
if (username != _configuration["morska-user"] || password != _configuration["morska-pass"])
{
return Unauthorized();
}
var config = _db.Layers
.Include(x => x.Records)
.AsNoTracking()
.First(x => x.Number == number && !x.IsDeleted);
if (config is null)
{
return BadRequest();
}
var type = config.Records?.Where(x => x.Code == "Type").FirstOrDefault();
if (type is null || type.Desc1 != "ExternalConfiguration") {
return BadRequest();
}
return Ok(config);
}
catch
{
return BadRequest();
}
}
[HttpGet]
[Route("exportToGoogleSheet/{id:guid}")]
public IActionResult ExportToGoogleSheet(Guid id)

View File

@@ -0,0 +1,50 @@
-- T3-MultiSourceSummary
DECLARE @JustForDebug TINYINT = 0;
-- SETUP VARIABLES
DECLARE @Number INT = (SELECT COUNT(id) + 1 FROM [diunabi-morska].[dbo].[Layers]);
DECLARE @CurrentTimestamp NVARCHAR(14) = FORMAT(GETDATE(), 'yyyyMMddHHmm');
DECLARE @Name NVARCHAR(50) = CONCAT(
'L', @Number, '-A-C_D3-', @CurrentTimestamp
);
DECLARE @LayerId UNIQUEIDENTIFIER = NEWID();
DECLARE @Query NVARCHAR(MAX) = '
SELECT
REPLACE(dko_Konto, ''-'', '''') +
CAST(YEAR(dko_DataDekretacji) AS VARCHAR) +
RIGHT(''0'' + CAST(MONTH(dko_DataDekretacji) AS VARCHAR), 2) AS Code,
SUM(dko_KwotaWn) AS Value
FROM [PRZYCHODNIA_MORSKA_SP_ZOO].[dbo].[dkr_Pozycja]
WHERE dko_Konto = ''402-5'' AND YEAR(dko_DataDekretacji) > 2023
GROUP BY dko_Konto, dko_DataDekretacji ,dko_DataDekretacji
ORDER BY dko_Konto, dko_DataDekretacji;
';
SELECT @Name AS Name, @Query AS Query;
IF @JustForDebug = 1
BEGIN
SELECT 'Just for debug' AS Logger;
RETURN;
END;
INSERT INTO [diunabi-morska].[dbo].[Layers]
([Id], [Number], [Name], [CreatedAt], [ModifiedAt], [IsDeleted], [CreatedById], [ModifiedById], [Type])
VALUES (@LayerId, @Number, @Name, GETDATE(), GETDATE(), 0, '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 2);
INSERT INTO [diunabi-morska].[dbo].[Records]
([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId])
VALUES ((SELECT NEWID()), 'Type', 'ExternalConfiguration', GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, @LayerId);
INSERT INTO [diunabi-morska].[dbo].[Records]
([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId])
VALUES ((SELECT NEWID()), 'ConfigurationType', 'D3', GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, @LayerId);
INSERT INTO [diunabi-morska].[dbo].[Records]
([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId])
VALUES ((SELECT NEWID()), 'IsEnabled', 'True', GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, @LayerId);
INSERT INTO [diunabi-morska].[dbo].[Records]
([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId])
VALUES ((SELECT NEWID()), 'SQL-QUERY-1', @Query, GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, @LayerId);

View File

@@ -1,3 +1,3 @@
###
http://localhost:5400/api/layers/getForPowerBI/10763478CB738D4ecb2h76g803478CB738D4e/1205
Authorization: Basic powerbi 0F9C7E2D19FSLOCgKexz2h76g802tj6a
http://localhost:5400/api/layers/getConfiguration/10763478CB738D4ecb2h76g803478CB738D4e/5926
Authorization: Basic morska 0F9C7E8CB738gK2h76g803478CB

View File

@@ -78,6 +78,7 @@ app.Use(async (context, next) =>
var token = context.Request.Headers.Authorization.ToString();
if (token.Length > 0
&& !context.Request.Path.ToString().Contains("getForPowerBI")
&& !context.Request.Path.ToString().Contains("getConfiguration")
&& !context.Request.Path.ToString().Contains("DataInbox/Add"))
{
var handler = new JwtSecurityTokenHandler();