1
resposta

Requisição de agendamento sempre da falha.

Sempre que envio o form de agendamento, ele dá falha (cai no erro do envio do form). Quando vou inspecionar o erro, no terminal não apresentada nada e na aba Network do Browser não existe nenhum método post, apesar do meu serviço ser feito via post.

agendamentos-service.ts

import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';

@Injectable()
export class AgendamentosServiceProvider {

  private _url = 'http://localhost:8080/api';

  constructor(private _http: HttpClient) {
  }

  agenda(agendamento) {
    return this._http.post(this._url+'/agendamento/agenda', agendamento);
  }

}

cadastro.ts

import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams, AlertController, Alert } from 'ionic-angular';
import { Carro } from '../../modelos/carro';
import { AgendamentosServiceProvider } from '../../providers/agendamentos-service/agendamentos-service';
import { HomePage } from '../home/home';
import { Agendamento } from '../../modelos/agendamento';


@IonicPage()
@Component({
  selector: 'page-cadastro',
  templateUrl: 'cadastro.html',
})
export class CadastroPage {
  public carro: Carro;
  public precoTotal: number;
  private _alerta: Alert;

  public nome: string = '';
  public endereco: string = '';
  public email: string = '';
  public data: string = new Date().toISOString();


  constructor(
    public navCtrl: NavController,
    public navParams: NavParams,
    private _alertCtrl: AlertController,
    private _agendamentosService: AgendamentosServiceProvider) {

      this.carro = this.navParams.get('carroSelecionado');
      this.precoTotal = this.navParams.get('precoTotal');
    }

  agenda() {
    if (!this.nome || !this.endereco || !this.email) {
      this._alertCtrl.create({
        title: 'Preenchimento obrigatório',
        subTitle: 'Preencha todos os campos!',
        buttons: [
          { text: 'ok' }
        ]
      }).present();

      return;
    }

    let agendamento: Agendamento = {
      nomeCliente: this.nome,
      enderecoCliente: this.endereco,
      emailCliente: this.email,
      modeloCarro: this.carro.nome,
      precoTotal: this.precoTotal
    };

    this._alerta = this._alertCtrl.create({
      title: 'Aviso',
      buttons: [
        {
          text: 'ok',
          handler: () => {
            this.navCtrl.setRoot(HomePage);
          }
        }
      ]
    });

    let mensagem = '';

    this._agendamentosService.agenda(agendamento)
        .finally(
          () => {
            this._alerta.setSubTitle(mensagem);
            this._alerta.present();
          }
        )
        .subscribe(
          () => {
            mensagem = 'Agendamento realizado!';
          },
          () => {
            mensagem = 'Falha no agendamento! Tente novamente mais tarde!';
          }
        );
  }

}
1 resposta

Boa noite, Virginia! Como vai?

Ao enviar a requisição de agendamento não aparece nenhum log no terminal onde está rodando o Ionic e nem no terminal onde está rodando a API? Se aparece, vc poderia postar ele aqui para eu dar uma olhada e tentar te ajudar?

Espero que esteja curtindo e aproveitando ao máximo o conteúdo do curso!

Grande abraço e bons estudos, minha aluna!