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
6 changes: 6 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,12 @@
<scope>runtime</scope>
</dependency>

<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
</dependency>


</dependencies>

<build>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,22 +1,21 @@
package br.com.openenade.api.categoriaadmin;


import com.fasterxml.jackson.annotation.JsonValue;

public enum CategoriaAdmin {
PUBLICO("Publico"),PRIVADO("Privado");

PUBLICO("Publico"), PRIVADO("Privado");

private String value;

private CategoriaAdmin() {

}

private CategoriaAdmin(String value) {
this.value = value;
}

@JsonValue
public String getValue() {
return this.value;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,13 @@
@CrossOrigin(origins = "*")
@RequestMapping(path = CategoriaAdminController.ENDPOINT)
public class CategoriaAdminController {

public static final String ENDPOINT = "/categorias-admin";

@RequestMapping(method = RequestMethod.GET)
public @ResponseBody ResponseEntity<CategoriaAdmin[]> index() {

return new ResponseEntity<>(CategoriaAdmin.values(), HttpStatus.OK);
}

}
9 changes: 3 additions & 6 deletions src/main/java/br/com/openenade/api/curso/Curso.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,27 +4,24 @@
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Positive;
import javax.validation.constraints.NotBlank;
import br.com.openenade.api.modalidade.Modalidade;
import javax.persistence.IdClass;


@Entity
@IdClass(CursoId.class)
public class Curso {

@NotBlank(message = "'nome' não pode ser vazio.")
@NotBlank(message = "Curso 'nome' nao pode ser vazio")
private String nome;

@Id
@Positive(message = "'codigoArea' precisa ser positivo.")
@Positive(message = "Curso 'codigoArea' precisa ser positivo")
private Long codigoArea;

@Id
@Enumerated(EnumType.STRING)
@NotNull(message = "Você precisa especificar uma 'modalidade' de ensino.")
@Enumerated(EnumType.ORDINAL)
private Modalidade modalidade;

public Curso() {
Expand Down
56 changes: 0 additions & 56 deletions src/main/java/br/com/openenade/api/curso/CursoController.java

This file was deleted.

34 changes: 25 additions & 9 deletions src/main/java/br/com/openenade/api/curso/CursoService.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,32 +4,48 @@
import java.util.Optional;
import org.springframework.stereotype.Service;
import org.springframework.beans.factory.annotation.Autowired;
import br.com.openenade.api.exceptions.ResourceNotFound;
import br.com.openenade.api.modalidade.Modalidade;

import br.com.openenade.api.modalidade.ModalidadeService;

@Service
public class CursoService {

@Autowired
private CursoRepository repository;

public Curso save(Curso curso) {
public Curso addCurso(Curso curso) {
return this.repository.save(curso);
}

public List<Curso> getAll() {
return this.repository.findAll();
}

public Optional<Curso> getByCodigo(Long codigo, Modalidade modalidade) {
CursoId cursoId = new CursoId(codigo, modalidade);
return this.repository.findById(cursoId);
public Curso getCursoByCursoId(CursoId cursoId) {
Optional<Curso> optCurso = this.repository.findById(cursoId);
if (optCurso.isPresent()) {
return optCurso.get();
} else {
throw new ResourceNotFound(
"Cannot find Curso with Codigo [" + Long.toString(cursoId.getCodigoArea())
+ "] and Modalidade [" + cursoId.getModalidade().getValue() + "]");
}
}

public Curso getCursoByCodigo(Long codigo, Integer modalidade) {
CursoId cursoId = new CursoId(codigo, ModalidadeService.getModalidadeById(modalidade));
return this.getCursoByCursoId(cursoId);
}

// unutilized
public void deleteCursoById(CursoId id) {
this.repository.deleteById(id);

public Curso getCursoByCodigo(Long codigo, Modalidade modalidade) {
CursoId cursoId = new CursoId(codigo, modalidade);
return this.getCursoByCursoId(cursoId);
}

public void deleteById(CursoId cursoId) {
this.getCursoByCodigo(cursoId.getCodigoArea(), cursoId.getModalidade());
this.repository.deleteById(cursoId);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package br.com.openenade.api.curso;

import javax.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import br.com.openenade.api.modalidade.ModalidadeService;

@RestController
@RequestMapping(path = PublicCursoController.ENDPOINT)
public class PrivateCursoController {

@Autowired
private CursoService service;

@ResponseBody
@PostMapping
public Curso addCurso(@Valid @RequestBody Curso newCurso) {
return this.service.addCurso(newCurso);
}

@DeleteMapping(path = "/{codigo}/{modalidade}")
public void deleteCursoByCodigo(@PathVariable(name = "codigo") Long codigo,
@PathVariable(name = "modalidade") Integer modalidadeId) {
this.service
.deleteById(new CursoId(codigo, ModalidadeService.getModalidadeById(modalidadeId)));
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package br.com.openenade.api.curso;

import java.util.List;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import br.com.openenade.api.modalidade.ModalidadeService;

@RestController
@CrossOrigin("*")
@RequestMapping(path = PublicCursoController.ENDPOINT)
public class PublicCursoController {

public static final String ENDPOINT = "cursos";

@Autowired
private CursoService service;

@GetMapping
@ResponseBody
public List<Curso> getAll() {
return this.service.getAll();
}

@ResponseBody
@GetMapping(path = "/{codigo}/{modalidade}")
public Curso getCursoByCodigo(@PathVariable(name = "codigo") Long codigo,
@PathVariable(name = "modalidade") Integer modalidadeId) {
return this.service.getCursoByCodigo(codigo, ModalidadeService.getModalidadeById(modalidadeId));
}

}
10 changes: 3 additions & 7 deletions src/main/java/br/com/openenade/api/estado/Estado.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package br.com.openenade.api.estado;


import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
Expand All @@ -12,19 +11,18 @@
public class Estado {

@Id
@NotBlank(message = "'siglaEstado' não pode ser vazio.")
@NotBlank(message = "Estado 'sigla' não pode ser vazio.")
private String sigla;

@ManyToOne(optional = false)
@NotNull(message = "'regiaoEstado' não pode ser nulo.")
@NotNull(message = "Estado 'regiao' não pode ser nulo.")
private Regiao regiao;

public Estado() {

}

public Estado(@NotBlank(message = "'siglaEstado' não pode ser vazio.") String siglaEstado,
Regiao regiaoEstado) {
public Estado(String siglaEstado, Regiao regiaoEstado) {
super();
this.sigla = siglaEstado;
this.regiao = regiaoEstado;
Expand Down Expand Up @@ -82,6 +80,4 @@ public String toString() {
return "Estado [siglaEstado=" + sigla + ", regiaoEstado=" + regiao + "]";
}



}
13 changes: 10 additions & 3 deletions src/main/java/br/com/openenade/api/modalidade/Modalidade.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,27 @@
public enum Modalidade {

@Enumerated(EnumType.ORDINAL)
EDUCACAO_PRESENCIAL("Educação Presencial"), EDUCACAO_A_DISTANCIA("Educação à Distância");
EDUCACAO_PRESENCIAL("Educação Presencial", 0), EDUCACAO_A_DISTANCIA("Educação à Distância", 1);

private String value;
private Integer id;

private Modalidade() {

}

private Modalidade(String value) {
private Modalidade(String value, Integer id) {
this.value = value;
this.id = id;
}

public Integer getId() {
return this.id;
}

@JsonValue
public String getValue() {
return this.value;
return this.value + " - " + this.id;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ public class ModalidadeController {
public static final String ENDPOINT = "/modalidades";

@RequestMapping(method = RequestMethod.GET)
public @ResponseBody ResponseEntity<Modalidade[]> index() {
public @ResponseBody ResponseEntity<Modalidade[]> getAllModalidades() {
return new ResponseEntity<>(Modalidade.values(), HttpStatus.OK);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package br.com.openenade.api.modalidade;

import br.com.openenade.api.exceptions.ResourceNotFound;

public class ModalidadeService {

public static Modalidade getModalidadeById(Integer id) {
Modalidade[] modalidades = Modalidade.values();
if (id < 0 || id > modalidades.length) {
throw new ResourceNotFound(
"Cannot find Modalidade with Id [" + Integer.toString(id) + "]");
} else {
return modalidades[id];
}
}

}
Loading