OiO.lk Community platform!

Oio.lk is an excellent forum for developers, providing a wide range of resources, discussions, and support for those in the developer community. Join oio.lk today to connect with like-minded professionals, share insights, and stay updated on the latest trends and technologies in the development field.
  You need to log in or register to access the solved answers to this problem.
  • You have reached the maximum number of guest views allowed
  • Please register below to remove this limitation

Passing Data structure and Retrieve Data structure in ReactJs / Aps.Net Core 7 Web application

  • Thread starter Thread starter Chinthaka Senarathna
  • Start date Start date
C

Chinthaka Senarathna

Guest
Frontend

-> This is the my API(backend) call method and Sending object structure

Code:
const response = await axiosInstance.put(UPDATE_USEREMAIL, {
            userEmail
});

-> This axiosInstance is,

Code:
import axios from 'axios';
import { HOST_API_KEY } from './globalConfig';

const axiosInstance = axios.create({ baseURL: HOST_API_KEY });

axiosInstance.interceptors.response.use(
    (response) => response, // if return the succesfull response
    (error) =>              // if has error
        Promise.reject(
            (error.response && error.response) || 'General Axios Error happend'
        )
);

export default axiosInstance;

Backend

-> This is the Retrieving object structure

Code:
using System.ComponentModel.DataAnnotations;

namespace backend_dotnet7.Core.Dtos.Auth
{
    public class UpdateUserEmailDto
    {
        [Required(ErrorMessage = "User Email is required")]
        public string? Email { get; set; }
    }
}

-> This is the API method

Code:
[HttpPut]
[Route("updateUserEmail")]
[Authorize]
public async Task<ActionResult<UpdateUserEmailResponseDto>> updateUserEmail(UpdateUserEmailDto 
updateUserEmailDto)     
{
    try
    {
        var userId = User.FindFirst(ClaimTypes.NameIdentifier)?.Value;
        if (userId is null)
        {
            return StatusCode(StatusCodes.Status400BadRequest, "Can't find user, Please contact 
            admin");                                  
        }

        var isExists = await _userManager.FindByIdAsync(userId);
        if (isExists is null)
        {
            return StatusCode(StatusCodes.Status404NotFound, "User does not exists");
        }

        if(updateUserEmailDto.Email is null)
        {
            return StatusCode(StatusCodes.Status400BadRequest, "null");
        }

        var isValid = await _userEmailService.EmailValidation(updateUserEmailDto.Email);

        if (!isValid)
        { 
            return StatusCode(StatusCodes.Status400BadRequest, "User Email is invalid");
        }

        isExists.Email = updateUserEmailDto.Email;

        var result = await _userManager.UpdateAsync(isExists);

        if (!result.Succeeded)
        {
            var errors = result.Errors.Select(e => e.Description).ToList();
            return StatusCode(StatusCodes.Status400BadRequest, errors);
        }

        var userInfoObject = new UserInfoResult
        {
            Id = isExists.Id,
            FirstName = isExists.FirstName,
            LastName = isExists.LastName,
            Email = isExists.Email,
            UserName = isExists.UserName,
            CreatedAt = isExists.CreatedAt,
            Roles = isExists.Roles
        };

        return new UpdateUserEmailResponseDto
        {
            userInfo = userInfoObject,
        };

    }
    catch (Exception ex)
    {
        _userLogger.LogError(ex.Message);
        return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
    }
}

-> Above codes is used in my project for update user email, I chacked by using swagger, then it perfectly working, but I checked using frontend code, then Always update email to '[email protected]' and not given Error... ?????

-> Can you suggest the error in my task ???

According to the above details, I checked in backend code by using swagger, then it properly work and update the database correctly. But I checked by connecting the backend to frontend, then Not given Error.... But Always update database to '[email protected]'....

I can't find solution for this problem ????

<p><strong>Frontend</strong></p>
<p>-> This is the my API(backend) call method and Sending object structure</p>
<pre><code>const response = await axiosInstance.put(UPDATE_USEREMAIL, {
userEmail
});
</code></pre>
<p>-> This axiosInstance is,</p>
<pre><code>import axios from 'axios';
import { HOST_API_KEY } from './globalConfig';

const axiosInstance = axios.create({ baseURL: HOST_API_KEY });

axiosInstance.interceptors.response.use(
(response) => response, // if return the succesfull response
(error) => // if has error
Promise.reject(
(error.response && error.response) || 'General Axios Error happend'
)
);

export default axiosInstance;
</code></pre>
<p><strong>Backend</strong></p>
<p>-> This is the Retrieving object structure</p>
<pre><code>using System.ComponentModel.DataAnnotations;

namespace backend_dotnet7.Core.Dtos.Auth
{
public class UpdateUserEmailDto
{
[Required(ErrorMessage = "User Email is required")]
public string? Email { get; set; }
}
}
</code></pre>
<p>-> This is the API method</p>
<pre><code>[HttpPut]
[Route("updateUserEmail")]
[Authorize]
public async Task<ActionResult<UpdateUserEmailResponseDto>> updateUserEmail(UpdateUserEmailDto
updateUserEmailDto)
{
try
{
var userId = User.FindFirst(ClaimTypes.NameIdentifier)?.Value;
if (userId is null)
{
return StatusCode(StatusCodes.Status400BadRequest, "Can't find user, Please contact
admin");
}

var isExists = await _userManager.FindByIdAsync(userId);
if (isExists is null)
{
return StatusCode(StatusCodes.Status404NotFound, "User does not exists");
}

if(updateUserEmailDto.Email is null)
{
return StatusCode(StatusCodes.Status400BadRequest, "null");
}

var isValid = await _userEmailService.EmailValidation(updateUserEmailDto.Email);

if (!isValid)
{
return StatusCode(StatusCodes.Status400BadRequest, "User Email is invalid");
}

isExists.Email = updateUserEmailDto.Email;

var result = await _userManager.UpdateAsync(isExists);

if (!result.Succeeded)
{
var errors = result.Errors.Select(e => e.Description).ToList();
return StatusCode(StatusCodes.Status400BadRequest, errors);
}

var userInfoObject = new UserInfoResult
{
Id = isExists.Id,
FirstName = isExists.FirstName,
LastName = isExists.LastName,
Email = isExists.Email,
UserName = isExists.UserName,
CreatedAt = isExists.CreatedAt,
Roles = isExists.Roles
};

return new UpdateUserEmailResponseDto
{
userInfo = userInfoObject,
};

}
catch (Exception ex)
{
_userLogger.LogError(ex.Message);
return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
}
}
</code></pre>
<p>-> Above codes is used in my project for update user email, I chacked by using swagger, then it perfectly working, but I checked using frontend code, then Always update email to '[email protected]' and not given Error... ?????</p>
<p>-> Can you suggest the error in my task ???</p>
<p>According to the above details,
I checked in backend code by using swagger, then it properly work and update the database correctly.
But I checked by connecting the backend to frontend, then Not given Error....
But Always update database to '[email protected]'....</p>
<p>I can't find solution for this problem ????</p>
 
Top