mirror of
https://github.com/guilhermewerner/java-spark
synced 2025-06-18 21:24:18 +00:00
Add example project
This commit is contained in:
49
.classpath
Normal file
49
.classpath
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<classpath>
|
||||||
|
<classpathentry kind="src" output="target/classes" path="src/main/java">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="optional" value="true"/>
|
||||||
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="test" value="true"/>
|
||||||
|
<attribute name="optional" value="true"/>
|
||||||
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="src" path="target/generated-sources/annotations">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="optional" value="true"/>
|
||||||
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
|
<attribute name="ignore_optional_problems" value="true"/>
|
||||||
|
<attribute name="m2e-apt" value="true"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="src" output="target/test-classes" path="target/generated-test-sources/test-annotations">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="optional" value="true"/>
|
||||||
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
|
<attribute name="ignore_optional_problems" value="true"/>
|
||||||
|
<attribute name="m2e-apt" value="true"/>
|
||||||
|
<attribute name="test" value="true"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="output" path="target/classes"/>
|
||||||
|
</classpath>
|
34
.project
Normal file
34
.project
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<projectDescription>
|
||||||
|
<name>03ProdutoService</name>
|
||||||
|
<comment></comment>
|
||||||
|
<projects>
|
||||||
|
</projects>
|
||||||
|
<buildSpec>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.m2e.core.maven2Builder</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
</buildSpec>
|
||||||
|
<natures>
|
||||||
|
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||||
|
<nature>org.eclipse.m2e.core.maven2Nature</nature>
|
||||||
|
</natures>
|
||||||
|
<filteredResources>
|
||||||
|
<filter>
|
||||||
|
<id>1631728775121</id>
|
||||||
|
<name></name>
|
||||||
|
<type>30</type>
|
||||||
|
<matcher>
|
||||||
|
<id>org.eclipse.core.resources.regexFilterMatcher</id>
|
||||||
|
<arguments>node_modules|.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments>
|
||||||
|
</matcher>
|
||||||
|
</filter>
|
||||||
|
</filteredResources>
|
||||||
|
</projectDescription>
|
18
pom.xml
Normal file
18
pom.xml
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<groupId>com.ti2cc</groupId>
|
||||||
|
<artifactId>03ProdutoService</artifactId>
|
||||||
|
<version>0.0.1-SNAPSHOT</version>
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.sparkjava</groupId>
|
||||||
|
<artifactId>spark-core</artifactId>
|
||||||
|
<version>2.9.3</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.slf4j</groupId>
|
||||||
|
<artifactId>slf4j-simple</artifactId>
|
||||||
|
<version>1.7.21</version>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
</project>
|
BIN
produto.dat
Normal file
BIN
produto.dat
Normal file
Binary file not shown.
23
src/main/java/app/Aplicacao.java
Normal file
23
src/main/java/app/Aplicacao.java
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
package app;
|
||||||
|
|
||||||
|
import static spark.Spark.*;
|
||||||
|
|
||||||
|
import service.ProdutoService;
|
||||||
|
|
||||||
|
public class Aplicacao {
|
||||||
|
private static ProdutoService produtoService = new ProdutoService();
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
port(6789);
|
||||||
|
|
||||||
|
post("/produto", (request, response) -> produtoService.add(request, response));
|
||||||
|
|
||||||
|
get("/produto/:id", (request, response) -> produtoService.get(request, response));
|
||||||
|
|
||||||
|
get("/produto/update/:id", (request, response) -> produtoService.update(request, response));
|
||||||
|
|
||||||
|
get("/produto/delete/:id", (request, response) -> produtoService.remove(request, response));
|
||||||
|
|
||||||
|
get("/produto", (request, response) -> produtoService.getAll(request, response));
|
||||||
|
}
|
||||||
|
}
|
123
src/main/java/dao/ProdutoDAO.java
Normal file
123
src/main/java/dao/ProdutoDAO.java
Normal file
@ -0,0 +1,123 @@
|
|||||||
|
package dao;
|
||||||
|
|
||||||
|
import model.Produto;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileInputStream;
|
||||||
|
import java.io.FileOutputStream;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.ObjectInputStream;
|
||||||
|
import java.io.ObjectOutputStream;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class ProdutoDAO {
|
||||||
|
private List<Produto> produtos;
|
||||||
|
private int maxId = 0;
|
||||||
|
|
||||||
|
private File file;
|
||||||
|
private FileOutputStream fos;
|
||||||
|
private ObjectOutputStream outputFile;
|
||||||
|
|
||||||
|
public int getMaxId() {
|
||||||
|
return maxId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ProdutoDAO(String filename) throws IOException {
|
||||||
|
file = new File(filename);
|
||||||
|
produtos = new ArrayList<Produto>();
|
||||||
|
if (file.exists()) {
|
||||||
|
readFromFile();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void add(Produto produto) {
|
||||||
|
try {
|
||||||
|
produtos.add(produto);
|
||||||
|
this.maxId = (produto.getId() > this.maxId) ? produto.getId() : this.maxId;
|
||||||
|
this.saveToFile();
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.out.println("ERRO ao gravar o produto '" + produto.getDescricao() + "' no disco!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Produto get(int id) {
|
||||||
|
for (Produto produto : produtos) {
|
||||||
|
if (id == produto.getId()) {
|
||||||
|
return produto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void update(Produto p) {
|
||||||
|
int index = produtos.indexOf(p);
|
||||||
|
if (index != -1) {
|
||||||
|
produtos.set(index, p);
|
||||||
|
this.saveToFile();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void remove(Produto p) {
|
||||||
|
int index = produtos.indexOf(p);
|
||||||
|
if (index != -1) {
|
||||||
|
produtos.remove(index);
|
||||||
|
this.saveToFile();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Produto> getAll() {
|
||||||
|
return produtos;
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<Produto> readFromFile() {
|
||||||
|
produtos.clear();
|
||||||
|
Produto produto = null;
|
||||||
|
try (FileInputStream fis = new FileInputStream(file);
|
||||||
|
ObjectInputStream inputFile = new ObjectInputStream(fis)) {
|
||||||
|
|
||||||
|
while (fis.available() > 0) {
|
||||||
|
produto = (Produto) inputFile.readObject();
|
||||||
|
produtos.add(produto);
|
||||||
|
maxId = (produto.getId() > maxId) ? produto.getId() : maxId;
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.out.println("ERRO ao gravar produto no disco!");
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return produtos;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void saveToFile() {
|
||||||
|
try {
|
||||||
|
fos = new FileOutputStream(file, false);
|
||||||
|
outputFile = new ObjectOutputStream(fos);
|
||||||
|
|
||||||
|
for (Produto produto : produtos) {
|
||||||
|
outputFile.writeObject(produto);
|
||||||
|
}
|
||||||
|
outputFile.flush();
|
||||||
|
this.close();
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.out.println("ERRO ao gravar produto no disco!");
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void close() throws IOException {
|
||||||
|
outputFile.close();
|
||||||
|
fos.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void finalize() throws Throwable {
|
||||||
|
try {
|
||||||
|
this.saveToFile();
|
||||||
|
this.close();
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.out.println("ERRO ao salvar a base de dados no disco!");
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
111
src/main/java/model/Produto.java
Normal file
111
src/main/java/model/Produto.java
Normal file
@ -0,0 +1,111 @@
|
|||||||
|
package model;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
public class Produto implements Serializable {
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
public static final String DESCRICAO_PADRAO = "Novo Produto";
|
||||||
|
public static final int MAX_ESTOQUE = 1000;
|
||||||
|
private int id;
|
||||||
|
private String descricao;
|
||||||
|
private float preco;
|
||||||
|
private int quantidade;
|
||||||
|
private LocalDateTime dataFabricacao;
|
||||||
|
private LocalDate dataValidade;
|
||||||
|
|
||||||
|
public Produto() {
|
||||||
|
id = -1;
|
||||||
|
descricao = DESCRICAO_PADRAO;
|
||||||
|
preco = 0.01F;
|
||||||
|
quantidade = 0;
|
||||||
|
dataFabricacao = LocalDateTime.now();
|
||||||
|
dataValidade = LocalDate.now().plusMonths(6); // o default é uma validade de 6 meses.
|
||||||
|
}
|
||||||
|
|
||||||
|
public Produto(int id, String descricao, float preco, int quantidade, LocalDateTime fabricacao, LocalDate v) {
|
||||||
|
setId(id);
|
||||||
|
setDescricao(descricao);
|
||||||
|
setPreco(preco);
|
||||||
|
setQuant(quantidade);
|
||||||
|
setDataFabricacao(fabricacao);
|
||||||
|
setDataValidade(v);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(int id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDescricao() {
|
||||||
|
return descricao;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDescricao(String descricao) {
|
||||||
|
if (descricao.length() >= 3)
|
||||||
|
this.descricao = descricao;
|
||||||
|
}
|
||||||
|
|
||||||
|
public float getPreco() {
|
||||||
|
return preco;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPreco(float preco) {
|
||||||
|
if (preco > 0)
|
||||||
|
this.preco = preco;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getQuant() {
|
||||||
|
return quantidade;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setQuant(int quantidade) {
|
||||||
|
if (quantidade >= 0 && quantidade <= MAX_ESTOQUE)
|
||||||
|
this.quantidade = quantidade;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LocalDate getDataValidade() {
|
||||||
|
return dataValidade;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LocalDateTime getDataFabricacao() {
|
||||||
|
return dataFabricacao;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDataFabricacao(LocalDateTime dataFabricacao) {
|
||||||
|
// Pega a Data Atual
|
||||||
|
LocalDateTime agora = LocalDateTime.now();
|
||||||
|
// Garante que a data de fabricação não pode ser futura
|
||||||
|
if (agora.compareTo(dataFabricacao) >= 0)
|
||||||
|
this.dataFabricacao = dataFabricacao;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDataValidade(LocalDate dataValidade) {
|
||||||
|
// a data de fabricação deve ser anterior é data de validade.
|
||||||
|
if (getDataFabricacao().isBefore(dataValidade.atStartOfDay()))
|
||||||
|
this.dataValidade = dataValidade;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean emValidade() {
|
||||||
|
return LocalDateTime.now().isBefore(this.getDataValidade().atTime(23, 59));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Método sobreposto da classe Object. É executado quando um objeto precisa ser
|
||||||
|
* exibido na forma de String.
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Produto: " + descricao + " Preço: R$" + preco + " Quant.: " + quantidade + " Fabricação: "
|
||||||
|
+ dataFabricacao + " Data de Validade: " + dataValidade;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object obj) {
|
||||||
|
return (this.getId() == ((Produto) obj).getId());
|
||||||
|
}
|
||||||
|
}
|
113
src/main/java/service/ProdutoService.java
Normal file
113
src/main/java/service/ProdutoService.java
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
package service;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
import dao.ProdutoDAO;
|
||||||
|
import model.Produto;
|
||||||
|
import spark.Request;
|
||||||
|
import spark.Response;
|
||||||
|
|
||||||
|
public class ProdutoService {
|
||||||
|
private ProdutoDAO produtoDAO;
|
||||||
|
|
||||||
|
public ProdutoService() {
|
||||||
|
try {
|
||||||
|
produtoDAO = new ProdutoDAO("produto.dat");
|
||||||
|
} catch (IOException e) {
|
||||||
|
System.out.println(e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object add(Request request, Response response) {
|
||||||
|
String descricao = request.queryParams("descricao");
|
||||||
|
float preco = Float.parseFloat(request.queryParams("preco"));
|
||||||
|
int quantidade = Integer.parseInt(request.queryParams("quantidade"));
|
||||||
|
LocalDateTime dataFabricacao = LocalDateTime.parse(request.queryParams("dataFabricacao"));
|
||||||
|
LocalDate dataValidade = LocalDate.parse(request.queryParams("dataValidade"));
|
||||||
|
|
||||||
|
int id = produtoDAO.getMaxId() + 1;
|
||||||
|
|
||||||
|
Produto produto = new Produto(id, descricao, preco, quantidade, dataFabricacao, dataValidade);
|
||||||
|
|
||||||
|
produtoDAO.add(produto);
|
||||||
|
|
||||||
|
response.status(201); // 201 Created
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object get(Request request, Response response) {
|
||||||
|
int id = Integer.parseInt(request.params(":id"));
|
||||||
|
|
||||||
|
Produto produto = (Produto) produtoDAO.get(id);
|
||||||
|
|
||||||
|
if (produto != null) {
|
||||||
|
response.header("Content-Type", "application/xml");
|
||||||
|
response.header("Content-Encoding", "UTF-8");
|
||||||
|
|
||||||
|
return "<produto>\n" + "\t<id>" + produto.getId() + "</id>\n" + "\t<descricao>" + produto.getDescricao()
|
||||||
|
+ "</descricao>\n" + "\t<preco>" + produto.getPreco() + "</preco>\n" + "\t<quantidade>"
|
||||||
|
+ produto.getQuant() + "</quantidade>\n" + "\t<fabricacao>" + produto.getDataFabricacao()
|
||||||
|
+ "</fabricacao>\n" + "\t<validade>" + produto.getDataValidade() + "</validade>\n" + "</produto>\n";
|
||||||
|
} else {
|
||||||
|
response.status(404); // 404 Not found
|
||||||
|
return "Produto " + id + " não encontrado.";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object update(Request request, Response response) {
|
||||||
|
int id = Integer.parseInt(request.params(":id"));
|
||||||
|
|
||||||
|
Produto produto = (Produto) produtoDAO.get(id);
|
||||||
|
|
||||||
|
if (produto != null) {
|
||||||
|
produto.setDescricao(request.queryParams("descricao"));
|
||||||
|
produto.setPreco(Float.parseFloat(request.queryParams("preco")));
|
||||||
|
produto.setQuant(Integer.parseInt(request.queryParams("quantidade")));
|
||||||
|
produto.setDataFabricacao(LocalDateTime.parse(request.queryParams("dataFabricacao")));
|
||||||
|
produto.setDataValidade(LocalDate.parse(request.queryParams("dataValidade")));
|
||||||
|
|
||||||
|
produtoDAO.update(produto);
|
||||||
|
|
||||||
|
return id;
|
||||||
|
} else {
|
||||||
|
response.status(404); // 404 Not found
|
||||||
|
return "Produto não encontrado.";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object remove(Request request, Response response) {
|
||||||
|
int id = Integer.parseInt(request.params(":id"));
|
||||||
|
|
||||||
|
Produto produto = (Produto) produtoDAO.get(id);
|
||||||
|
|
||||||
|
if (produto != null) {
|
||||||
|
|
||||||
|
produtoDAO.remove(produto);
|
||||||
|
|
||||||
|
response.status(200); // success
|
||||||
|
return id;
|
||||||
|
} else {
|
||||||
|
response.status(404); // 404 Not found
|
||||||
|
return "Produto não encontrado.";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object getAll(Request request, Response response) {
|
||||||
|
StringBuffer returnValue = new StringBuffer("<produtos type=\"array\">");
|
||||||
|
for (Produto produto : produtoDAO.getAll()) {
|
||||||
|
returnValue.append("\n<produto>\n" + "\t<id>" + produto.getId() + "</id>\n" + "\t<descricao>"
|
||||||
|
+ produto.getDescricao() + "</descricao>\n" + "\t<preco>" + produto.getPreco() + "</preco>\n"
|
||||||
|
+ "\t<quantidade>" + produto.getQuant() + "</quantidade>\n" + "\t<fabricacao>"
|
||||||
|
+ produto.getDataFabricacao() + "</fabricacao>\n" + "\t<validade>" + produto.getDataValidade()
|
||||||
|
+ "</validade>\n" + "</produto>\n");
|
||||||
|
}
|
||||||
|
returnValue.append("</produtos>");
|
||||||
|
response.header("Content-Type", "application/xml");
|
||||||
|
response.header("Content-Encoding", "UTF-8");
|
||||||
|
return returnValue.toString();
|
||||||
|
}
|
||||||
|
}
|
186
src/main/resources/formulario.html
Normal file
186
src/main/resources/formulario.html
Normal file
@ -0,0 +1,186 @@
|
|||||||
|
<html>
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta content="text/html; charset = UTF-8" http-equiv="content-type">
|
||||||
|
|
||||||
|
<title>Controle de Estoque</title>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
function addIdToPath(form_name, base_url) {
|
||||||
|
var your_form = document.getElementById(form_name);
|
||||||
|
var id = your_form.elements.namedItem("id").value;
|
||||||
|
action_src = base_url + id;
|
||||||
|
your_form.action = action_src;
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<p>
|
||||||
|
<h1>Controle de Estoque</h1>
|
||||||
|
</p>
|
||||||
|
<section class="section--container__responsive">
|
||||||
|
<section class="section--mainrow__responsive first--section">
|
||||||
|
<h1 class="generaltext">Inserir Produto</h1>
|
||||||
|
<form class="form--register" action="http://localhost:6789/produto" method="post" id="form-add">
|
||||||
|
<p>Descrição:</p>
|
||||||
|
<input class="input--register" type="text" name="descricao" value="" placeholder="leite, pão...">
|
||||||
|
<p>Preco:</p>
|
||||||
|
<input class="input--register" type="text" name="preco" value="">
|
||||||
|
<p>Quantidade:</p>
|
||||||
|
<input class="input--register" type="text" name="quantidade" value="">
|
||||||
|
<p>Data de fabricação:</p>
|
||||||
|
<input class="input--register" type="text" name="dataFabricacao" value=""
|
||||||
|
placeholder="2020-04-16T12:00:00...">
|
||||||
|
<p>Data de validade:</p>
|
||||||
|
<input class="input--register" type="text" name="dataValidade" value="" placeholder="2020-04-16">
|
||||||
|
<input type="submit" value="cadastrar" class="input--main__style input--button">
|
||||||
|
</form>
|
||||||
|
</section>
|
||||||
|
</section>
|
||||||
|
<section class="section--container__responsive">
|
||||||
|
<section class="section--row__responsive">
|
||||||
|
<h1 class="generaltext">Detalhar produto</h1>
|
||||||
|
<form onsubmit="addIdToPath('form-get', 'http://localhost:6789/produto/')" method="get" id="form-get">
|
||||||
|
<input class="input--down" type="text" id="id" value="" placeholder="id do produto...">
|
||||||
|
<input type="submit" value="consultar" class="input--button input--consult__style">
|
||||||
|
</form>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<section class="section--row__responsive">
|
||||||
|
<h1 class="generaltext">Remover produto</h1>
|
||||||
|
<form onsubmit="addIdToPath('form-delete', 'http://localhost:6789/produto/delete/')" method="get"
|
||||||
|
id="form-delete">
|
||||||
|
<input class="input--down" type="text" id="id" value="" placeholder="id do produto...">
|
||||||
|
<input type="submit" value="remover" class="input--remove__style input--button">
|
||||||
|
</form>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<section class="section--row__responsive">
|
||||||
|
<h1 class="generaltext">Listar produtos</h1>
|
||||||
|
<form action="http://localhost:6789/produto" method="get" id="form-all">
|
||||||
|
<br><br><br>
|
||||||
|
<input type="submit" value="todos" class="input--consult__style input--button">
|
||||||
|
</form>
|
||||||
|
</section>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="section--container__responsive" style="visibility: hidden" id="product-result">
|
||||||
|
<table border="1">
|
||||||
|
<tr>
|
||||||
|
<td>Produto id:</td>
|
||||||
|
<td><span id="id">Sem Resultado</span></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Descricao:</td>
|
||||||
|
<td><span id="descricao">Sem Resultado</span></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Preco:</td>
|
||||||
|
<td><span id="preco">Sem Resultado</span></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Quantidade:</td>
|
||||||
|
<td><span id="quant">Sem Resultado</span></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Data de fabricacao:</td>
|
||||||
|
<td><span id="dataFabricacao">Sem Resultado</span></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
* {
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
background-color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.generaltext,
|
||||||
|
p {
|
||||||
|
font-family: Arial;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.section--container__responsive {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
border-bottom: dashed;
|
||||||
|
border-color: gray;
|
||||||
|
}
|
||||||
|
|
||||||
|
.input--down {
|
||||||
|
display: block;
|
||||||
|
margin: 0px auto;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.input--main__style {
|
||||||
|
background-color: #00FF00;
|
||||||
|
}
|
||||||
|
|
||||||
|
.input--remove__style {
|
||||||
|
background-color: red;
|
||||||
|
}
|
||||||
|
|
||||||
|
.input--consult__style {
|
||||||
|
background-color: darkblue;
|
||||||
|
}
|
||||||
|
|
||||||
|
.input--button {
|
||||||
|
font-weight: bold;
|
||||||
|
font-family: Arial;
|
||||||
|
font-size: medium;
|
||||||
|
border-color: transparent;
|
||||||
|
display: block;
|
||||||
|
margin: 0px auto;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.input--register {
|
||||||
|
display: inline;
|
||||||
|
}
|
||||||
|
|
||||||
|
.input--radio {
|
||||||
|
display: inline;
|
||||||
|
}
|
||||||
|
|
||||||
|
input {
|
||||||
|
display: block;
|
||||||
|
border-radius: 7px;
|
||||||
|
padding: 10px;
|
||||||
|
border-style: solid;
|
||||||
|
border-color: lightgray;
|
||||||
|
color: black;
|
||||||
|
padding: 10px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.p--radio__display {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
form p {
|
||||||
|
text-align: initial;
|
||||||
|
display: inline;
|
||||||
|
margin-left: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.p--nomargin {
|
||||||
|
margin-left: 0px;
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
Reference in New Issue
Block a user