Tobe
Junho 26, 2021, 6:29pm
#1
Então, como faço para testar no OffsetDateTime no postman: o objeto é o que segue abaixo:
{
"descricao": "Desenvolver as interfaces CRUD cadastro de clientes",
"status": "ESPERA",
"prioridade": "MÉDIA",
"dataCadastro": "2021-06-26T18:28:54.403+00:00",
"dataPrevista": "2021-06-26T18:28:54.403+00:00",
"dataConclusao": "2021-06-26T18:28:54.403+00:00",
"funcionario": {
"id": 1
}
}
Vc quer testar usando o recurso de teste do postman mesmo? E o que vc quer testar nessa data?
Tobe
Junho 30, 2021, 1:15am
#3
Isso Lucas: basicamente os outros atributos funcionam, mas as datas não sei qual formato!
Tenta com esse formato: 2007-12-03T10:15:30+01:00
FONTE: Class OffsetDateTime
Tobe
Junho 30, 2021, 1:29am
#5
Boa noite amigo: estou na parte do front-end tentando recuperar os dados de um formulario abaixo:
<div class="container col-md-10">
<div class="card">
<div class="card-header">
<h4>Cadastrar Atividades</h4>
</div>
<div class="card-body">
<form action="">
<div class="form-group">
<label for="">DESCRIÇÃO</label>
<input #descricao type="text" class="form-control" style="background-color: lightblue;">
</div>
<br>
<br>
<div class="form-group">
<label for="selectStatus">STATUS</label>
<select #status class="form-control" id="idStatus" style="background-color: lightblue;">
<option selected>SELECIONE</option>
<option>AGENDADA</option>
<option>EM ANDAMENTO</option>
<option>CONCLUIDA</option>
</select>
</div>
<br>
<br>
<div class="form-group">
<label for="selectPrioridade">PRIORIDADE</label>
<select #prioridade class="form-control" id="idPrioridade" style="background-color: lightblue;">
<option selected>SELECIONE</option>
<option>ALTA</option>
<option>MEDIA</option>
<option>BAIXA</option>
</select>
</div>
<br>
<br>
<div class="form-group">
<label for="selectFuncionario">FUNCIONÁRIO</label>
<select #funcionario.nome class="form-control" id="idFuncionario" style="background-color: lightblue;">
<option selected>SELECIONE</option>
<option>Pompeo Cesar da Silva</option>
<option>Alexandrovina</option>
<option>Catarina</option>
</select>
</div>
<br>
<br>
<!--<label for="dataPrevista">DATA PREVISTA</label>
<div class="form-group">
<input #dataPrevista type="date" id="dataPrevista" name="dataPrevista" ng-model="example.value"
placeholder="yyyy-MM-dd hh:mm" min="2013-01-01" max="2030-12-31" required style="background-color: lightblue;"/>
</div>-->
<div class="botao">
<button (click)="Cadastrar(atividade)" class="btn btn-danger">Cadastrar</button>
</div>
</form>
</div>
</div>
</div>
Porém: a pergunta é como recuperar Atividade nesse componente angular abaixo?
import { HttpResponse } from '@angular/common/http';
import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { Atividade } from 'src/app/Modelo/Atividade';
import { ServiceService } from 'src/app/Service/service.service';
import { Funcionario } from 'src/app/Modelo/Funcionario';
@Component({
selector: 'app-adicionar',
templateUrl: './adicionar.component.html',
styleUrls: ['./adicionar.component.css']
})
export class AdicionarComponent implements OnInit {
atividade:Atividade;
constructor(private router:Router, private service:ServiceService) {}
ngOnInit(): void {
}
Cadastrar(atividade:Atividade){
this.service.createAtividade(atividade)
.subscribe(data=>{alert("Se agrego com exito...!!!");
this.router.navigate(["listar"]);
})
}
}
Como recupero uma atividade com esse modelo?
Tobe
Junho 30, 2021, 1:38am
#6
No spring sai: Required request body is missing:
Parece que está faltando vc configurar o form. Veja essa resposta aqui mesmo do GUJ: Erro angular 8 *ngForm
Do nada, tu mudou de dúvida. Conseguiu resolver o problema do OffsetDateTime ?
Tobe
Junho 30, 2021, 4:44pm
#8
A duvida do OffsetTime não: mas talves se conseguir inserir uma atividade, consigo cadastrar junto a data:
Entendi. O formato que passei, não deu certo de usar no postman não?
Tobe
Junho 30, 2021, 5:23pm
#10
Não tentei: eu preciso cadastrar uma atividade: depois cadastrar uma atividade com data: a parte do spring está pronta: eu ja consegui que a interface angular liste as atividades que cadastrei pelo postman: Porém: não consigo implementar o cadastro para cadastrar: quando tento cadastrar uma atividade pela interface que construi, a mensagem do spring é: No spring sai: Required request body is missing: = deduso dai que é um problema de construir uma atividade: não sei como instanciar a atividade no AdicionarModulo e recuperar os atributos no componente.html
Veja o link que mandei referente ao form em angular. Supondo que vc vá usar template-driven forms , vc deve usar ngModel nos inputs do form indicando a propriedade que será preenchida no objeto. E esse objeto que será preenchido será o que vc irá enviar no requisição http que será recebida pelo endpoint criado no spring.
Tobe
Junho 30, 2021, 11:13pm
#12
Então, já tentei de tudo, não consigo, não funciona!
Tobe
Junho 30, 2021, 11:14pm
#13
O componente está assim:
import { HttpResponse } from '@angular/common/http';
import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { FormGroup} from '@angular/forms';
import { FormBuilder } from '@angular/forms';
import { ReactiveFormsModule } from '@angular/forms';
import { FormControl } from '@angular/forms';
import { Atividade } from 'src/app/Modelo/Atividade';
import { ServiceService } from 'src/app/Service/service.service';
import { Funcionario } from 'src/app/Modelo/Funcionario';
@Component({
selector: 'app-adicionar',
templateUrl: './adicionar.component.html',
styleUrls: ['./adicionar.component.css']
})
export class AdicionarComponent implements OnInit {
atividade:Atividade;
formulario:FormGroup;
constructor(private formBuilder:FormBuilder, private router:Router, private service:ServiceService) {
}
ngOnInit(): void {
this.formulario = this.formBuilder.group({
descricao: [null],
status: [null],
prioridade: [null],
funcionario: [null]
//dataNascimento: new FormControl(cliente.dataNascimento),
})
}
OnSubmit(){
this.service.createAtividade(this.atividade)
.subscribe(data=>{alert("Se agrego com exito...!!!");
this.router.navigate(["listar"]);
console.log(this.formulario.value);
//this.formAtividade.reset(this.atividade);
})
}
}
Já a o html:
<div class="container col-md-10">
<div class="card">
<div class="card-header">
<h4>Cadastrar Atividades</h4>
</div>
<div class="card-body">
<form class="form-horizontal" [formGroup]="formulario" (ngSubmit)="OnSubmit()">
<div class="form-group">
<label for="" class="control-label" >DESCRIÇÃO</label>
<input type="text" id="descricao" formControl="descricao" class="form-control"
style="background-color: lightblue;">
</div>
<br>
<br>
<div class="form-group">formControlName
<label for="selectStatus">STATUS</label>
<select required class="form-control" id="status" formControl="status" formControlName="status" style="background-color: lightblue;">
<option selected>SELECIONE</option>
<option>AGENDADA</option>
<option>EM ANDAMENTO</option>
<option>CONCLUIDA</option>
</select>
</div>
<br>
<br>
<div class="form-group">
<label for="selectPrioridade">PRIORIDADE</label>
<select id="prioridade" formControl="prioridade" required class="form-control" style="background-color: lightblue;">
<option selected>SELECIONE</option>
<option>ALTA</option>
<option>MEDIA</option>
<option>BAIXA</option>
</select>
</div>
<br>
<br>
<div class="form-group">
<label for="selectFuncionario">FUNCIONÁRIO</label>
<select id="funcionario" formControl="funcionario" required class="form-control" id="idFuncionario" style="background-color: lightblue;">
<option selected>SELECIONE</option>
<option>Pompeo Cesar da Silva</option>
<option>Alexandrovina</option>
<option>Catarina</option>
</select>
</div>
<br>
<br>
<!--<label for="dataPrevista">DATA PREVISTA</label>
<div class="form-group">
<input #dataPrevista type="date" id="dataPrevista" name="dataPrevista" ng-model="example.value"
placeholder="yyyy-MM-dd hh:mm" min="2013-01-01" max="2030-12-31" required style="background-color: lightblue;"/>
</div>-->
<div class="botao">
<button type="submit" class="btn btn-primary">Cadastrar</button>
</div>
</form>
</div>
</div>
</div>
Acho que os formControl nos inputs estão errados:
Mude de:
formControl="prioridade"
para:
[(formControl)]="prioridade"
Tobe
Junho 30, 2021, 11:32pm
#15
Vou tentar:::::::: Como faço para testar ver se a atividade recebe os atributos: estou usando o mozila e o metodo: console.log() mas não sei onde visalizar a saída
Com o console.log, tu vê a saída no console do navegador (F12). Outra forma, seria usar o depurador, ou colocando o breakpoint pelo console do navegador ou usando a palavra-chave debugger na linha que vc quer que pare (só funciona com o console do navegador aberto).
Tobe
Julho 1, 2021, 12:01am
#17
Tenteti de tudo: não tem um exemplo completo:
Tobe
Julho 1, 2021, 1:37am
#18
Seguindo aquele exemplo que você postou: a teg que não funciona é essa:
[formGroup]
dessa parte
<form [formGroup]="profileForm" (ngSubmit)="onSubmit()">
Nessa parte:
this.service.createAtividade(this.atividade)
.subscribe(data=>{alert("Se agrego com exito...!!!");
Vc está enviando o this.atividade , porém o seu form está sendo preenchido em formulario . Desse jeito, sempre será enviado um valor vazio. Vc deve preencher a variável atividade com os dados da variável formulario (que estará preenchida com os dados do formulário do html).
Tente assim:
this.atividade = this.formulario.value;
this.service.createAtividade(this.atividade)
.subscribe(data=>{alert("Se agrego com exito...!!!");
Ou vc pode passar o formulário direto na requisição.
Tobe
Julho 1, 2021, 2:03am
#20
Agora consegui compila tudo, falta só isso: adicionar o formulario, para a atividade: