Example #1
0
        public async Task <IActionResult> CreateAsync([FromBody] CreateUserRequest request)
        {
            logger.LogInformation($"Create user request: {JsonConvert.SerializeObject(request)}");

            if (!User.HasClaim(AuthConsts.Claims.Types.UserId, request.Id.ToString()))
            {
                logger.LogInformation($"You have no access to {request.Id}");
                return(StatusCode(403, $"You have no access to {request.Id}"));
            }

            var createResult = await userStorage.CreateOrUpdateAsync(request.ToUser()).ConfigureAwait(false);

            var user = createResult.Value;

            return(createResult.IsFailed
                ? StatusCode(500, createResult.Errors.First().Message)
                : Created(nameof(GetAsync), user));
        }