Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 15 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,15 @@
# t09tervikveeb

Spring veebirakenduse näide, kus
* Osa tegevusi/arvutusi on koondatud klasside sisse
* Arvutuste tulemusi testitakse
* Võimalusel talletatakse tegevuste ajalugu andmebaasi
* Võimalusel luuakse eraldi HTML-leht, mille kaudu pöördutakse REST teenuste poole

t09tervikveeb

Spring veebirakenduse näide, kus

Osa tegevusi/arvutusi on koondatud klasside sisse
Arvutuste tulemusi testitakse
Võimalusel talletatakse tegevuste ajalugu andmebaasi
Võimalusel luuakse eraldi HTML-leht, mille kaudu pöördutakse REST teenuste poole

Käsud:

scl enable rh-maven33 bash
mvn package
java -jar target/menyy-1.jar
PORT: 12236
42 changes: 42 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
<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 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>heino</groupId>
<artifactId>menyy</artifactId>
<packaging>jar</packaging>
<version>1</version>

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.2.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
9 changes: 9 additions & 0 deletions src/main/java/heino/MenyyHaldur.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package heino;

import javax.transaction.Transactional;
import org.springframework.data.repository.CrudRepository;

@Transactional
public interface MenyyHaldur extends CrudRepository<Toidud, Integer> {

}
84 changes: 84 additions & 0 deletions src/main/java/heino/Rakendus.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
package heino;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class Rakendus{



private final MenyyHaldur haldur;



@Autowired
public Rakendus(MenyyHaldur haldur) {
this.haldur = haldur;
}

@RequestMapping("/listall")
String listall(String toidu_nimetus) {
StringBuffer sb = new StringBuffer();
//Võtab andmebaasist toiduained
for (Toidud item : haldur.findAll()) {
sb.append(item);
}
String thead = "<tr><th>Id</th><th>Nimetus</th><th>Tüüp</th><th>Hind</th></tr>";
return thead + sb.toString();
}
@RequestMapping("/lisa")
///lisa?toidu_nimetus=Kartulid&toidu_tyyp=Praad&hind=3
public String lisa(String toidu_nimetus, String toidu_tyyp, double hind) {
Toidud toit = new Toidud();
toit.toidu_nimetus = toidu_nimetus;
toit.toidu_tyyp = toidu_tyyp;
toit.hind = hind;
haldur.save(toit);
return "Lisatud " + toidu_nimetus + " " + toidu_tyyp + " hinnaga " + hind+" euri ";
}

@RequestMapping("/kustuta")
String kustuta(Integer id) {
Toidud toit = haldur.findOne(id);
if(toit==null){return "Antud id-ga toitu ei leidu";}
//Kustutab tabelist toiduained vastava id-ga kirje
haldur.delete(toit);


return toit.toidu_nimetus + " " + " on kustutatud";

}

@RequestMapping("/hinnavahemik")
public String rasvaotsing(double hind_min, double hind_max){
StringBuffer sb = new StringBuffer();
for(Toidud item : haldur.findAll()){
if(item.hind > hind_min && item.hind < hind_max){
sb.append(item);
//return "Otsimine õnnestus";
}
}
//Tabeli lahtrite nimetused
String thead = "<tr><th>Id</th><th>Nimetus</th><th>Tüüp</th><th>Hind</th></tr>";
//Tagastab tabeli lahtrite nimetused ja sb-s oleva info
return thead + sb.toString();
}
public static void main(String[] args) {
System.getProperties().put("server.port", 12236);
/* System.getProperties().put("spring.datasource.url", "jdbc:mysql://localhost:3306/if16_heinop2rn?useSSl=false");
System.getProperties().put("spring.datasource.username", "if16");
System.getProperties().put("spring.datasource.password", "ifikad16"); */
SpringApplication.run(Rakendus.class);

}
}


//scl enable rh-maven33 bash
//mvn package
//java -jar target/menyy-1.jar
40 changes: 40 additions & 0 deletions src/main/java/heino/Toidud.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
package heino;

import javax.persistence.*;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name = "menyy")

public class Toidud {
@Id
@GeneratedValue
public Integer id;
public String toidu_nimetus;
public String toidu_tyyp;
public Double hind;
public Toidud(){

}


public Toidud(Integer id, String toidu_nimetus, String toidu_tyyp, double hind) {
this.id = id;
this.toidu_nimetus = toidu_nimetus;
this.toidu_tyyp = toidu_tyyp;
this.hind = hind;


}

@Override
public String toString() {
return "<tr><td>" + id + "</td><td>" + toidu_nimetus + "</td><td>" + toidu_tyyp + "</td><td>" + hind +
"</td><td>";
}


}
3 changes: 3 additions & 0 deletions src/main/resources/application.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
spring.datasource.url = jdbc:mysql://localhost/if16_heinop2rn
spring.datasource.username = if16
spring.datasource.password = ifikad16
99 changes: 99 additions & 0 deletions src/main/resources/public/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
<!DOCTYPE html>
<html>
<head>
<title>MENÜÜ</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

<style>
th {
text-align: left;
}
</style>

</head>

<body>
<center>

<h2>Menüü</h2>
<div>
<table id="foodList" class="table table-inverse"></table>
</div>

<h2>Lisa toit menüüsse</h2>
<label>Toidu nimetus</label><br>
<input id="toidu_nimetus" type="text"><br>
<label>Tüüp</label><br>
<input id="toidu_tyyp" type="text"><br>
<label>Hind</label><br>
<input id="hind" type="number"><br>


<input type="button" class="btn btn-success" value="lisa" onclick="addNewFood()">

<h2>Kustuta</h2>
<label>Toiduaine id</label><br>
<input id="deleteFoodByID" type="number">
<input type="button" class="btn btn-danger" value="kustuta" onclick="deleteFood()">

<h2>Otsi hinnavahemiku järgi </h2>
<label>Miinimum</label>
<input id="findFoodFatMin" type="number"><br>
<label>Maksimum</label>
<input id="findFoodFatMax" type="number"><br>
<input type="button" class="btn" value="Otsi" onclick="findFoodByFat()">
<br><br><br>



</center>
<script>
var connection = new XMLHttpRequest();
connection.onreadystatechange = foodData;

function displayAllFood() {
connection.open("GET", "/listall", true);
connection.send();
}
displayAllFood();

function addNewFood() {
//Võtab kõigile muutujatele sisestatud väärtuse HTML formist
var toidu_nimetus = document.getElementById("toidu_nimetus").value;
var toidu_tyyp = document.getElementById("toidu_tyyp").value;
var hind = document.getElementById("hind").value;

connection.open("GET", "/lisa?toidu_nimetus=" + toidu_nimetus + "&toidu_tyyp=" +
toidu_tyyp + "&hind=" + hind, true);
connection.send();
}

function deleteFood() {
var deleteFood = document.getElementById("deleteFoodByID").value;
connection.open("GET", "/kustuta?id=" + deleteFood, true);
connection.send();
}

function foodData() {
document.getElementById("foodList").innerHTML = connection.responseText;
}

function findFoodByFat(){
//Võtab HTML osast finFoodFatMin väärtuse
var findFoodFatMin = document.getElementById("findFoodFatMin").value;
var findFoodFatMax = document.getElementById("findFoodFatMax").value;
//Sisestab rasvaotsingusse Min ja Max väärtused, mille vahemiku võtab
connection.open("GET","/hinnavahemik?hind_min=" + findFoodFatMin + "&hind_max=" + findFoodFatMax, true);
connection.send();
}


</script>


</body>


</html>
41 changes: 41 additions & 0 deletions src/test/java/heino/RakendusTests.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package heino;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.*;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
import org.springframework.boot.test.web.client.TestRestTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.junit4.SpringRunner;


@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment=WebEnvironment.RANDOM_PORT)
public class RakendusTests {

@Autowired
private TestRestTemplate restTemplate;

@Test
public void toiduLisamine(){
assertEquals("Lisatud Kartulisalat Salat hinnaga 2.0 euri ", this.restTemplate.getForObject("/lisa?toidu_nimetus=Kartulisalat&toidu_tyyp=Salat&hind=2", String.class));
//getForObject - URLi andmine
}


//Vahemiku otsimise testimine
@Test
public void otsimineVahemikust(){
assertEquals("<tr><th>Id</th><th>Nimetus</th><th>Tüüp</th><th>Hind</th></tr><tr><td>7</td><td>Kapsasupp</td><td>Supp</td><td>1.8</td><td>",
this.restTemplate.getForObject("/hinnavahemik?hind_min=1&hind_max=2", String.class));

}

/*
@Test
public void kustutamineAndmebaasist(){
//assertEquals("kartul on kustutatud", this.restTemplate.getForObject("/kustuta?id=88" , String.class));
assertEquals("Antud id-ga toiduainet ei leidu", this.restTemplate.getForObject("/kustuta?id=1" , String.class));
}
*/
}