Skip to content
Snippets Groups Projects
Commit c2477f3f authored by Petr Seidl's avatar Petr Seidl
Browse files

Update add filter for Subject by TeacherID

parent f04deb69
No related branches found
No related tags found
No related merge requests found
Checking pipeline status
......@@ -3,6 +3,9 @@ package cz.cvut.fit.tjv.seidlpet.semestralka.business;
import cz.cvut.fit.tjv.seidlpet.semestralka.data.dto.SubjectCreateDTO;
import cz.cvut.fit.tjv.seidlpet.semestralka.data.entity.Subject;
 
import java.util.List;
public interface SubjectService extends CrudService<Subject> {
Subject create(SubjectCreateDTO subject);
List<Subject> findAllByTeacherId(int teacherId);
}
......@@ -42,6 +42,10 @@ public class SubjectServiceImpl implements SubjectService {
return subjectRepository.findAll();
}
 
public List<Subject> findAllByTeacherId(int teacherId) {
return subjectRepository.findAllByTeacherId(teacherId);
}
@Modifying
public Subject update(int id, Subject c) {
Optional<Subject> subject = subjectRepository.findById(id);
......
......@@ -38,10 +38,13 @@ public class SubjectController {
}
 
@GetMapping
public List<Subject> findAll() {
public List<Subject> findAll(@RequestParam(required = false) Integer teacherId) {
if(teacherId != null)
return subjectService.findAllByTeacherId(teacherId);
return subjectService.findAll();
}
 
@PutMapping("/{id}")
public void update(@PathVariable int id, @RequestBody Subject subject) {
try {
......
......@@ -4,7 +4,9 @@ import cz.cvut.fit.tjv.seidlpet.semestralka.data.entity.Subject;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
 
import java.util.List;
@Repository
public interface SubjectRepository extends JpaRepository<Subject,Integer> {
List<Subject> findAllByTeacherId(int teacherId);
}
......@@ -78,7 +78,18 @@ public class SubjectControllerTest {
.contentType(MediaType.APPLICATION_JSON))
.andExpect(MockMvcResultMatchers.status().isOk())
.andExpect(MockMvcResultMatchers.jsonPath("$.*.id").exists());
Assertions.assertEquals(subjects,subjectController.findAll());
Assertions.assertEquals(subjects,subjectController.findAll(null));
List<Subject> subject = Collections.singletonList(new Subject(2, "C++", "EN", teacher, Collections.singletonList(
new Student(1, "Teo", "Smith", 1.2)
)));
BDDMockito.given(subjectService.findAllByTeacherId(2)).willReturn(subject);
mvc.perform(MockMvcRequestBuilders.get("/api/v1/subject?teacherId=2")
.contentType(MediaType.APPLICATION_JSON))
.andExpect(MockMvcResultMatchers.status().isOk())
.andExpect(MockMvcResultMatchers.jsonPath("$.*.id",CoreMatchers.equalTo(Collections.singletonList(2))));
Assertions.assertEquals(subject,subjectController.findAll(2));
Mockito.verify(subjectService,Mockito.atLeastOnce()).findAll();
}
@Test
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment