Owneat Technical Guide main Help

Class UserController

Namespace: Identity.API.Controllers
Assembly: Identity.API.dll

Controller that manage users.

[ApiController] [ApiVersion("1.0")] [Route("api/v{version:apiVersion}/[controller]s")] public sealed class UserController : ControllerBase

Inheritance

objectControllerBase ← UserController

Inherited Members

ControllerBase.StatusCode\(int\), ControllerBase.StatusCode\(int, object?\), ControllerBase.Content\(string\), ControllerBase.Content\(string, string\), ControllerBase.Content\(string, string, Encoding\), ControllerBase.Content\(string, MediaTypeHeaderValue?\), ControllerBase.NoContent\(\), ControllerBase.Ok\(\), ControllerBase.Ok\(object?\), ControllerBase.Redirect\(string\), ControllerBase.RedirectPermanent\(string\), ControllerBase.RedirectPreserveMethod\(string\), ControllerBase.RedirectPermanentPreserveMethod\(string\), ControllerBase.LocalRedirect\(string\), ControllerBase.LocalRedirectPermanent\(string\), ControllerBase.LocalRedirectPreserveMethod\(string\), ControllerBase.LocalRedirectPermanentPreserveMethod\(string\), ControllerBase.RedirectToAction\(\), ControllerBase.RedirectToAction\(string?\), ControllerBase.RedirectToAction\(string?, object?\), ControllerBase.RedirectToAction\(string?, string?\), ControllerBase.RedirectToAction\(string?, string?, object?\), ControllerBase.RedirectToAction\(string?, string?, string?\), ControllerBase.RedirectToAction\(string?, string?, object?, string?\), ControllerBase.RedirectToActionPreserveMethod\(string?, string?, object?, string?\), ControllerBase.RedirectToActionPermanent\(string?\), ControllerBase.RedirectToActionPermanent\(string?, object?\), ControllerBase.RedirectToActionPermanent\(string?, string?\), ControllerBase.RedirectToActionPermanent\(string?, string?, string?\), ControllerBase.RedirectToActionPermanent\(string?, string?, object?\), ControllerBase.RedirectToActionPermanent\(string?, string?, object?, string?\), ControllerBase.RedirectToActionPermanentPreserveMethod\(string?, string?, object?, string?\), ControllerBase.RedirectToRoute\(string?\), ControllerBase.RedirectToRoute\(object?\), ControllerBase.RedirectToRoute\(string?, object?\), ControllerBase.RedirectToRoute\(string?, string?\), ControllerBase.RedirectToRoute\(string?, object?, string?\), ControllerBase.RedirectToRoutePreserveMethod\(string?, object?, string?\), ControllerBase.RedirectToRoutePermanent\(string?\), ControllerBase.RedirectToRoutePermanent\(object?\), ControllerBase.RedirectToRoutePermanent\(string?, object?\), ControllerBase.RedirectToRoutePermanent\(string?, string?\), ControllerBase.RedirectToRoutePermanent\(string?, object?, string?\), ControllerBase.RedirectToRoutePermanentPreserveMethod\(string?, object?, string?\), ControllerBase.RedirectToPage\(string\), ControllerBase.RedirectToPage\(string, object?\), ControllerBase.RedirectToPage\(string, string?\), ControllerBase.RedirectToPage\(string, string?, object?\), ControllerBase.RedirectToPage\(string, string?, string?\), ControllerBase.RedirectToPage\(string, string?, object?, string?\), ControllerBase.RedirectToPagePermanent\(string\), ControllerBase.RedirectToPagePermanent\(string, object?\), ControllerBase.RedirectToPagePermanent\(string, string?\), ControllerBase.RedirectToPagePermanent\(string, string?, string?\), ControllerBase.RedirectToPagePermanent\(string, string?, object?, string?\), ControllerBase.RedirectToPagePreserveMethod\(string, string?, object?, string?\), ControllerBase.RedirectToPagePermanentPreserveMethod\(string, string?, object?, string?\), ControllerBase.File\(byte\[\], string\), ControllerBase.File\(byte\[\], string, bool\), ControllerBase.File\(byte\[\], string, string?\), ControllerBase.File\(byte\[\], string, string?, bool\), ControllerBase.File\(byte\[\], string, DateTimeOffset?, EntityTagHeaderValue\), ControllerBase.File\(byte\[\], string, DateTimeOffset?, EntityTagHeaderValue, bool\), ControllerBase.File\(byte\[\], string, string?, DateTimeOffset?, EntityTagHeaderValue\), ControllerBase.File\(byte\[\], string, string?, DateTimeOffset?, EntityTagHeaderValue, bool\), ControllerBase.File\(Stream, string\), ControllerBase.File\(Stream, string, bool\), ControllerBase.File\(Stream, string, string?\), ControllerBase.File\(Stream, string, string?, bool\), ControllerBase.File\(Stream, string, DateTimeOffset?, EntityTagHeaderValue\), ControllerBase.File\(Stream, string, DateTimeOffset?, EntityTagHeaderValue, bool\), ControllerBase.File\(Stream, string, string?, DateTimeOffset?, EntityTagHeaderValue\), ControllerBase.File\(Stream, string, string?, DateTimeOffset?, EntityTagHeaderValue, bool\), ControllerBase.File\(string, string\), ControllerBase.File\(string, string, bool\), ControllerBase.File\(string, string, string?\), ControllerBase.File\(string, string, string?, bool\), ControllerBase.File\(string, string, DateTimeOffset?, EntityTagHeaderValue\), ControllerBase.File\(string, string, DateTimeOffset?, EntityTagHeaderValue, bool\), ControllerBase.File\(string, string, string?, DateTimeOffset?, EntityTagHeaderValue\), ControllerBase.File\(string, string, string?, DateTimeOffset?, EntityTagHeaderValue, bool\), ControllerBase.PhysicalFile\(string, string\), ControllerBase.PhysicalFile\(string, string, bool\), ControllerBase.PhysicalFile\(string, string, string?\), ControllerBase.PhysicalFile\(string, string, string?, bool\), ControllerBase.PhysicalFile\(string, string, DateTimeOffset?, EntityTagHeaderValue\), ControllerBase.PhysicalFile\(string, string, DateTimeOffset?, EntityTagHeaderValue, bool\), ControllerBase.PhysicalFile\(string, string, string?, DateTimeOffset?, EntityTagHeaderValue\), ControllerBase.PhysicalFile\(string, string, string?, DateTimeOffset?, EntityTagHeaderValue, bool\), ControllerBase.Unauthorized\(\), ControllerBase.Unauthorized\(object?\), ControllerBase.NotFound\(\), ControllerBase.NotFound\(object?\), ControllerBase.BadRequest\(\), ControllerBase.BadRequest\(object?\), ControllerBase.BadRequest\(ModelStateDictionary\), ControllerBase.UnprocessableEntity\(\), ControllerBase.UnprocessableEntity\(object?\), ControllerBase.UnprocessableEntity\(ModelStateDictionary\), ControllerBase.Conflict\(\), ControllerBase.Conflict\(object?\), ControllerBase.Conflict\(ModelStateDictionary\), ControllerBase.Problem\(string?, string?, int?, string?, string?\), ControllerBase.ValidationProblem\(ValidationProblemDetails\), ControllerBase.ValidationProblem\(ModelStateDictionary\), ControllerBase.ValidationProblem\(\), ControllerBase.ValidationProblem\(string?, string?, int?, string?, string?, ModelStateDictionary?\), ControllerBase.Created\(\), ControllerBase.Created\(string?, object?\), ControllerBase.Created\(Uri?, object?\), ControllerBase.CreatedAtAction\(string?, object?\), ControllerBase.CreatedAtAction\(string?, object?, object?\), ControllerBase.CreatedAtAction\(string?, string?, object?, object?\), ControllerBase.CreatedAtRoute\(string?, object?\), ControllerBase.CreatedAtRoute\(object?, object?\), ControllerBase.CreatedAtRoute\(string?, object?, object?\), ControllerBase.Accepted\(\), ControllerBase.Accepted\(object?\), ControllerBase.Accepted\(Uri\), ControllerBase.Accepted\(string?\), ControllerBase.Accepted\(string?, object?\), ControllerBase.Accepted\(Uri, object?\), ControllerBase.AcceptedAtAction\(string?\), ControllerBase.AcceptedAtAction\(string?, string?\), ControllerBase.AcceptedAtAction\(string?, object?\), ControllerBase.AcceptedAtAction\(string?, string?, object?\), ControllerBase.AcceptedAtAction\(string?, object?, object?\), ControllerBase.AcceptedAtAction\(string?, string?, object?, object?\), ControllerBase.AcceptedAtRoute\(object?\), ControllerBase.AcceptedAtRoute\(string?\), ControllerBase.AcceptedAtRoute\(string?, object?\), ControllerBase.AcceptedAtRoute\(object?, object?\), ControllerBase.AcceptedAtRoute\(string?, object?, object?\), ControllerBase.Challenge\(\), ControllerBase.Challenge\(params string\[\]\), ControllerBase.Challenge\(AuthenticationProperties\), ControllerBase.Challenge\(AuthenticationProperties, params string\[\]\), ControllerBase.Forbid\(\), ControllerBase.Forbid\(params string\[\]\), ControllerBase.Forbid\(AuthenticationProperties\), ControllerBase.Forbid\(AuthenticationProperties, params string\[\]\), ControllerBase.SignIn\(ClaimsPrincipal\), ControllerBase.SignIn\(ClaimsPrincipal, string\), ControllerBase.SignIn\(ClaimsPrincipal, AuthenticationProperties\), ControllerBase.SignIn\(ClaimsPrincipal, AuthenticationProperties, string\), ControllerBase.SignOut\(\), ControllerBase.SignOut\(AuthenticationProperties\), ControllerBase.SignOut\(params string\[\]\), ControllerBase.SignOut\(AuthenticationProperties, params string\[\]\), ControllerBase.TryUpdateModelAsync<TModel\>\(TModel\), ControllerBase.TryUpdateModelAsync<TModel\>\(TModel, string\), ControllerBase.TryUpdateModelAsync<TModel\>\(TModel, string, IValueProvider\), ControllerBase.TryUpdateModelAsync<TModel\>\(TModel, string, params Expression<Func<TModel, object?\>\>\[\]\), ControllerBase.TryUpdateModelAsync<TModel\>\(TModel, string, Func<ModelMetadata, bool\>\), ControllerBase.TryUpdateModelAsync<TModel\>\(TModel, string, IValueProvider, params Expression<Func<TModel, object?\>\>\[\]\), ControllerBase.TryUpdateModelAsync<TModel\>\(TModel, string, IValueProvider, Func<ModelMetadata, bool\>\), ControllerBase.TryUpdateModelAsync\(object, Type, string\), ControllerBase.TryUpdateModelAsync\(object, Type, string, IValueProvider, Func<ModelMetadata, bool\>\), ControllerBase.TryValidateModel\(object\), ControllerBase.TryValidateModel\(object, string?\), ControllerBase.HttpContext, ControllerBase.Request, ControllerBase.Response, ControllerBase.RouteData, ControllerBase.ModelState, ControllerBase.ControllerContext, ControllerBase.MetadataProvider, ControllerBase.ModelBinderFactory, ControllerBase.Url, ControllerBase.ObjectValidator, ControllerBase.ProblemDetailsFactory, ControllerBase.User, ControllerBase.Empty, object.Equals\(object?\), object.Equals\(object?, object?\), object.GetHashCode\(\), object.GetType\(\), object.ReferenceEquals\(object?, object?\), object.ToString\(\)

Constructors

UserController\(IMediator\)

Users controller constructor, injecting IMediator to send requests.

public UserController(IMediator mediator)

Parameters

mediator IMediator

Methods

ChangePassword\(Guid, ChangePasswordCommand\)

Change the password of a User.

[HttpPut("{userGuid}/password")] [ProducesResponseType(typeof(PasswordChangedDto), 200)] [ProducesResponseType(400)] [ProducesResponseType(401)] [ProducesResponseType(403)] [ProducesResponseType(500)] public Task<ActionResult<PasswordChangedDto>> ChangePassword(Guid userGuid, ChangePasswordCommand command)

Parameters

userGuid Guid

ID of the User.

command ChangePasswordCommand

Body of the request that contains current and new password.

Returns

Task < ActionResult <PasswordChangedDto\>\>

CreateUser\(CreateUserCommand\)

Creates a new User.

[HttpPost] [ProducesResponseType(typeof(UserResponse), 201)] [ProducesResponseType(400)] [ProducesResponseType(401)] [ProducesResponseType(403)] [ProducesResponseType(409)] [ProducesResponseType(500)] public Task<ActionResult<User>> CreateUser(CreateUserCommand command)

Parameters

command CreateUserCommand

The user infos to create.

Returns

Task < ActionResult <User\>\>

DeleteUser\(Guid\)

Deletes a User.

[HttpDelete("{userGuid}")] [ProducesResponseType(204)] [ProducesResponseType(400)] [ProducesResponseType(401)] [ProducesResponseType(403)] [ProducesResponseType(404)] public Task<ActionResult<Unit>> DeleteUser(Guid userGuid)

Parameters

userGuid Guid

The unique identifier of the user to delete.

Returns

Task < ActionResult <Unit\>\>

GetAllUsers\(\)

Gets a list of all Users.

[HttpGet] [Authorize(Roles = "Admin")] [ProducesResponseType(typeof(IEnumerable<UserResponse>), 200)] [ProducesResponseType(401)] [ProducesResponseType(403)] [ProducesResponseType(500)] public Task<ActionResult<IEnumerable<UserResponse>>> GetAllUsers()

Returns

Task < ActionResult < IEnumerable <UserResponse\>\>\>

GetAllUsersByRestaurantId\(Guid\)

Gets a list of all Users by their RestaurantId.

[HttpGet("restaurants/{restaurantGuid}/users")] [Authorize(Roles = "Admin, Owner")] [ProducesResponseType(typeof(IEnumerable<UserResponse>), 200)] [ProducesResponseType(401)] [ProducesResponseType(403)] [ProducesResponseType(500)] public Task<ActionResult<IEnumerable<UserResponse>>> GetAllUsersByRestaurantId(Guid restaurantGuid)

Parameters

restaurantGuid Guid

Returns

Task < ActionResult < IEnumerable <UserResponse\>\>\>

GetUserById\(Guid\)

Gets a specific User by their unique identifier.

[HttpGet("{userGuid}")] [ProducesResponseType(typeof(UserResponse), 200)] [ProducesResponseType(400)] [ProducesResponseType(401)] [ProducesResponseType(403)] [ProducesResponseType(404)] [ProducesResponseType(500)] public Task<ActionResult<User>> GetUserById(Guid userGuid)

Parameters

userGuid Guid

The unique identifier for the user.

Returns

Task < ActionResult <User\>\>

PasswordReset\(UserResetPasswordCommand\)

Verify password reset token validity and reset password.

[HttpPost("password-reset")] [ProducesResponseType(204)] [ProducesResponseType(400)] [ProducesResponseType(401)] [ProducesResponseType(404)] [ProducesResponseType(500)] public Task<ActionResult<Unit>> PasswordReset(UserResetPasswordCommand command)

Parameters

command UserResetPasswordCommand

Body of the request that contains user's reset token.

Returns

Task < ActionResult <Unit\>\>

PasswordResetRequest\(UserResetPasswordInquiryCommand\)

Send an email to a user to reset his password.

[HttpPost("password-reset-request")] [ProducesResponseType(204)] [ProducesResponseType(400)] [ProducesResponseType(404)] [ProducesResponseType(408)] [ProducesResponseType(500)] [ProducesResponseType(503)] public Task<ActionResult<Unit>> PasswordResetRequest(UserResetPasswordInquiryCommand command)

Parameters

command UserResetPasswordInquiryCommand

Body of the request that contains user's email.

Returns

Task < ActionResult <Unit\>\>

PasswordResetTokenValidation\(UserVerifyResetTokenCommand\)

Verify password reset token validity.

[HttpPost("validate-password-token")] [ProducesResponseType(204)] [ProducesResponseType(400)] [ProducesResponseType(401)] [ProducesResponseType(404)] [ProducesResponseType(500)] public Task<ActionResult<Unit>> PasswordResetTokenValidation(UserVerifyResetTokenCommand command)

Parameters

command UserVerifyResetTokenCommand

Body of the request that contains user's reset token.

Returns

Task < ActionResult <Unit\>\>

ReorderProducts\(ReorderStaffsCommand\)

Update users by bulk to change their order.

[HttpPut("reorder")] [Authorize(Roles = "Admin, Owner")] [ProducesResponseType(typeof(User), 204)] [ProducesResponseType(400)] [ProducesResponseType(401)] [ProducesResponseType(403)] [ProducesResponseType(404)] [ProducesResponseType(500)] public Task<ActionResult<Unit>> ReorderProducts(ReorderStaffsCommand command)

Parameters

command ReorderStaffsCommand

Dictionary that contain Guid and SortingIndex of the Users.

Returns

Task < ActionResult <Unit\>\>

The updated user.

UpdateUser\(Guid, UpdateUserCommand\)

Updates an existing User.

[HttpPut("{userGuid}")] [ProducesResponseType(typeof(User), 200)] [ProducesResponseType(400)] [ProducesResponseType(401)] [ProducesResponseType(403)] [ProducesResponseType(404)] [ProducesResponseType(409)] [ProducesResponseType(500)] public Task<ActionResult<User>> UpdateUser(Guid userGuid, UpdateUserCommand command)

Parameters

userGuid Guid

The unique identifier of the user to update.

command UpdateUserCommand

The updates to apply to the user.

Returns

Task < ActionResult <User\>\>

Last modified: 21 May 2024