Error 500 when trying to edit a user with Angular and REST API

Discussão em 'Angular' iniciado por HadesKerbecs, Abril 4, 2025.

  1. HadesKerbecs

    HadesKerbecs Guest

    I'm developing an Angular application that interacts with a REST API for user registration and editing. Registration works fine, but when trying to edit a user, I receive a 500 (Internal Server Error).

    Details Framework: Angular 17

    HTTP Method: PUT

    Endpoint: 'API'/{id}

    Authentication: Bearer Token

    What have I tried? Tested the same JSON in JSONLint, and it's valid.

    Checked if the token is present and correct.

    Verified that the user has a valid cadastro_tipo_id (some had null, so I set a default value).

    Tried removing optional fields to see if any specific data was causing the issue, but the error persists.

    editar(usuario: CadastroRequest, atualizarLista: boolean): void {
    console.log(" Sending user edit request:", usuario);

    const token = localStorage.getItem('access_token');
    if (!token) {
    console.error('❌ Error: Token not found.');
    return;
    }

    const headers = new HttpHeaders({
    'Authorization': `Bearer ${token}`,
    'Accept': 'application/json',
    'Content-Type': 'application/json'
    });

    const url = `https://desenvolvimento.maxdata.com.br/api/v1/Cadastro/${usuario.id}`;

    this.http.put<CadastroRequest>(url, usuario, { headers }).subscribe({
    next: (usuarioEditado) => {
    console.log("✅ User successfully edited:", usuarioEditado);
    },
    error: (error) => {
    console.error("❌ Error editing user:", error);
    console.error(" Status Code:", error.status);
    console.error(" Status Text:", error.statusText);
    console.error(" Request URL:", error.url);
    console.error("⚠️ Error details:", error.error);
    }
    });
    }


    listar(): void {
    const token = localStorage.getItem('access_token');
    if (!token) {
    console.error('❌ Erro: Token não encontrado.');
    return;
    }

    const headers = new HttpHeaders({
    'Authorization': `Bearer ${token}`,
    'Content-Type': 'application/json'
    });

    const url = `${this.consultaAPICadastroService.apiUrl}?limit=580`;
    console.log(' Enviando requisição GET para:', url);

    this.http.get<CadastroResponse>(url, { headers }).subscribe({
    next: (response) => {
    const novosUsuarios = response.itens || response || [];
    this.usuariosCadastrados.next(novosUsuarios);
    console.log('✅ Lista atualizada:', novosUsuarios);
    },
    error: (err) => {
    console.error('❌ Erro ao listar usuários:', err);
    }
    });
    }


    COMPONENT

    editarUsuario(): void {
    if (this.usuarioForm.valid) {
    const usuarioEditado: CadastroRequest = this.usuarioForm.value;

    if (!usuarioEditado.cadastro_tipo_id) {
    usuarioEditado.cadastro_tipo_id = 2;
    console.warn("⚠️ cadastro_tipo_id estava ausente. Definindo para:", usuarioEditado.cadastro_tipo_id);
    }

    this.service.editar(usuarioEditado, true);

    console.log("✅ Requisição enviada!");
    } else {
    console.warn("⚠️ Formulário inválido, verifique os campos!");
    }

    this.usuarioForm.reset();
    this.editando = false;
    this.formAberto = false;

    console.log(" Formulário resetado e modal fechado.");
    }

    Continue reading...

Compartilhe esta Página