Skip to content

Commit 502ea0f

Browse files
committed
updated end points for paging
1 parent d586cc0 commit 502ea0f

12 files changed

Lines changed: 79 additions & 17 deletions

File tree

school/pom.xml

Lines changed: 31 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,9 @@
1313
<version>0.0.1-SNAPSHOT</version>
1414
<name>school</name>
1515
<description>Demo project for Spring Boot</description>
16-
1716
<properties>
1817
<java.version>11</java.version>
1918
</properties>
20-
2119
<dependencies>
2220
<dependency>
2321
<groupId>org.springframework.boot</groupId>
@@ -27,7 +25,6 @@
2725
<groupId>org.springframework.boot</groupId>
2826
<artifactId>spring-boot-starter-web</artifactId>
2927
</dependency>
30-
3128
<dependency>
3229
<groupId>org.springframework.boot</groupId>
3330
<artifactId>spring-boot-devtools</artifactId>
@@ -36,15 +33,23 @@
3633
<dependency>
3734
<groupId>com.h2database</groupId>
3835
<artifactId>h2</artifactId>
39-
<!-- <scope>runtime</scope>-->
36+
<!-- <scope>runtime</scope>-->
4037
</dependency>
41-
4238
<!-- PostgreSQL -->
43-
<!-- <dependency>-->
44-
<!-- <groupId>org.postgresql</groupId>-->
45-
<!-- <artifactId>postgresql</artifactId>-->
46-
<!-- </dependency>-->
47-
39+
<!-- <dependency>-->
40+
<!-- <groupId>org.postgresql</groupId>-->
41+
<!-- <artifactId>postgresql</artifactId>-->
42+
<!-- </dependency>-->
43+
<dependency>
44+
<groupId>org.springframework.boot</groupId>
45+
<artifactId>spring-boot-starter-actuator</artifactId>
46+
</dependency>
47+
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
48+
<dependency>
49+
<groupId>org.slf4j</groupId>
50+
<artifactId>slf4j-api</artifactId>
51+
<version>1.7.26</version>
52+
</dependency>
4853
<dependency>
4954
<groupId>org.springframework.boot</groupId>
5055
<artifactId>spring-boot-starter-test</artifactId>
@@ -56,15 +61,28 @@
5661
<artifactId>springfox-swagger2</artifactId>
5762
<version>2.9.2</version>
5863
</dependency>
59-
6064
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
6165
<dependency>
6266
<groupId>io.springfox</groupId>
6367
<artifactId>springfox-swagger-ui</artifactId>
6468
<version>2.9.2</version>
6569
</dependency>
70+
<!-- junit dependency for basic testing -->
71+
<dependency>
72+
<groupId>org.junit.jupiter</groupId>
73+
<artifactId>junit-jupiter-api</artifactId>
74+
<version>5.3.2</version>
75+
<scope>test</scope>
76+
</dependency>
77+
<!-- Rest assured dependency for rest api-->
78+
<!-- https://mvnrepository.com/artifact/io.rest-assured/spring-mock-mvc -->
79+
<dependency>
80+
<groupId>io.rest-assured</groupId>
81+
<artifactId>spring-mock-mvc</artifactId>
82+
<version>3.3.0</version>
83+
<scope>test</scope>
84+
</dependency>
6685
</dependencies>
67-
6886
<build>
6987
<plugins>
7088
<plugin>
@@ -73,5 +91,4 @@
7391
</plugin>
7492
</plugins>
7593
</build>
76-
77-
</project>
94+
</project>

school/src/main/java/com/lambdaschool/school/SchoolApplication.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import org.springframework.boot.SpringApplication;
44
import org.springframework.boot.autoconfigure.SpringBootApplication;
55

6+
67
@SpringBootApplication
78
public class SchoolApplication
89
{

school/src/main/java/com/lambdaschool/school/config/WebConfig.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
66

77
@Configuration
8+
89
public class WebConfig implements WebMvcConfigurer
910
{
1011
/**

school/src/main/java/com/lambdaschool/school/controller/CourseController.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
import org.slf4j.Logger;
77
import org.slf4j.LoggerFactory;
88
import org.springframework.beans.factory.annotation.Autowired;
9+
import org.springframework.data.domain.Pageable;
10+
import org.springframework.data.web.PageableDefault;
911
import org.springframework.http.HttpStatus;
1012
import org.springframework.http.ResponseEntity;
1113
import org.springframework.web.bind.annotation.*;
@@ -20,6 +22,7 @@ public class CourseController {
2022
private static final Logger logger = LoggerFactory.getLogger(CourseController.class);
2123

2224
@Autowired
25+
2326
private CourseService courseService;
2427

2528
@GetMapping(value = "/courses",
@@ -30,6 +33,12 @@ public ResponseEntity<?> listAllCourses(HttpServletRequest request) {
3033
ArrayList<Course> myCourses = courseService.findAll();
3134
return new ResponseEntity<>(myCourses, HttpStatus.OK);
3235
}
36+
@GetMapping(value ="/coursespaging", produces = {"application/json"})
37+
public ResponseEntity<?> listAllCoursesByPage(@PageableDefault(page=0, size=3) Pageable pageable) {
38+
ArrayList<Course> myCourse = courseService.findAllPageable(pageable);
39+
return new ResponseEntity<>(myCourse, HttpStatus.OK);
40+
}
41+
3342

3443
@GetMapping(value = "/studcount",
3544
produces = {"application/json"})

school/src/main/java/com/lambdaschool/school/controller/StudentController.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
package com.lambdaschool.school.controller;
22

3+
import com.lambdaschool.school.model.Course;
34
import com.lambdaschool.school.model.Student;
45
import com.lambdaschool.school.service.StudentService;
56
import org.springframework.beans.factory.annotation.Autowired;
7+
import org.springframework.data.domain.Pageable;
8+
import org.springframework.data.web.PageableDefault;
69
import org.springframework.http.HttpHeaders;
710
import org.springframework.http.HttpStatus;
811
import org.springframework.http.ResponseEntity;
@@ -12,6 +15,7 @@
1215
import javax.validation.Valid;
1316
import java.net.URI;
1417
import java.net.URISyntaxException;
18+
import java.util.ArrayList;
1519
import java.util.List;
1620

1721
@RestController
@@ -29,7 +33,11 @@ public ResponseEntity<?> listAllStudents() {
2933
List<Student> myStudents = studentService.findAll();
3034
return new ResponseEntity<>(myStudents, HttpStatus.OK);
3135
}
32-
36+
@GetMapping(value ="/studentpaging", produces = {"application/json"})
37+
public ResponseEntity<?> listAllCoursesByPage(@PageableDefault(page=0, size=3) Pageable pageable) {
38+
ArrayList<Student> myCourse = studentService.findAllPageable(pageable);
39+
return new ResponseEntity<>(myCourse, HttpStatus.OK);
40+
}
3341
@GetMapping(value = "/Student/{StudentId}",
3442
produces = {"application/json"})
3543
public ResponseEntity<?> getStudentById(

school/src/main/java/com/lambdaschool/school/repository/CourseRepository.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,12 @@
55
import org.springframework.data.jpa.repository.Modifying;
66
import org.springframework.data.jpa.repository.Query;
77
import org.springframework.data.repository.CrudRepository;
8+
import org.springframework.data.repository.PagingAndSortingRepository;
89

910
import java.util.ArrayList;
1011
import java.util.List;
1112

12-
public interface CourseRepository extends CrudRepository<Course, Long>
13+
public interface CourseRepository extends PagingAndSortingRepository<Course, Long>
1314
{
1415
ArrayList<Course> findCoursesByCoursenameEquals(String name);
1516

school/src/main/java/com/lambdaschool/school/repository/StudentRepository.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,12 @@
22

33
import com.lambdaschool.school.model.Student;
44
import org.springframework.data.repository.CrudRepository;
5+
import org.springframework.data.repository.PagingAndSortingRepository;
56

67
import java.util.ArrayList;
78
import java.util.List;
89

9-
public interface StudentRepository extends CrudRepository<Student, Long>
10+
public interface StudentRepository extends PagingAndSortingRepository<Student, Long>
1011
{
1112
List<Student> findByStudnameContainingIgnoreCase(String name);
1213
}

school/src/main/java/com/lambdaschool/school/service/CourseService.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.lambdaschool.school.model.Course;
44
import com.lambdaschool.school.view.CountStudentsInCourses;
5+
import org.springframework.data.domain.Pageable;
56

67
import java.util.ArrayList;
78

@@ -12,4 +13,6 @@ public interface CourseService
1213
ArrayList<CountStudentsInCourses> getCountStudentsInCourse();
1314

1415
void delete(long id);
16+
17+
ArrayList<Course> findAllPageable(Pageable pageable);
1518
}

school/src/main/java/com/lambdaschool/school/service/CourseServiceImpl.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import com.lambdaschool.school.repository.CourseRepository;
66
import com.lambdaschool.school.view.CountStudentsInCourses;
77
import org.springframework.beans.factory.annotation.Autowired;
8+
import org.springframework.data.domain.Pageable;
89
import org.springframework.stereotype.Service;
910
import org.springframework.transaction.annotation.Transactional;
1011

@@ -16,6 +17,13 @@ public class CourseServiceImpl implements CourseService
1617
@Autowired
1718
private CourseRepository courserepos;
1819

20+
@Override
21+
public ArrayList<Course> findAllPageable(Pageable pageable) {
22+
ArrayList<Course> list = new ArrayList<>();
23+
courserepos.findAll(pageable).iterator().forEachRemaining(list::add);
24+
return list;
25+
}
26+
1927
@Override
2028
public ArrayList<Course> findAll()
2129
{

school/src/main/java/com/lambdaschool/school/service/StudentService.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
package com.lambdaschool.school.service;
22

3+
import com.lambdaschool.school.model.Course;
34
import com.lambdaschool.school.model.Student;
5+
import org.springframework.data.domain.Pageable;
46

7+
import java.util.ArrayList;
58
import java.util.List;
69

710
public interface StudentService
@@ -17,4 +20,6 @@ public interface StudentService
1720
Student save (Student student);
1821

1922
Student update(Student student, long id);
23+
24+
ArrayList<Student> findAllPageable(Pageable pageable);
2025
}

0 commit comments

Comments
 (0)