diff --git a/src/BuildingBlocks/Masa.BuildingBlocks.StackSdks.Sapp/Service/IGlobalNavService.cs b/src/BuildingBlocks/Masa.BuildingBlocks.StackSdks.Sapp/Service/IGlobalNavService.cs index 97ec4bf..0a31b41 100644 --- a/src/BuildingBlocks/Masa.BuildingBlocks.StackSdks.Sapp/Service/IGlobalNavService.cs +++ b/src/BuildingBlocks/Masa.BuildingBlocks.StackSdks.Sapp/Service/IGlobalNavService.cs @@ -10,4 +10,6 @@ public interface IGlobalNavService Task> GetMenusByPmIdentityAsync(string pmIdentity); Task> GetVisibleAppEntriesByClientIdAsync(string clientId); + + Task> GetI18NConfigByClientIdAsync(string clientId, string culture); } diff --git a/src/Contrib.Wasm/Masa.Contrib.StackSdks.Sapp.Wasm/Service/GlobalNavService.cs b/src/Contrib.Wasm/Masa.Contrib.StackSdks.Sapp.Wasm/Service/GlobalNavService.cs index 962c8c7..7bb9692 100644 --- a/src/Contrib.Wasm/Masa.Contrib.StackSdks.Sapp.Wasm/Service/GlobalNavService.cs +++ b/src/Contrib.Wasm/Masa.Contrib.StackSdks.Sapp.Wasm/Service/GlobalNavService.cs @@ -34,4 +34,11 @@ public async Task> GetVisibleAppEntriesByClientIdAsync(string var result = await _caller.GetAsync>(requestUri); return result ?? new(); } + + public async Task> GetI18NConfigByClientIdAsync(string clientId, string culture) + { + var requestUri = $"{GLOBAL_NAV_ROUTE_PREFIX}/i18n-config/by-client-id/{clientId}?culture={culture}"; + var result = await _caller.GetAsync>(requestUri); + return result ?? new(); + } } diff --git a/src/Contrib/Masa.Contrib.StackSdks.Sapp/Service/GlobalNavService.cs b/src/Contrib/Masa.Contrib.StackSdks.Sapp/Service/GlobalNavService.cs index 962c8c7..7bb9692 100644 --- a/src/Contrib/Masa.Contrib.StackSdks.Sapp/Service/GlobalNavService.cs +++ b/src/Contrib/Masa.Contrib.StackSdks.Sapp/Service/GlobalNavService.cs @@ -34,4 +34,11 @@ public async Task> GetVisibleAppEntriesByClientIdAsync(string var result = await _caller.GetAsync>(requestUri); return result ?? new(); } + + public async Task> GetI18NConfigByClientIdAsync(string clientId, string culture) + { + var requestUri = $"{GLOBAL_NAV_ROUTE_PREFIX}/i18n-config/by-client-id/{clientId}?culture={culture}"; + var result = await _caller.GetAsync>(requestUri); + return result ?? new(); + } } diff --git a/src/Contrib/Tests/Masa.Contrib.StackSdks.Sapp.Tests/GlobalNavServiceTest.cs b/src/Contrib/Tests/Masa.Contrib.StackSdks.Sapp.Tests/GlobalNavServiceTest.cs index f443fbb..1a96189 100644 --- a/src/Contrib/Tests/Masa.Contrib.StackSdks.Sapp.Tests/GlobalNavServiceTest.cs +++ b/src/Contrib/Tests/Masa.Contrib.StackSdks.Sapp.Tests/GlobalNavServiceTest.cs @@ -107,4 +107,38 @@ public async Task TestGetMenusByPmIdentityWhenNullAsync(string pmIdentity) Assert.AreEqual(0, result.Count); } + + [TestMethod] + [DataRow("MASA_STACK", "zh-CN")] + public async Task TestGetI18NConfigByClientIdAsync(string clientId, string culture) + { + var data = new Dictionary { { "key", "value" } }; + + var requestUri = $"api/global-nav/i18n-config/by-client-id/{clientId}?culture={culture}"; + var caller = new Mock(); + caller.Setup(provider => provider.GetAsync>(requestUri, default)).ReturnsAsync(data).Verifiable(); + var sappClient = new SappClient(caller.Object); + + var result = await sappClient.GlobalNavService.GetI18NConfigByClientIdAsync(clientId, culture); + caller.Verify(provider => provider.GetAsync>(requestUri, default), Times.Once); + + Assert.AreEqual(1, result.Count); + } + + [TestMethod] + [DataRow("MASA_STACK", "zh-CN")] + public async Task TestGetI18NConfigByClientIdWhenNullAsync(string clientId, string culture) + { + Dictionary? data = null; + + var requestUri = $"api/global-nav/i18n-config/by-client-id/{clientId}?culture={culture}"; + var caller = new Mock(); + caller.Setup(provider => provider.GetAsync>(It.IsAny(), default)).ReturnsAsync(data).Verifiable(); + var sappClient = new SappClient(caller.Object); + + var result = await sappClient.GlobalNavService.GetI18NConfigByClientIdAsync(clientId, culture); + caller.Verify(provider => provider.GetAsync>(requestUri, default), Times.Once); + + Assert.AreEqual(0, result.Count); + } }