diff --git a/src/Kyoo.Authentication/Views/AccountApi.cs b/src/Kyoo.Authentication/Views/AccountApi.cs
index 92af8127..3c424efd 100644
--- a/src/Kyoo.Authentication/Views/AccountApi.cs
+++ b/src/Kyoo.Authentication/Views/AccountApi.cs
@@ -29,6 +29,7 @@ using IdentityServer4.Services;
using Kyoo.Abstractions.Controllers;
using Kyoo.Abstractions.Models;
using Kyoo.Abstractions.Models.Exceptions;
+using Kyoo.Abstractions.Models.Utils;
using Kyoo.Authentication.Models;
using Kyoo.Authentication.Models.DTO;
using Microsoft.AspNetCore.Authentication;
@@ -36,14 +37,15 @@ using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Options;
+using static Kyoo.Abstractions.Models.Utils.Constants;
namespace Kyoo.Authentication.Views
{
///
- /// The class responsible for login, logout, permissions and claims of a user.
+ /// The endpoint responsible for login, logout, permissions and claims of a user.
///
- [Route("api/account")]
[Route("api/accounts")]
+ [Route("api/account", Order = AlternativeRoute)]
[ApiController]
public class AccountApi : Controller, IProfileService
{
@@ -78,11 +80,16 @@ namespace Kyoo.Authentication.Views
}
///
- /// Register a new user and return a OTAC to connect to it.
+ /// Register
///
+ ///
+ /// Register a new user and return a OTAC to connect to it.
+ ///
/// The DTO register request
/// A OTAC to connect to this new account
[HttpPost("register")]
+ [ProducesResponseType(StatusCodes.Status200OK)]
+ [ProducesResponseType(StatusCodes.Status409Conflict, Type = typeof(RequestError))]
public async Task Register([FromBody] RegisterRequest request)
{
User user = request.ToUser();
@@ -96,7 +103,7 @@ namespace Kyoo.Authentication.Views
}
catch (DuplicatedItemException)
{
- return Conflict(new { Errors = new { Duplicate = new[] { "A user with this name already exists" } } });
+ return Conflict(new RequestError("A user with this name already exists"));
}
return Ok(new { Otac = user.ExtraData["otac"] });
diff --git a/src/Kyoo.Core/Views/ConfigurationApi.cs b/src/Kyoo.Core/Views/Admin/ConfigurationApi.cs
similarity index 79%
rename from src/Kyoo.Core/Views/ConfigurationApi.cs
rename to src/Kyoo.Core/Views/Admin/ConfigurationApi.cs
index 204634cd..a7a42bab 100644
--- a/src/Kyoo.Core/Views/ConfigurationApi.cs
+++ b/src/Kyoo.Core/Views/Admin/ConfigurationApi.cs
@@ -19,18 +19,23 @@
using System;
using System.Threading.Tasks;
using Kyoo.Abstractions.Controllers;
+using Kyoo.Abstractions.Models.Attributes;
using Kyoo.Abstractions.Models.Exceptions;
using Kyoo.Abstractions.Models.Permissions;
+using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
+using static Kyoo.Abstractions.Models.Utils.Constants;
namespace Kyoo.Core.Api
{
///
/// An API to retrieve or edit configuration settings
///
- [Route("api/config")]
[Route("api/configuration")]
+ [Route("api/config", Order = AlternativeRoute)]
[ApiController]
+ [PartialPermission("Configuration", Group = Group.Admin)]
+ [ApiDefinition("Configuration", Group = AdminGroup)]
public class ConfigurationApi : Controller
{
///
@@ -48,14 +53,19 @@ namespace Kyoo.Core.Api
}
///
- /// Get a permission from it's slug.
+ /// Get config value
///
+ ///
+ /// Retrieve a configuration's value from it's slug.
+ ///
/// The permission to retrieve. You can use ':' or "__" to get a child value.
/// The associate value or list of values.
/// Return the configuration value or the list of configurations
/// No configuration exists for the given slug
[HttpGet("{slug}")]
- [Permission(nameof(ConfigurationApi), Kind.Read, Group.Admin)]
+ [PartialPermission(Kind.Read)]
+ [ProducesResponseType(StatusCodes.Status200OK)]
+ [ProducesResponseType(StatusCodes.Status404NotFound)]
public ActionResult