Skip to content

Commit d592da0

Browse files
committed
Added tests
1 parent aeb9019 commit d592da0

29 files changed

Lines changed: 401 additions & 78 deletions

pom.xml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<properties>
2323
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
2424
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
25-
<java.version>11</java.version>
25+
<java.version>1.8</java.version>
2626
</properties>
2727

2828
<dependencies>
@@ -72,6 +72,12 @@
7272
<scope>test</scope>
7373
</dependency>
7474

75+
<!-- https://mvnrepository.com/artifact/org.modelmapper/modelmapper -->
76+
<dependency>
77+
<groupId>org.modelmapper</groupId>
78+
<artifactId>modelmapper</artifactId>
79+
<version>2.3.5</version>
80+
</dependency>
7581

7682

7783
<dependency>

sonarcommand.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
mvn sonar:sonar -Dsonar.projectKey=blogapi -Dsonar.host.url=http://localhost:9000 -Dsonar.login=7ff764d856a132e81a3b26487b0032cd907e9d6f
2+

src/main/java/com/sopromadze/blogapi/BlogApiApplication.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
import javax.annotation.PostConstruct;
66

7+
import org.modelmapper.ModelMapper;
78
import org.springframework.boot.SpringApplication;
89
import org.springframework.boot.autoconfigure.SpringBootApplication;
910
import org.springframework.boot.autoconfigure.domain.EntityScan;
@@ -30,5 +31,10 @@ void init() {
3031
public JwtAuthenticationFilter jwtAuthenticationFilter() {
3132
return new JwtAuthenticationFilter();
3233
}
34+
35+
@Bean
36+
public ModelMapper modelMapper() {
37+
return new ModelMapper();
38+
}
3339

3440
}
Lines changed: 62 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,64 +1,84 @@
11
package com.sopromadze.blogapi.controller;
22

3+
import javax.validation.Valid;
4+
5+
import org.springframework.beans.factory.annotation.Autowired;
6+
import org.springframework.http.ResponseEntity;
7+
import org.springframework.security.access.prepost.PreAuthorize;
8+
import org.springframework.web.bind.annotation.DeleteMapping;
9+
import org.springframework.web.bind.annotation.ExceptionHandler;
10+
import org.springframework.web.bind.annotation.GetMapping;
11+
import org.springframework.web.bind.annotation.PathVariable;
12+
import org.springframework.web.bind.annotation.PostMapping;
13+
import org.springframework.web.bind.annotation.PutMapping;
14+
import org.springframework.web.bind.annotation.RequestBody;
15+
import org.springframework.web.bind.annotation.RequestMapping;
16+
import org.springframework.web.bind.annotation.RequestParam;
17+
import org.springframework.web.bind.annotation.RestController;
18+
19+
import com.sopromadze.blogapi.exception.ResponseEntityErrorException;
320
import com.sopromadze.blogapi.model.album.Album;
21+
import com.sopromadze.blogapi.payload.AlbumResponse;
22+
import com.sopromadze.blogapi.payload.ApiResponse;
423
import com.sopromadze.blogapi.payload.PagedResponse;
24+
import com.sopromadze.blogapi.payload.request.AlbumRequest;
525
import com.sopromadze.blogapi.security.CurrentUser;
626
import com.sopromadze.blogapi.security.UserPrincipal;
727
import com.sopromadze.blogapi.service.AlbumService;
828
import com.sopromadze.blogapi.service.PhotoService;
9-
import com.sopromadze.blogapi.util.AppConstants;
10-
import org.springframework.beans.factory.annotation.Autowired;
11-
import org.springframework.http.ResponseEntity;
12-
import org.springframework.security.access.prepost.PreAuthorize;
13-
import org.springframework.web.bind.annotation.*;
14-
15-
import javax.validation.Valid;
29+
import com.sopromadze.blogapi.utils.AppConstants;
1630

1731
@RestController
1832
@RequestMapping("/api/albums")
1933
public class AlbumController {
2034
@Autowired
21-
private AlbumService albumService;
22-
35+
private AlbumService albumService;
36+
2337
@Autowired
24-
private PhotoService photoService;
38+
private PhotoService photoService;
39+
40+
@ExceptionHandler(ResponseEntityErrorException.class)
41+
public ResponseEntity<ApiResponse> handleExceptions(ResponseEntityErrorException exception) {
42+
return exception.getApiResponse();
43+
}
2544

26-
@GetMapping
27-
public PagedResponse<Album> getAllAlbums(
28-
@RequestParam(name = "page", required = false, defaultValue = AppConstants.DEFAULT_PAGE_NUMBER) Integer page,
29-
@RequestParam(name = "size", required = false, defaultValue = AppConstants.DEFAULT_PAGE_SIZE) Integer size){
30-
return albumService.getAllAlbums(page, size);
31-
}
45+
@GetMapping
46+
public PagedResponse<AlbumResponse> getAllAlbums(
47+
@RequestParam(name = "page", required = false, defaultValue = AppConstants.DEFAULT_PAGE_NUMBER) Integer page,
48+
@RequestParam(name = "size", required = false, defaultValue = AppConstants.DEFAULT_PAGE_SIZE) Integer size) {
49+
50+
return albumService.getAllAlbums(page, size);
51+
}
3252

33-
@PostMapping
34-
@PreAuthorize("hasRole('USER')")
35-
public ResponseEntity<?> addAlbum(@Valid @RequestBody Album album, @CurrentUser UserPrincipal currentUser){
36-
return albumService.addAlbum(album, currentUser);
37-
}
53+
@PostMapping
54+
@PreAuthorize("hasRole('USER')")
55+
public ResponseEntity<Album> addAlbum(@Valid @RequestBody AlbumRequest albumRequest, @CurrentUser UserPrincipal currentUser) {
56+
return albumService.addAlbum(albumRequest, currentUser);
57+
}
3858

39-
@GetMapping("/{id}")
40-
public ResponseEntity<?> getAlbum(@PathVariable(name = "id") Long id){
41-
return albumService.getAlbum(id);
42-
}
59+
@GetMapping("/{id}")
60+
public ResponseEntity<?> getAlbum(@PathVariable(name = "id") Long id) {
61+
return albumService.getAlbum(id);
62+
}
4363

44-
@PutMapping("/{id}")
45-
@PreAuthorize("hasRole('USER') or hasRole('ADMIN')")
46-
public ResponseEntity<?> updateAlbum(@PathVariable(name = "id") Long id, @Valid @RequestBody Album newAlbum, @CurrentUser UserPrincipal currentUser){
47-
return albumService.updateAlbum(id, newAlbum, currentUser);
48-
}
64+
@PutMapping("/{id}")
65+
@PreAuthorize("hasRole('USER') or hasRole('ADMIN')")
66+
public ResponseEntity<AlbumResponse> updateAlbum(@PathVariable(name = "id") Long id, @Valid @RequestBody AlbumRequest newAlbum,
67+
@CurrentUser UserPrincipal currentUser) {
68+
return albumService.updateAlbum(id, newAlbum, currentUser);
69+
}
4970

50-
@DeleteMapping("/{id}")
51-
@PreAuthorize("hasRole('USER') or hasRole('ADMIN')")
52-
public ResponseEntity<?> deleteAlbum(@PathVariable(name = "id") Long id, @CurrentUser UserPrincipal currentUser){
53-
return albumService.deleteAlbum(id, currentUser);
54-
}
71+
@DeleteMapping("/{id}")
72+
@PreAuthorize("hasRole('USER') or hasRole('ADMIN')")
73+
public ResponseEntity<?> deleteAlbum(@PathVariable(name = "id") Long id, @CurrentUser UserPrincipal currentUser) {
74+
return albumService.deleteAlbum(id, currentUser);
75+
}
5576

56-
@GetMapping("/{id}/photos")
57-
public PagedResponse<?> getAllPhotosByAlbum(
58-
@PathVariable(name = "id") Long id,
59-
@RequestParam(name = "page", required = false, defaultValue = AppConstants.DEFAULT_PAGE_NUMBER) Integer page,
60-
@RequestParam(name = "size", required = false, defaultValue = AppConstants.DEFAULT_PAGE_SIZE) Integer size){
61-
return photoService.getAllPhotosByAlbum(id, page, size);
62-
}
77+
@GetMapping("/{id}/photos")
78+
public PagedResponse<?> getAllPhotosByAlbum(@PathVariable(name = "id") Long id,
79+
@RequestParam(name = "page", required = false, defaultValue = AppConstants.DEFAULT_PAGE_NUMBER) Integer page,
80+
@RequestParam(name = "size", required = false, defaultValue = AppConstants.DEFAULT_PAGE_SIZE) Integer size) {
81+
return photoService.getAllPhotosByAlbum(id, page, size);
82+
}
6383

6484
}

src/main/java/com/sopromadze/blogapi/controller/CategoryController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
import com.sopromadze.blogapi.security.CurrentUser;
2121
import com.sopromadze.blogapi.security.UserPrincipal;
2222
import com.sopromadze.blogapi.service.CategoryService;
23-
import com.sopromadze.blogapi.util.AppConstants;
23+
import com.sopromadze.blogapi.utils.AppConstants;
2424

2525
@RestController
2626
@RequestMapping("/api/categories")

src/main/java/com/sopromadze/blogapi/controller/CommentController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
import com.sopromadze.blogapi.security.CurrentUser;
2121
import com.sopromadze.blogapi.security.UserPrincipal;
2222
import com.sopromadze.blogapi.service.CommentService;
23-
import com.sopromadze.blogapi.util.AppConstants;
23+
import com.sopromadze.blogapi.utils.AppConstants;
2424

2525
@RestController
2626
@RequestMapping("/api/posts/{postId}/comments")

src/main/java/com/sopromadze/blogapi/controller/PhotoController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import com.sopromadze.blogapi.security.CurrentUser;
2222
import com.sopromadze.blogapi.security.UserPrincipal;
2323
import com.sopromadze.blogapi.service.PhotoService;
24-
import com.sopromadze.blogapi.util.AppConstants;
24+
import com.sopromadze.blogapi.utils.AppConstants;
2525

2626
@RestController
2727
@RequestMapping("/api/photos")

src/main/java/com/sopromadze/blogapi/controller/PostController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import com.sopromadze.blogapi.security.CurrentUser;
2222
import com.sopromadze.blogapi.security.UserPrincipal;
2323
import com.sopromadze.blogapi.service.PostService;
24-
import com.sopromadze.blogapi.util.AppConstants;
24+
import com.sopromadze.blogapi.utils.AppConstants;
2525

2626
@RestController
2727
@RequestMapping("/api/posts")

src/main/java/com/sopromadze/blogapi/controller/TagController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
import com.sopromadze.blogapi.security.CurrentUser;
2121
import com.sopromadze.blogapi.security.UserPrincipal;
2222
import com.sopromadze.blogapi.service.TagService;
23-
import com.sopromadze.blogapi.util.AppConstants;
23+
import com.sopromadze.blogapi.utils.AppConstants;
2424

2525
@RestController
2626
@RequestMapping("/api/tags")

src/main/java/com/sopromadze/blogapi/controller/TodoController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
import com.sopromadze.blogapi.security.CurrentUser;
2121
import com.sopromadze.blogapi.security.UserPrincipal;
2222
import com.sopromadze.blogapi.service.TodoService;
23-
import com.sopromadze.blogapi.util.AppConstants;
23+
import com.sopromadze.blogapi.utils.AppConstants;
2424

2525
@RestController
2626
@RequestMapping("/api/todos")

0 commit comments

Comments
 (0)