diff options
| author | Claus Vium <clausvium@gmail.com> | 2019-07-02 12:21:54 +0200 |
|---|---|---|
| committer | Claus Vium <clausvium@gmail.com> | 2019-11-19 21:48:16 +0100 |
| commit | e5d57bd82f9a089b7c19ea357efd2b8b34fd418b (patch) | |
| tree | c6eb554c5e8a33af9cb170fbbbb1779d108cbae8 /Jellyfin.Api | |
| parent | c0d10800ab6c029b891af5caf5d0fccaf76816d3 (diff) | |
Move StartupWizard to ASP.NET Web Api
Diffstat (limited to 'Jellyfin.Api')
| -rw-r--r-- | Jellyfin.Api/Controllers/StartupController.cs | 88 | ||||
| -rw-r--r-- | Jellyfin.Api/Jellyfin.Api.csproj | 18 | ||||
| -rw-r--r-- | Jellyfin.Api/Models/Startup/StartupConfiguration.cs | 9 | ||||
| -rw-r--r-- | Jellyfin.Api/Models/Startup/StartupUser.cs | 8 |
4 files changed, 123 insertions, 0 deletions
diff --git a/Jellyfin.Api/Controllers/StartupController.cs b/Jellyfin.Api/Controllers/StartupController.cs new file mode 100644 index 000000000..c17b534eb --- /dev/null +++ b/Jellyfin.Api/Controllers/StartupController.cs @@ -0,0 +1,88 @@ +using System.Linq; +using System.Threading.Tasks; +using Jellyfin.Api.Models.Startup; +using MediaBrowser.Controller.Configuration; +using MediaBrowser.Controller.Library; +using Microsoft.AspNetCore.Mvc; + +namespace Jellyfin.Api.Controllers +{ + [ApiVersion("1")] + [Route("[controller]")] + public class StartupController : ControllerBase + { + private readonly IServerConfigurationManager _config; + private readonly IUserManager _userManager; + + public StartupController(IServerConfigurationManager config, IUserManager userManager) + { + _config = config; + _userManager = userManager; + } + + [HttpPost("Complete")] + public void Post() + { + _config.Configuration.IsStartupWizardCompleted = true; + _config.SetOptimalValues(); + _config.SaveConfiguration(); + } + + [HttpGet("Configuration")] + public StartupConfiguration Get() + { + var result = new StartupConfiguration + { + UICulture = _config.Configuration.UICulture, + MetadataCountryCode = _config.Configuration.MetadataCountryCode, + PreferredMetadataLanguage = _config.Configuration.PreferredMetadataLanguage + }; + + return result; + } + + [HttpPost("Configuration")] + public void UpdateInitial([FromForm] string uiCulture, [FromForm] string metadataCountryCode, [FromForm] string preferredMetadataLanguage) + { + _config.Configuration.UICulture = uiCulture; + _config.Configuration.MetadataCountryCode = metadataCountryCode; + _config.Configuration.PreferredMetadataLanguage = preferredMetadataLanguage; + _config.SaveConfiguration(); + } + + [HttpPost("RemoteAccess")] + public void Post([FromForm] bool enableRemoteAccess, [FromForm] bool enableAutomaticPortMapping) + { + _config.Configuration.EnableRemoteAccess = enableRemoteAccess; + _config.Configuration.EnableUPnP = enableAutomaticPortMapping; + _config.SaveConfiguration(); + } + + [HttpGet("User")] + public StartupUser GetUser() + { + var user = _userManager.Users.First(); + + return new StartupUser + { + Name = user.Name, + Password = user.Password + }; + } + + [HttpPost("User")] + public async Task Post([FromForm] StartupUser startupUser) + { + var user = _userManager.Users.First(); + + user.Name = startupUser.Name; + + _userManager.UpdateUser(user); + + if (!string.IsNullOrEmpty(startupUser.Password)) + { + await _userManager.ChangePassword(user, startupUser.Password).ConfigureAwait(false); + } + } + } +} diff --git a/Jellyfin.Api/Jellyfin.Api.csproj b/Jellyfin.Api/Jellyfin.Api.csproj new file mode 100644 index 000000000..7a7e49e30 --- /dev/null +++ b/Jellyfin.Api/Jellyfin.Api.csproj @@ -0,0 +1,18 @@ +<Project Sdk="Microsoft.NET.Sdk">
+
+ <PropertyGroup>
+ <TargetFramework>netstandard2.0</TargetFramework>
+ <OutputType>Library</OutputType>
+ </PropertyGroup>
+
+ <ItemGroup>
+ <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.2.0" />
+ <PackageReference Include="Microsoft.AspNetCore.Mvc.Versioning" Version="3.1.3" />
+ <PackageReference Include="NETStandard.Library" Version="2.0.3" />
+ </ItemGroup>
+
+ <ItemGroup>
+ <ProjectReference Include="..\MediaBrowser.Controller\MediaBrowser.Controller.csproj" />
+ </ItemGroup>
+
+</Project>
diff --git a/Jellyfin.Api/Models/Startup/StartupConfiguration.cs b/Jellyfin.Api/Models/Startup/StartupConfiguration.cs new file mode 100644 index 000000000..08dd59a17 --- /dev/null +++ b/Jellyfin.Api/Models/Startup/StartupConfiguration.cs @@ -0,0 +1,9 @@ +namespace Jellyfin.Api.Models.Startup +{ + public class StartupConfiguration + { + public string UICulture { get; set; } + public string MetadataCountryCode { get; set; } + public string PreferredMetadataLanguage { get; set; } + } +} diff --git a/Jellyfin.Api/Models/Startup/StartupUser.cs b/Jellyfin.Api/Models/Startup/StartupUser.cs new file mode 100644 index 000000000..93a09e865 --- /dev/null +++ b/Jellyfin.Api/Models/Startup/StartupUser.cs @@ -0,0 +1,8 @@ +namespace Jellyfin.Api.Models.Startup +{ + public class StartupUser + { + public string Name { get; set; } + public string Password { get; set; } + } +} |
