From 5618c82d0139e90675ad17f3171ec4a806ad2b48 Mon Sep 17 00:00:00 2001 From: hamzaalqurneh Date: Thu, 2 Apr 2026 13:12:38 +0300 Subject: [PATCH] Refactor Metadata class to include NativeAdapterDiscoveryService and improve key handling --- SW.Bitween.Api/Resources/Adapters/Metadata.cs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/SW.Bitween.Api/Resources/Adapters/Metadata.cs b/SW.Bitween.Api/Resources/Adapters/Metadata.cs index 984441f9..cfebb597 100644 --- a/SW.Bitween.Api/Resources/Adapters/Metadata.cs +++ b/SW.Bitween.Api/Resources/Adapters/Metadata.cs @@ -1,3 +1,4 @@ +using System; using System.Linq; using System.Threading.Tasks; using SW.PrimitiveTypes; @@ -5,25 +6,33 @@ namespace SW.Bitween.Resources.Adapters; [HandlerName("Metadata")] -public class Metadata : IGetHandler +public class Metadata : IGetHandler { private readonly ServerlessOptions _serverlessOptions; private readonly ICloudFilesService _cloudFilesService; + private readonly NativeAdapterDiscoveryService _nativeAdapterDiscovery; public Metadata( ServerlessOptions serverlessOptions, - ICloudFilesService cloudFilesService + ICloudFilesService cloudFilesService, + NativeAdapterDiscoveryService nativeAdapterDiscovery ) { _serverlessOptions = serverlessOptions; _cloudFilesService = cloudFilesService; + _nativeAdapterDiscovery = nativeAdapterDiscovery; } public async Task Handle(string key) { + var decodedKey = Uri.UnescapeDataString(key); + + if (decodedKey.StartsWith(NativeAdapterDiscoveryService.NativePrefix, StringComparison.OrdinalIgnoreCase)) + return new { }; + var cloudFilesList = await _cloudFilesService.GetMetadataAsync( - $"{_serverlessOptions.AdapterRemotePath}/{key}" + $"{_serverlessOptions.AdapterRemotePath}/{decodedKey}" ); return cloudFilesList;