Skip to content

Commit

Permalink
#2 Crud de Cursos - Alterações do Review
Browse files Browse the repository at this point in the history
  • Loading branch information
Jhê Cardoso committed Feb 6, 2021
1 parent 3d8af53 commit 2959260
Show file tree
Hide file tree
Showing 14 changed files with 96 additions and 141 deletions.
38 changes: 37 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,6 @@ local.properties
# Spring Boot Tooling
.sts4-cache/

### Intellij ###
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839

Expand Down Expand Up @@ -138,6 +137,35 @@ fabric.properties
# Editor-based Rest Client
.idea/httpRequests

# Android studio 3.1+ serialized cache file
.idea/caches/build_file_checksums.ser
# Mongo Explorer plugin
.idea/**/mongoSettings.xml

# File-based project format
*.iws

# IntelliJ
out/

# mpeltonen/sbt-idea plugin
.idea_modules/

# JIRA plugin
atlassian-ide-plugin.xml

# Cursive Clojure plugin
.idea/replstate.xml

# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties

# Editor-based Rest Client
.idea/httpRequests

# Android studio 3.1+ serialized cache file
.idea/caches/build_file_checksums.ser

Expand Down Expand Up @@ -207,3 +235,11 @@ hs_err_pid*
*.code-workspace

# End of https://www.toptal.com/developers/gitignore/api/java,intellij,vscode,eclipse
*.iml
*.iml
*.xml
*.xml
*.iml
*.xml
*.iml
*.iml
8 changes: 3 additions & 5 deletions .idea/hatcher-api.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions .idea/inspectionProfiles/Project_Default.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 0 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,2 @@
# hatcher-pm
Sistema de gestão e acompanhamento de projetos do AYTY


16 changes: 3 additions & 13 deletions pom.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<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">
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>
<parent>
<groupId>org.springframework.boot</groupId>
Expand All @@ -20,7 +20,7 @@
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<version>2.4.2</version>
<version>2.4.2</version>
</dependency>

<dependency>
Expand Down Expand Up @@ -97,16 +97,6 @@
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>jakarta.validation</groupId>
<artifactId>jakarta.validation-api</artifactId>
<version>2.0.2</version>
</dependency>
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.1.6.Final</version>
</dependency>
</dependencies>

<build>
Expand All @@ -127,4 +117,4 @@
</plugins>
</build>

</project>
</project>
13 changes: 2 additions & 11 deletions src/main/java/org/ayty/hatcher/api/HatcherApiApplication.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,10 @@
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class HatcherApiApplication{



public class HatcherApiApplication {

public static void main(String[] args) {
SpringApplication.run(HatcherApiApplication.class, args);
}

/*@Override
public void run(String... args) throws Exception {
Course c1 = new Course(null, "Sistemas", "Description");
courseRepository.save(c1);
}*/
}
}
78 changes: 17 additions & 61 deletions src/main/java/org/ayty/hatcher/api/v1/course/dto/Course.java
Original file line number Diff line number Diff line change
@@ -1,78 +1,34 @@
package org.ayty.hatcher.api.v1.course.dto;

import lombok.Data;
import org.hibernate.validator.constraints.Length;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.EqualsAndHashCode;

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

import javax.persistence.*;
import javax.validation.constraints.NotEmpty;
import java.io.Serializable;
import java.util.Objects;

@Data
@Entity
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(exclude={"name", "description"})
@Table(name="REGISTRATION_COURSE")
public class Course implements Serializable {

private static final long serialVersionUID = 1L;

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Getter @Setter private Long id;

@NotEmpty(message = "Não pode ser deixado vazio")
@Length(min=3, max=255, message = "O nome dever ter entre 3 e 100 caracteres")
private String name;
@Getter @Setter private String name;

private String description;
@Getter @Setter private String description;

public Course(){
super();
}

public Course(Long id, String name, String description) {
this.id = id;
this.name = name;
this.description = description;
}

public static long getSerialVersionUID() {
return serialVersionUID;
}

public Long getId() {
return id;
}

public void setId(Long id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getDescription() {
return description;
}

public void setDescription(String description) {
this.description = description;
}

@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Course that = (Course) o;
return id.equals(that.id);
}

@Override
public int hashCode() {
return Objects.hash(id);
}
}
Original file line number Diff line number Diff line change
@@ -1,48 +1,57 @@
package org.ayty.hatcher.api.v1.course.dto;

import lombok.RequiredArgsConstructor;
import org.ayty.hatcher.api.v1.course.service.CourseService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;

import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.support.ServletUriComponentsBuilder;

import java.net.URI;
import java.util.List;


@RequiredArgsConstructor
@RestController
@RequestMapping("/courses")
public class CourseController {

@Autowired
private CourseService service;
private final CourseService service;

@GetMapping
@ResponseStatus(code = HttpStatus.OK)
public ResponseEntity<List<Course>> findAll() {
List<Course> list = service.findAll();
return ResponseEntity.ok().body(list);
}

@ResponseStatus(code = HttpStatus.OK)
@GetMapping(value = "/{id}")
public ResponseEntity<Course> findById (@PathVariable Long id){
Course obj = this.service.findById(id);
return ResponseEntity.ok().body(obj);
}

@PutMapping(value = "/{id}")
@ResponseStatus(code = HttpStatus.NO_CONTENT)
public ResponseEntity <Course> update (@PathVariable Long id, @RequestBody Course obj) {
Course newObj = this.service.update(id, obj);
return ResponseEntity.ok().body(newObj);

}

@PostMapping
@ResponseStatus(code = HttpStatus.CREATED)
public ResponseEntity<Course> create(@RequestBody Course obj) {
Course newObj = service.create(obj);
URI uri = ServletUriComponentsBuilder.fromCurrentRequest().path("/{id}").buildAndExpand(newObj.getId()).toUri();
return ResponseEntity.created(uri).build();
}

@DeleteMapping(value = "/{id}")
@ResponseStatus(code = HttpStatus.NO_CONTENT)
public ResponseEntity<Course> delete(@PathVariable Long id){
service.delete(id);
return ResponseEntity.noContent().build();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
package org.ayty.hatcher.api.v1.course.exception;


import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ResponseStatus;

@ResponseStatus(code = HttpStatus.BAD_REQUEST)
public class ObjectNotFoundException extends RuntimeException{

private static final long serialVersionUID = 1L;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@
public class ResourceExceptionHandler {
@ExceptionHandler(ObjectNotFoundException.class)
public ResponseEntity<StandardError> objectNotFound (ObjectNotFoundException e, HttpServletRequest request) {
StandardError error = new StandardError(HttpStatus.NOT_FOUND.value(), System.currentTimeMillis(), e.getMessage());
return ResponseEntity.status(HttpStatus.NOT_FOUND).body(error);
StandardError error = new StandardError(HttpStatus.BAD_REQUEST.value(), System.currentTimeMillis(), e.getMessage());
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(error);

}
}
Original file line number Diff line number Diff line change
@@ -1,42 +1,19 @@
package org.ayty.hatcher.api.v1.course.exception;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ResponseStatus;

@NoArgsConstructor
@AllArgsConstructor
@ResponseStatus(code = HttpStatus.BAD_REQUEST)
public class StandardError {

private Integer status;
private Long timestamp;
private String message;
@Getter @Setter private Integer status;
@Getter @Setter private Long timestamp;
@Getter @Setter private String message;

public StandardError() {
super();
}

public StandardError(Integer status, Long timestamp, String message) {
this.status = status;
this.timestamp = timestamp;
this.message = message;
}

public Integer getStatus() {
return status;
}

public void setStatus(Integer status) {
this.status = status;
}

public Long getTimestamp() {
return timestamp;
}

public void setTimestamp(Long timestamp) {
this.timestamp = timestamp;
}

public String getMessage() {
return message;
}

public void setMessage(String message) {
this.message = message;
}
}
Loading

0 comments on commit 2959260

Please sign in to comment.