Commit bf61d376 authored by Muhammad Suleman's avatar Muhammad Suleman

implementing-pagination

parent 30782061
......@@ -15,6 +15,7 @@
<description>Spring Project for School</description>
<properties>
<java.version>17</java.version>
<org.mapstruct.version>1.5.2.Final</org.mapstruct.version>
</properties>
<dependencies>
......@@ -29,12 +30,6 @@
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>1.4.2.Final</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
......@@ -129,6 +124,18 @@
<version>5.0.0</version>
</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>
<build>
......
package com.school.project.controller;
import com.school.project.dto.PaginationDTO;
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.UploadMarksServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.web.bind.annotation.*;
import java.security.Principal;
......@@ -19,10 +22,10 @@ public class TeacherController {
UploadMarksServiceImpl uploadMarksService;
@GetMapping("")
public TeacherViewDataDTO getTeacherData(Principal principal) {
return teacherService.getTeacherData(principal.getName());
}
// @GetMapping("")
// public TeacherViewDataDTO getTeacherData(Principal principal) {
// return teacherService.getTeacherData(principal.getName());
// }
@GetMapping("/course")
public TeacherViewCoursesDTO getTeacherCourses(Principal principal) {
......@@ -30,13 +33,18 @@ public class TeacherController {
}
@PostMapping("/upload/marks")
public void addAssessment(@RequestBody AddAssessmentDTO addAssessmentDTO){
public void addAssessment(@RequestBody AddAssessmentDTO addAssessmentDTO) {
uploadMarksService.setAssessment(addAssessmentDTO);
}
@PostMapping("/upload/marks/assessments")
public void addMarks(@RequestBody UploadMarksDTO uploadMarksDTO){
public void addMarks(@RequestBody UploadMarksDTO 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;
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@RequiredArgsConstructor
@Entity
@Table(name = "Teacher")
public class Teacher {
......@@ -31,7 +28,7 @@ public class Teacher {
private String name;
@NotNull
@Column(name = "teacher_num",unique = true)
@Column(name = "teacher_num", unique = true)
private String teacherNumber;
@NotNull
......@@ -59,5 +56,4 @@ public class Teacher {
@JsonIgnore
private User teacherAppUser;
}
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.TeacherViewDataDTO;
import com.school.project.model.Teacher;
import org.springframework.data.domain.Page;
public interface TeacherService {
TeacherViewDataDTO getTeacherData(String username);
TeacherViewCoursesDTO getTeacherCourses(String username);
Page<TeacherViewDataDTO> getAllTeachers(PaginationDTO paginationDTO);
}
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.TeacherViewDataDTO;
import com.school.project.mapper.PageOfTeacherToDTO;
import com.school.project.mapper.TeacherViewCoursesMapper;
import com.school.project.mapper.TeacherViewDataMapper;
import com.school.project.model.Teacher;
import com.school.project.model.userRegistration.User;
import com.school.project.repository.*;
import com.school.project.repository.userRegistration.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.stereotype.Service;
@Service
......@@ -26,6 +31,9 @@ public class TeacherServiceImpl implements TeacherService {
TeacherViewCoursesMapper teacherViewCoursesMapper;
private PageOfTeacherToDTO pageOfTeacherToDTO;
@Override
public TeacherViewDataDTO getTeacherData(String username) {
......@@ -42,4 +50,14 @@ public class TeacherServiceImpl implements TeacherService {
return teacherViewCoursesMapper.modelToDTO(
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