Commit bf61d376 authored by Muhammad Suleman's avatar Muhammad Suleman

implementing-pagination

parent 30782061
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
<description>Spring Project for School</description> <description>Spring Project for School</description>
<properties> <properties>
<java.version>17</java.version> <java.version>17</java.version>
<org.mapstruct.version>1.5.2.Final</org.mapstruct.version>
</properties> </properties>
<dependencies> <dependencies>
...@@ -29,12 +30,6 @@ ...@@ -29,12 +30,6 @@
<scope>runtime</scope> <scope>runtime</scope>
</dependency> </dependency>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>1.4.2.Final</version>
</dependency>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId> <artifactId>spring-boot-starter-web</artifactId>
...@@ -129,6 +124,18 @@ ...@@ -129,6 +124,18 @@
<version>5.0.0</version> <version>5.0.0</version>
</dependency> </dependency>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>${org.mapstruct.version}</version>
</dependency>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${org.mapstruct.version}</version>
</dependency>
</dependencies> </dependencies>
<build> <build>
......
package com.school.project.controller; package com.school.project.controller;
import com.school.project.dto.PaginationDTO;
import com.school.project.dto.teacher.*; import com.school.project.dto.teacher.*;
import com.school.project.model.Teacher;
import com.school.project.service.teacher.TeacherServiceImpl; import com.school.project.service.teacher.TeacherServiceImpl;
import com.school.project.service.teacher.UploadMarksServiceImpl; import com.school.project.service.teacher.UploadMarksServiceImpl;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.security.Principal; import java.security.Principal;
...@@ -19,10 +22,10 @@ public class TeacherController { ...@@ -19,10 +22,10 @@ public class TeacherController {
UploadMarksServiceImpl uploadMarksService; UploadMarksServiceImpl uploadMarksService;
@GetMapping("") // @GetMapping("")
public TeacherViewDataDTO getTeacherData(Principal principal) { // public TeacherViewDataDTO getTeacherData(Principal principal) {
return teacherService.getTeacherData(principal.getName()); // return teacherService.getTeacherData(principal.getName());
} // }
@GetMapping("/course") @GetMapping("/course")
public TeacherViewCoursesDTO getTeacherCourses(Principal principal) { public TeacherViewCoursesDTO getTeacherCourses(Principal principal) {
...@@ -30,13 +33,18 @@ public class TeacherController { ...@@ -30,13 +33,18 @@ public class TeacherController {
} }
@PostMapping("/upload/marks") @PostMapping("/upload/marks")
public void addAssessment(@RequestBody AddAssessmentDTO addAssessmentDTO){ public void addAssessment(@RequestBody AddAssessmentDTO addAssessmentDTO) {
uploadMarksService.setAssessment(addAssessmentDTO); uploadMarksService.setAssessment(addAssessmentDTO);
} }
@PostMapping("/upload/marks/assessments") @PostMapping("/upload/marks/assessments")
public void addMarks(@RequestBody UploadMarksDTO uploadMarksDTO){ public void addMarks(@RequestBody UploadMarksDTO uploadMarksDTO) {
uploadMarksService.setObtainedMarks(uploadMarksDTO); uploadMarksService.setObtainedMarks(uploadMarksDTO);
} }
@GetMapping
public Page<TeacherViewDataDTO> getAllTeachers(@RequestBody PaginationDTO paginationDTO) {
return teacherService.getAllTeachers(paginationDTO);
}
} }
package com.school.project.dto;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class PaginationDTO {
private int page;
private int size;
}
package com.school.project.mapper;
import com.school.project.dto.teacher.TeacherViewDataDTO;
import com.school.project.model.Teacher;
import org.mapstruct.Mapper;
import org.springframework.data.domain.Page;
@Mapper(componentModel = "spring")
public interface PageOfTeacherToDTO {
TeacherViewDataDTO map(Teacher teacher);
default Page<TeacherViewDataDTO> modelToDTO(Page<Teacher> teachers) {
return teachers.map(this::map);
}
}
...@@ -14,9 +14,6 @@ import java.util.Set; ...@@ -14,9 +14,6 @@ import java.util.Set;
@Getter @Getter
@Setter @Setter
@NoArgsConstructor
@AllArgsConstructor
@RequiredArgsConstructor
@Entity @Entity
@Table(name = "Teacher") @Table(name = "Teacher")
public class Teacher { public class Teacher {
...@@ -31,7 +28,7 @@ public class Teacher { ...@@ -31,7 +28,7 @@ public class Teacher {
private String name; private String name;
@NotNull @NotNull
@Column(name = "teacher_num",unique = true) @Column(name = "teacher_num", unique = true)
private String teacherNumber; private String teacherNumber;
@NotNull @NotNull
...@@ -59,5 +56,4 @@ public class Teacher { ...@@ -59,5 +56,4 @@ public class Teacher {
@JsonIgnore @JsonIgnore
private User teacherAppUser; private User teacherAppUser;
} }
package com.school.project.service.teacher; package com.school.project.service.teacher;
import com.school.project.dto.PaginationDTO;
import com.school.project.dto.teacher.TeacherViewCoursesDTO; import com.school.project.dto.teacher.TeacherViewCoursesDTO;
import com.school.project.dto.teacher.TeacherViewDataDTO; import com.school.project.dto.teacher.TeacherViewDataDTO;
import com.school.project.model.Teacher;
import org.springframework.data.domain.Page;
public interface TeacherService { public interface TeacherService {
TeacherViewDataDTO getTeacherData(String username); TeacherViewDataDTO getTeacherData(String username);
TeacherViewCoursesDTO getTeacherCourses(String username); TeacherViewCoursesDTO getTeacherCourses(String username);
Page<TeacherViewDataDTO> getAllTeachers(PaginationDTO paginationDTO);
} }
package com.school.project.service.teacher; package com.school.project.service.teacher;
import com.school.project.dto.PaginationDTO;
import com.school.project.dto.teacher.TeacherViewCoursesDTO; import com.school.project.dto.teacher.TeacherViewCoursesDTO;
import com.school.project.dto.teacher.TeacherViewDataDTO; import com.school.project.dto.teacher.TeacherViewDataDTO;
import com.school.project.mapper.PageOfTeacherToDTO;
import com.school.project.mapper.TeacherViewCoursesMapper; import com.school.project.mapper.TeacherViewCoursesMapper;
import com.school.project.mapper.TeacherViewDataMapper; import com.school.project.mapper.TeacherViewDataMapper;
import com.school.project.model.Teacher;
import com.school.project.model.userRegistration.User; import com.school.project.model.userRegistration.User;
import com.school.project.repository.*; import com.school.project.repository.*;
import com.school.project.repository.userRegistration.UserRepository; import com.school.project.repository.userRegistration.UserRepository;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@Service @Service
...@@ -26,6 +31,9 @@ public class TeacherServiceImpl implements TeacherService { ...@@ -26,6 +31,9 @@ public class TeacherServiceImpl implements TeacherService {
TeacherViewCoursesMapper teacherViewCoursesMapper; TeacherViewCoursesMapper teacherViewCoursesMapper;
private PageOfTeacherToDTO pageOfTeacherToDTO;
@Override @Override
public TeacherViewDataDTO getTeacherData(String username) { public TeacherViewDataDTO getTeacherData(String username) {
...@@ -42,4 +50,14 @@ public class TeacherServiceImpl implements TeacherService { ...@@ -42,4 +50,14 @@ public class TeacherServiceImpl implements TeacherService {
return teacherViewCoursesMapper.modelToDTO( return teacherViewCoursesMapper.modelToDTO(
teacherRepository.findOneByTeacherId(user.getUserId())); teacherRepository.findOneByTeacherId(user.getUserId()));
} }
public Page<TeacherViewDataDTO> getAllTeachers(PaginationDTO paginationDTO) {
return pageOfTeacherToDTO.modelToDTO(teacherRepository.findAll(PageRequest.of(paginationDTO.getPage(), paginationDTO.getSize())));
}
@Autowired
public void setPageOfTeacherToDTO(PageOfTeacherToDTO pageOfTeacherToDTO) {
this.pageOfTeacherToDTO = pageOfTeacherToDTO;
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment