Browse Source

implementation for list of all jibbers and single jibber id

master
Brecht Gemmel 2 years ago
parent
commit
620ab55b8e

+ 58
- 0
src/main/java/com/springboot/app/JibberJabberRestAPI/Jibber.java View File

@@ -0,0 +1,58 @@
package com.springboot.app.JibberJabberRestAPI;


import lombok.Getter;
import lombok.Setter;
import org.hibernate.annotations.CreationTimestamp;

import javax.persistence.*;
import java.util.Date;
import java.util.Objects;


@Entity
@Getter
@Setter
@Table(name = "jibbers")
public class Jibber {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;

private String message;

@CreationTimestamp
@Column(name = "created_date")
private Date createdDate;

Jibber () {}

Jibber(String message, Date createdDate) {
this.message = message;
this.createdDate = createdDate;
}

@Override
public boolean equals(Object o) {

if (this == o)
return true;
if (!(o instanceof Jibber))
return false;
Jibber jibber = (Jibber) o;
return Objects.equals(this.id, jibber.id) && Objects.equals(this.message, jibber.message)
&& Objects.equals(this.createdDate, jibber.createdDate);
}

@Override
public int hashCode() {
return Objects.hash(this.id, this.message, this.createdDate);
}

@Override
public String toString() {
return "Jibber{" + "id=" + this.id + ", message='" + this.message + '\'' + ", createdDate='" + this.createdDate
+ '\'' + '}';
}
}

+ 32
- 0
src/main/java/com/springboot/app/JibberJabberRestAPI/JibberController.java View File

@@ -0,0 +1,32 @@
package com.springboot.app.JibberJabberRestAPI;


import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
public class JibberController {

private final JibberRepository repository;


public JibberController(JibberRepository repository) {
this.repository = repository;
}

@GetMapping("/jibbers")
List<Jibber> all() {return repository.findAll();}

@PostMapping("/jibbers")
Jibber newJibber(@RequestBody Jibber newJibber) { return repository.save(newJibber);}

//single item(id)

@GetMapping("jibbers/{id}")
Jibber one(@PathVariable int id) {

return repository.findById(id)
.orElseThrow(() -> new JibberNotFoundException((id)));
}
}

+ 19
- 0
src/main/java/com/springboot/app/JibberJabberRestAPI/JibberNotFoundAdvice.java View File

@@ -0,0 +1,19 @@
package com.springboot.app.JibberJabberRestAPI;


import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.ResponseStatus;

@ControllerAdvice
public class JibberNotFoundAdvice {

@ResponseBody
@ExceptionHandler(JibberNotFoundException.class)
@ResponseStatus(HttpStatus.NOT_FOUND)
String jibberNotFoundHandler(JibberNotFoundException ex) {
return ex.getMessage();
}
}

+ 8
- 0
src/main/java/com/springboot/app/JibberJabberRestAPI/JibberNotFoundException.java View File

@@ -0,0 +1,8 @@
package com.springboot.app.JibberJabberRestAPI;

class JibberNotFoundException extends RuntimeException {

JibberNotFoundException(Integer id) {
super("Could not find Jibber" + id);
}
}

+ 6
- 0
src/main/java/com/springboot/app/JibberJabberRestAPI/JibberRepository.java View File

@@ -0,0 +1,6 @@
package com.springboot.app.JibberJabberRestAPI;

import org.springframework.data.jpa.repository.JpaRepository;

public interface JibberRepository extends JpaRepository<Jibber, Integer> {
}

Loading…
Cancel
Save