Commit f9ee6361 authored by Daniel Gretschmann's avatar Daniel Gretschmann
Browse files

DELETED OLD IMPL

ADDED NEW FAHRZEUG IMPL
parent bfaf5eed
package com.aws.dao;
import com.aws.model.Fahrzeug;
import java.util.List;
public interface FahrzeugDao {
int insertNewFahrzeug (Fahrzeug fahrzeug);
Fahrzeug selectFahrzeugByFahrgestellnummer(int Fahrgestellnummer);
List<Fahrzeug> selectAllFahrzeug();
int updateFahrzeugByFahrgestellnummer(int fahrgestellnummer, Fahrzeug FahrzeugUpdate);
int deleteFahrzeugByFahrgestellnummer(int Fahrgestellnummer);
}
package com.aws.dao;
import com.aws.model.Fahrzeug;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface FahrzeugRepository extends JpaRepository<Fahrzeug, Long>{
}
\ No newline at end of file
package com.aws.dao;
import com.aws.model.Fahrzeug;
import org.springframework.stereotype.Repository;
import java.util.*;
@Repository("FahrzeugDao")
public class FakeFahrzeugDaoImp implements FahrzeugDao {
private final Map<Integer, Fahrzeug>database;
public FakeFahrzeugDaoImp() {
database = new HashMap<>();
int fahrGestellNrTest = 9283727;
database.put(fahrGestellNrTest, new Fahrzeug("Mercedes", "12.06.2020", fahrGestellNrTest));
}
@Override
public int insertNewFahrzeug(Fahrzeug fahrzeug) {
int fahrgestellnummer = fahrzeug.getFahrgestellnummer();
database.put(fahrgestellnummer, fahrzeug);
return 1;
}
@Override
public Fahrzeug selectFahrzeugByFahrgestellnummer(int Fahrgestellnummer) {
return database.get(Fahrgestellnummer);
}
@Override
public List<Fahrzeug> selectAllFahrzeug() {
return new ArrayList<>(database.values());
}
@Override
public int updateFahrzeugByFahrgestellnummer(int fahrgestellnummer, Fahrzeug FahrzeugUpdate) {
database.put(fahrgestellnummer, FahrzeugUpdate);
return 1;
}
@Override
public int deleteFahrzeugByFahrgestellnummer(int Fahrgestellnummer) {
database.remove(Fahrgestellnummer);
return 1;
}
}
/* package com.aws.dao;
import com.aws.model.Kunde;
import org.springframework.stereotype.Repository;
import java.util.*;
@Repository("fakeDao")
public class FakeKundeDaoImp implements KundeDao {
private final Map<UUID, Kunde> database;
public FakeKundeDaoImp() {
database = new HashMap<>();
UUID kundeId = UUID.randomUUID();
database.put(kundeId, new Kunde(kundeId, "Bond","James",94469, "Deggendorf",
"Egger Str.", 6));
}
@Override
public int insertNewKunde(UUID kundeId, Kunde kunde) {
database.put(kundeId, kunde);
return 0;
}
@Override
public Kunde selectKundeById(UUID kundeId) {
return database.get(kundeId);
}
@Override
public List<Kunde> selectAllKunden() {
return new ArrayList<>(database.values());
}
@Override
public int updateKundeById(UUID kundeId, Kunde kundeUpdate) {
database.put(kundeId, kundeUpdate);
return 1;
}
@Override
public int deleteKundeById(UUID kundeId) {
database.remove(kundeId);
return 1;
}
}
*/
/* package com.aws.dao;
import com.aws.model.Kunde;
import java.util.List;
import java.util.UUID;
public interface KundeDao {
int insertNewKunde(UUID kundeId, Kunde kunde);
Kunde selectKundeById(UUID kundeId);
List<Kunde> selectAllKunden();
int updateKundeById(UUID kundeId, Kunde studentUpdate);
int deleteKundeById(UUID kundeId);
}
*/
\ No newline at end of file
package com.aws.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import javax.persistence.*;
@Entity
@Table(name="fahrzeug")
public class Fahrzeug {
private final String Hersteller;
private final String erstzulassung;
private int Fahrgestellnummer;
public void setFahrgestellnummer(int fahrgestellnummer) {
Fahrgestellnummer = fahrgestellnummer;
private long id;
private String hersteller;
private String fahrgestellnummer;
private String kennzeichen;
private String erstzulassung;
public Fahrzeug() {
}
public String getHersteller() {
return Hersteller;
public Fahrzeug(
@JsonProperty("id") long id,
@JsonProperty("hersteller") String hersteller,
@JsonProperty("fahrgestellnummer") String fahrgestellnummer,
@JsonProperty("kennzeichen") String kennzeichen,
@JsonProperty("erstzulassung") String erstzulassung)
{
this.id = id;
this.hersteller = hersteller;
this.fahrgestellnummer = fahrgestellnummer;
this.kennzeichen = kennzeichen;
this.erstzulassung = erstzulassung;
}
public String getErstzulassung() {
return erstzulassung;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public long getId() {
return id;
}
public int getFahrgestellnummer() {
return Fahrgestellnummer;
public void setId(long id) {
this.id = id;
}
public Fahrzeug(@JsonProperty("hersteller") String hersteller,
@JsonProperty("erstzulassung") String erstzulassung,
@JsonProperty("fahrgestellnummer") int fahrgestellnummer) {
this.Hersteller = hersteller;
this.erstzulassung = erstzulassung;
this.Fahrgestellnummer = fahrgestellnummer;
@Column(name = "hersteller", nullable = false)
public String getHersteller(){return hersteller;}
public void setHersteller(String hersteller){this.hersteller = hersteller; }
@Column(name = "fahrgestellnummer", nullable = false)
public String getFahrgestellnummer(){return fahrgestellnummer;}
public void setFahrgestellnummer(String fahrgestellnummer){this.fahrgestellnummer=fahrgestellnummer;}
@Column(name = "kennzeichen", nullable = false)
public String getKennzeichen(){return kennzeichen;}
public void setKennzeichen(String kennzeichen){this.kennzeichen = kennzeichen;};
@Column(name = "erstzulassung", nullable = false)
public String getErstzulassung(){return erstzulassung;}
public void setErstzulassung(String erstzulassung){this.erstzulassung = erstzulassung;}
@Override
public String toString(){
return "Fahrzeug [Hersteller=" + hersteller + ",Fahrgestellnummer=" + fahrgestellnummer + ",Kennzeichen=" + kennzeichen + ",Erstzulassung=" + erstzulassung + "]";
}
}
......@@ -15,6 +15,7 @@ public class Kunde {
private String ort;
private String strasse;
private int hausnummer;
private long fahrzeugId;
public Kunde() {
......
package com.aws.resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.validation.Valid;
import com.aws.dao.FahrzeugRepository;
import com.aws.exception.ResourceNotFoundException;
import com.aws.model.Fahrzeug;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/api/v1")
public class FahrzeugController {
@Autowired
private FahrzeugRepository fahrzeugRepository;
@GetMapping("/fahrzeug")
public List<Fahrzeug> getAllFahrzeuge() {
return fahrzeugRepository.findAll();
}
@GetMapping("/fahrzeug/{id}")
public ResponseEntity<Fahrzeug> getFahrzeug(@PathVariable(value = "id") Long fahrzeugId)
throws ResourceNotFoundException {
Fahrzeug fahrzeug = fahrzeugRepository.findById(fahrzeugId)
.orElseThrow(() -> new ResourceNotFoundException("Fahrzeug not found for this id :: " + fahrzeugId));
return ResponseEntity.ok().body(fahrzeug);
}
@PostMapping("/fahrzeug")
public Fahrzeug createFahrzeug(@Valid @RequestBody Fahrzeug fahrzeug) {
return fahrzeugRepository.save(fahrzeug);
}
@PutMapping("/fahrzeug/{id}")
public ResponseEntity<Fahrzeug> updateVehicle(@PathVariable(value = "id") Long fahrzeugId,
@Valid @RequestBody Fahrzeug fahrzeugDetails) throws ResourceNotFoundException {
Fahrzeug fahrzeug = fahrzeugRepository.findById(fahrzeugId)
.orElseThrow(() -> new ResourceNotFoundException("Fahrzeug not found for this id :: " + fahrzeugId));
fahrzeug.setHersteller(fahrzeugDetails.getHersteller());
fahrzeug.setFahrgestellnummer(fahrzeugDetails.getFahrgestellnummer());
fahrzeug.setKennzeichen(fahrzeugDetails.getKennzeichen());
fahrzeug.setErstzulassung(fahrzeugDetails.getFahrgestellnummer());
final Fahrzeug updatedFahrzeug = fahrzeugRepository.save(fahrzeug);
return ResponseEntity.ok(updatedFahrzeug);
}
@DeleteMapping("/fahrzeug/{id}")
public Map<String, Boolean> deleteVehicle(@PathVariable(value = "id") Long fahrzeugId)
throws ResourceNotFoundException {
Fahrzeug fahrzeug = fahrzeugRepository.findById(fahrzeugId)
.orElseThrow(() -> new ResourceNotFoundException("Fahrzeug not found for this id :: " + fahrzeugId));
fahrzeugRepository.delete(fahrzeug);
Map<String, Boolean> response = new HashMap<>();
response.put("deleted", Boolean.TRUE);
return response;
}
}
\ No newline at end of file
package com.aws.resource;
import com.aws.model.Fahrzeug;
import com.aws.service.FahrzeugService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("api/v1/fahrzeug")
public class FahrzeugResource {
@Autowired
public FahrzeugResource(FahrzeugService fahrzeugService) {
this.fahrzeugService = fahrzeugService;
}
private final FahrzeugService fahrzeugService;
@RequestMapping(
method = RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_VALUE
)
public List<Fahrzeug> getAllFahrzeug() {
return fahrzeugService.getAllFahrzeug();
}
@RequestMapping(
method = RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_VALUE,
path = "{fahrgestellnummer}"
)
public Fahrzeug getFahrzeugByFahrgestellnummer(@PathVariable("fahrgestellnummer")int fahrgestellnummer) {
return fahrzeugService.getFahrzeugByFahrgestellnummer(fahrgestellnummer);
}
@RequestMapping(
method = RequestMethod.POST,
consumes = MediaType.APPLICATION_JSON_VALUE
)
public void insertNewFahrzeug(@RequestBody Fahrzeug fahrzeug) {
fahrzeugService.persistNewFahrzeug(fahrzeug);
}
@RequestMapping(
method = RequestMethod.PUT,
consumes = MediaType.APPLICATION_JSON_VALUE,
path = "{fahrgestellnummer}"
)
public void updateFahrzeug(@PathVariable("fahrgestellnummer")int fahrgestellnummer,@RequestBody Fahrzeug fahrzeug) {
fahrzeugService.updateFahrzeugByFahrgestellnummer(fahrgestellnummer, fahrzeug);
}
@RequestMapping(
method = RequestMethod.DELETE,
path = "{fahrgestellnummer}",
produces = MediaType.APPLICATION_JSON_VALUE
)
public void deleteFahrzeug(@PathVariable("fahrgestellnummer")int fahrgestellnummer) {
fahrzeugService.deleteFahrzeugByFahrgestellnummer(fahrgestellnummer);
}
}
......@@ -33,7 +33,7 @@ public class KundeController {
public ResponseEntity<Kunde> getKunde(@PathVariable(value = "id") Long kundeId)
throws ResourceNotFoundException {
Kunde kunde = kundeRepository.findById(kundeId)
.orElseThrow(() -> new ResourceNotFoundException("Employee not found for this id :: " + kundeId));
.orElseThrow(() -> new ResourceNotFoundException("Kunde not found for this id :: " + kundeId));
return ResponseEntity.ok().body(kunde);
}
......@@ -43,7 +43,7 @@ public class KundeController {
}
@PutMapping("/kunde/{id}")
public ResponseEntity<Kunde> updateEmployee(@PathVariable(value = "id") Long kundeId,
public ResponseEntity<Kunde> updateKunde(@PathVariable(value = "id") Long kundeId,
@Valid @RequestBody Kunde kundeDetails) throws ResourceNotFoundException {
Kunde kunde = kundeRepository.findById(kundeId)
.orElseThrow(() -> new ResourceNotFoundException("Kunde not found for this id :: " + kundeId));
......@@ -59,7 +59,7 @@ public class KundeController {
}
@DeleteMapping("/kunde/{id}")
public Map<String, Boolean> deleteEmployee(@PathVariable(value = "id") Long kundeId)
public Map<String, Boolean> deleteKunde(@PathVariable(value = "id") Long kundeId)
throws ResourceNotFoundException {
Kunde kunde = kundeRepository.findById(kundeId)
.orElseThrow(() -> new ResourceNotFoundException("Kunde not found for this id :: " + kundeId));
......
/*package com.aws.resource;
import com.aws.model.Kunde;
import com.aws.service.KundeService;
import java.awt.*;
import java.util.List;
import java.util.UUID;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("api/v1/kunde")
public class KundeResource {
private final KundeService kundeService;
@Autowired
public KundeResource(KundeService kundeService) {
this.kundeService = kundeService;
}
@RequestMapping(
method = RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_VALUE
)
public List<Kunde> getallKunden() {
return kundeService.getAllKunden();
}
@RequestMapping(
method = RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_VALUE,
path = "{kundeId}"
)
public Kunde getKundeById(@PathVariable("kundeId") UUID kundeId) {
return kundeService.getKundeById(kundeId);
}
@RequestMapping(
method = RequestMethod.POST,
consumes = MediaType.APPLICATION_JSON_VALUE
)
public void insertNewKunde(@RequestBody Kunde kunde) {
kundeService.persistNewKunde(UUID.randomUUID(), kunde);
}
@RequestMapping(
method = RequestMethod.PUT,
produces = MediaType.APPLICATION_JSON_VALUE,
path = "{kundeId}"
)
public void updateKunde(@PathVariable("kundeId") UUID kundeId, @RequestBody Kunde kunde) {
kundeService.updateKunde(kundeId, kunde);
}
@RequestMapping(
method = RequestMethod.DELETE,
path = "{kundeId}",
produces = MediaType.APPLICATION_JSON_VALUE
)
public void deleteKunde(@PathVariable("kundeId") UUID kundeId) {
kundeService.deleteKunde(kundeId);
}
}
*/
\ No newline at end of file
package com.aws.service;
import com.aws.dao.FahrzeugDao;
import com.aws.model.Fahrzeug;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.UUID;
@Service
public class FahrzeugService {
private final FahrzeugDao fahrzeugDao;
@Autowired
public FahrzeugService(@Qualifier("FahrzeugDao") FahrzeugDao fahrzeugDao) {
this.fahrzeugDao = fahrzeugDao;
}
public int persistNewFahrzeug(Fahrzeug fahrzeug){
return fahrzeugDao.insertNewFahrzeug(fahrzeug);
}
public Fahrzeug getFahrzeugByFahrgestellnummer(int Fahrgestellnummer){
return fahrzeugDao.selectFahrzeugByFahrgestellnummer(Fahrgestellnummer);
}
public List<Fahrzeug> getAllFahrzeug(){
return fahrzeugDao.selectAllFahrzeug();
}
public int updateFahrzeugByFahrgestellnummer(int Fahrgestellnummer, Fahrzeug FahrzeugUpdate){
return fahrzeugDao.updateFahrzeugByFahrgestellnummer(Fahrgestellnummer, FahrzeugUpdate);
}
public int deleteFahrzeugByFahrgestellnummer(int Fahrgestellnummer){
Fahrzeug fahrzeug = getFahrzeugByFahrgestellnummer(Fahrgestellnummer);
if (fahrzeug == null) {
throw new IllegalStateException();
}
return fahrzeugDao.deleteFahrzeugByFahrgestellnummer(Fahrgestellnummer);
}
}
/* package com.aws.service;
import com.aws.dao.KundeDao;
import com.aws.model.Kunde;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.UUID;
@Service
public class KundeService {
private final KundeDao kundeDao;
@Autowired
public KundeService(@Qualifier("fakeDao") KundeDao kundeDao) {
this.kundeDao = kundeDao;
}
public int persistNewKunde(UUID kundeId, Kunde kunde) {
UUID kundeUid = kundeId == null ? UUID.randomUUID() : kundeId;
kunde.setId(kundeId);
return kundeDao.insertNewKunde(kundeUid, kunde);
}
public Kunde getKundeById(UUID kundeId) {
return kundeDao.selectKundeById(kundeId);
}
public List<Kunde> getAllKunden() {
return kundeDao.selectAllKunden();
}
public int updateKunde(UUID kundeId, Kunde kundeUpdate) {
return kundeDao.updateKundeById(kundeId, kundeUpdate);
}
public int deleteKunde(UUID kundeId) {
return kundeDao.deleteKundeById(kundeId);
}
}
*/
\ No newline at end of file
......@@ -3,6 +3,11 @@ spring.datasource.username=postgres
spring.datasource.password=password
spring.jpa.show-sql=true
spring.datasource.url=jdbc:postgresql://localhost:5432/fahrzeug
spring.datasource.username=postgres
spring.datasource.password=password
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect
spring.jpa.hibernate.ddl-auto=update
\ No newline at end of file
......@@ -8,10 +8,12 @@
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<title>Hello, world!</title>
<title>Info Site</title>
</head>
<body>
<h1>Hello, world!</h1>
<h1>Herzlich Willkommen!</h1>
<hr>
<pr>Weitere Informationen zur Ausführung der REST API befinden sich in der ReadMe Datei.</pr>
<!-- Optional JavaScript -->
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
......