add register endpoint

This commit is contained in:
YuukanOO 2020-12-29 21:24:19 +01:00
parent 0d8082448d
commit 8a80b80e5c
3 changed files with 80 additions and 0 deletions

View File

@ -26,6 +26,22 @@ namespace Api.Controllers
_tokenParameters = tokenParameters; _tokenParameters = tokenParameters;
} }
[HttpPost("register")]
[AllowAnonymous]
public async Task<ActionResult> Register(RegisterViewModel command)
{
var user = new User(command.Username);
var result = await _usersManager.CreateAsync(user, command.Password);
if (!result.Succeeded)
{
return BadRequest();
}
return NoContent();
}
/// <summary> /// <summary>
/// Récupère un jeton d'accès pour un utilisateur particulier. /// Récupère un jeton d'accès pour un utilisateur particulier.
/// </summary> /// </summary>

View File

@ -0,0 +1,13 @@
using System.ComponentModel.DataAnnotations;
namespace Api.Models
{
public sealed class RegisterViewModel
{
[Required]
public string Username { get; set; }
[Required]
public string Password { get; set; }
}
}

View File

@ -6,6 +6,39 @@
"version": "1.0.0" "version": "1.0.0"
}, },
"paths": { "paths": {
"/api/accounts/register": {
"post": {
"tags": [
"Accounts"
],
"operationId": "Accounts_Register",
"requestBody": {
"x-name": "command",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RegisterViewModel"
}
}
},
"required": true,
"x-position": 1
},
"responses": {
"200": {
"description": "",
"content": {
"application/octet-stream": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
}
}
}
},
"/api/accounts/login": { "/api/accounts/login": {
"post": { "post": {
"tags": [ "tags": [
@ -309,6 +342,24 @@
}, },
"components": { "components": {
"schemas": { "schemas": {
"RegisterViewModel": {
"type": "object",
"additionalProperties": false,
"required": [
"username",
"password"
],
"properties": {
"username": {
"type": "string",
"minLength": 1
},
"password": {
"type": "string",
"minLength": 1
}
}
},
"LoginViewModel": { "LoginViewModel": {
"type": "object", "type": "object",
"additionalProperties": false, "additionalProperties": false,