moduledefinition settings and host settings

This commit is contained in:
Shaun Walker
2021-12-09 15:50:00 -05:00
parent d1ade8789b
commit 2f34bf69e3
8 changed files with 132 additions and 38 deletions

View File

@ -1,4 +1,5 @@
using Oqtane.Models;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
@ -128,6 +129,19 @@ namespace Oqtane.Services
/// <returns></returns>
Task UpdateFolderSettingsAsync(Dictionary<string, string> folderSettings, int folderId);
/// <summary>
/// Returns a key-value dictionary of all tenant settings
/// </summary>
/// <returns></returns>
Task<Dictionary<string, string>> GetHostSettingsAsync();
/// <summary>
/// Updates a host setting
/// </summary>
/// <param name="hostSettings"></param>
/// <returns></returns>
Task UpdateHostSettingsAsync(Dictionary<string, string> hostSettings);
/// <summary>
/// Returns a key-value dictionary of all settings for the given entityName
/// </summary>
@ -150,7 +164,7 @@ namespace Oqtane.Services
/// </summary>
/// <param name="settingId"></param>
/// <returns></returns>
Task<Setting> GetSettingAsync(int settingId);
Task<Setting> GetSettingAsync(string entityName, int settingId);
/// <summary>
@ -172,7 +186,7 @@ namespace Oqtane.Services
/// </summary>
/// <param name="settingId"></param>
/// <returns></returns>
Task DeleteSettingAsync(int settingId);
Task DeleteSettingAsync(string entityName, int settingId);
/// <summary>
/// Gets the value of the given settingName (key) from the given key-value dictionary
@ -195,5 +209,13 @@ namespace Oqtane.Services
Dictionary<string, string> SetSetting(Dictionary<string, string> settings, string settingName, string settingValue, bool isPublic);
Dictionary<string, string> MergeSettings(Dictionary<string, string> settings1, Dictionary<string, string> settings2);
}
[Obsolete("GetSettingAsync(int settingId) is deprecated. Use GetSettingAsync(string entityName, int settingId) instead.", false)]
Task<Setting> GetSettingAsync(int settingId);
[Obsolete("DeleteSettingAsync(int settingId) is deprecated. Use DeleteSettingAsync(string entityName, int settingId) instead.", false)]
Task DeleteSettingAsync(int settingId);
}
}

View File

@ -21,6 +21,7 @@ namespace Oqtane.Services
}
private string Apiurl => CreateApiUrl("Setting", _siteState.Alias);
public async Task<Dictionary<string, string>> GetTenantSettingsAsync()
{
return await GetSettingsAsync(EntityNames.Tenant, -1);
@ -101,6 +102,16 @@ namespace Oqtane.Services
await UpdateSettingsAsync(folderSettings, EntityNames.Folder, folderId);
}
public async Task<Dictionary<string, string>> GetHostSettingsAsync()
{
return await GetSettingsAsync(EntityNames.Host, -1);
}
public async Task UpdateHostSettingsAsync(Dictionary<string, string> hostSettings)
{
await UpdateSettingsAsync(hostSettings, EntityNames.Host, -1);
}
public async Task<Dictionary<string, string>> GetSettingsAsync(string entityName, int entityId)
{
var dictionary = new Dictionary<string, string>();
@ -154,9 +165,9 @@ namespace Oqtane.Services
}
public async Task<Setting> GetSettingAsync(int settingId)
public async Task<Setting> GetSettingAsync(string entityName, int settingId)
{
return await GetJsonAsync<Setting>($"{Apiurl}/{settingId}");
return await GetJsonAsync<Setting>($"{Apiurl}/{settingId}/{entityName}");
}
public async Task<Setting> AddSettingAsync(Setting setting)
@ -169,9 +180,9 @@ namespace Oqtane.Services
return await PutJsonAsync<Setting>($"{Apiurl}/{setting.SettingId}", setting);
}
public async Task DeleteSettingAsync(int settingId)
public async Task DeleteSettingAsync(string entityName, int settingId)
{
await DeleteAsync($"{Apiurl}/{settingId}");
await DeleteAsync($"{Apiurl}/{settingId}/{entityName}");
}
@ -230,5 +241,19 @@ namespace Oqtane.Services
}
return settings1;
}
[Obsolete("GetSettingAsync(int settingId) is deprecated. Use GetSettingAsync(string entityName, int settingId) instead.", false)]
public async Task<Setting> GetSettingAsync(int settingId)
{
return await GetJsonAsync<Setting>($"{Apiurl}/{settingId}/tenant");
}
[Obsolete("DeleteSettingAsync(int settingId) is deprecated. Use DeleteSettingAsync(string entityName, int settingId) instead.", false)]
public async Task DeleteSettingAsync(int settingId)
{
await DeleteAsync($"{Apiurl}/{settingId}/tenant");
}
}
}