Skip to content

Commit bcd96e7

Browse files
committed
removed user hardcoding in image service and restructured code
1 parent 4ccf6d2 commit bcd96e7

File tree

6 files changed

+28
-27
lines changed

6 files changed

+28
-27
lines changed

profilePics/UserId-14.jpg

25.7 KB
Loading
File renamed without changes.

profilePics/UserId-15.png

58.7 KB
Loading

src/main/java/servie/track_servie/controller/UserController.java

+4-21
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package servie.track_servie.controller;
22

3-
import org.apache.commons.io.FilenameUtils;
43
import org.springframework.beans.factory.annotation.Autowired;
54
import org.springframework.http.HttpStatus;
65
import org.springframework.http.MediaType;
@@ -10,13 +9,8 @@
109
import org.springframework.web.bind.annotation.RequestParam;
1110
import org.springframework.web.bind.annotation.RestController;
1211
import org.springframework.web.multipart.MultipartFile;
13-
import servie.track_servie.repository.UserRepository;
1412
import servie.track_servie.service.UserService;
15-
import java.io.File;
1613
import java.io.IOException;
17-
import java.nio.file.Files;
18-
import java.nio.file.Path;
19-
import java.nio.file.Paths;
2014
import java.util.Map;
2115

2216
@RestController
@@ -25,24 +19,14 @@ public class UserController
2519
{
2620
@Autowired
2721
private UserService userService;
28-
@Autowired
29-
private UserRepository userRepository;
30-
private static final String profilePicsDirectory = "/home/aakkiieezz/Coding/track_servie/profilePics/";
3122

3223
@PostMapping(value = "/image/upload", produces = {MediaType.IMAGE_JPEG_VALUE, "application/json"})
33-
public ResponseEntity<?> profileImgUpload(@RequestParam("file") MultipartFile file /*, @AuthenticationPrincipal UserDetails userDetails*/)
24+
public ResponseEntity<?> profileImgUpload(@RequestParam("file") MultipartFile file)
3425
{
35-
File directory = new File(profilePicsDirectory);
36-
if(!directory.exists())
37-
directory.mkdir();
38-
Integer userId = userRepository.findByUsername("Aakkiieezz").get().getId();
39-
String newFileName = String.format("UserId-%s.%s", userId, FilenameUtils.getExtension(file.getOriginalFilename()));
40-
Path fileNamePath = Paths.get(profilePicsDirectory, newFileName);
4126
try
4227
{
43-
Files.write(fileNamePath, file.getBytes());
44-
userService.profileImgUpload(fileNamePath);
45-
return new ResponseEntity<>(Map.of("profileImgUrl", /*fileNamePath.toString()*/ "profilePics/"+newFileName), HttpStatus.OK);
28+
String newFileName = userService.profileImgUpload(file);
29+
return new ResponseEntity<>(Map.of("profileImgUrl", "profilePics/"+newFileName), HttpStatus.OK);
4630
}
4731
catch(IOException ex)
4832
{
@@ -55,8 +39,7 @@ public ResponseEntity<?> profileImgDelete()
5539
{
5640
try
5741
{
58-
Integer userId = userRepository.findByUsername("Aakkiieezz").get().getId();
59-
userService.profileImgDelete(userId);
42+
userService.profileImgDelete();
6043
return new ResponseEntity<>(HttpStatus.OK);
6144
}
6245
catch(Exception ex)

src/main/java/servie/track_servie/service/SeriesService.java

+1
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
@Slf4j
3838
public class SeriesService
3939
{
40+
@Autowired
4041
private SeriesRepository seriesRepository;
4142
@Autowired
4243
private RestTemplate restTemplate;

src/main/java/servie/track_servie/service/UserService.java

+23-6
Original file line numberDiff line numberDiff line change
@@ -5,25 +5,40 @@
55
import java.io.FileOutputStream;
66
import java.io.IOException;
77
import java.io.InputStream;
8+
import java.nio.file.Files;
89
import java.nio.file.Path;
10+
import java.nio.file.Paths;
11+
import org.apache.commons.io.FilenameUtils;
912
import org.springframework.beans.factory.annotation.Autowired;
13+
import org.springframework.security.core.context.SecurityContextHolder;
14+
import org.springframework.security.core.userdetails.UserDetails;
1015
import org.springframework.stereotype.Service;
1116
import org.springframework.transaction.annotation.Transactional;
17+
import org.springframework.web.multipart.MultipartFile;
18+
import lombok.extern.slf4j.Slf4j;
1219
import servie.track_servie.entity.User;
1320
import servie.track_servie.exceptions.ResourceNotFoundException;
1421
import servie.track_servie.repository.UserRepository;
1522

1623
@Service
24+
@Slf4j
1725
public class UserService
1826
{
1927
@Autowired
2028
private UserRepository userRepository;
2129
private static final String profilePicsDirectory = "/home/aakkiieezz/Coding/track_servie/profilePics/";
2230

2331
@Transactional
24-
public void profileImgUpload(Path fileNamePath) throws IOException
32+
public String profileImgUpload(MultipartFile file) throws IOException
2533
{
26-
User user = userRepository.findById(1).orElseThrow(() -> new RuntimeException("User not found"));
34+
UserDetails userDetails = (UserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
35+
User user = userRepository.findByUsername(userDetails.getUsername()).orElseThrow(() -> new ResourceNotFoundException("User", "Username", userDetails.getUsername()));
36+
File directory = new File(profilePicsDirectory);
37+
if(!directory.exists())
38+
directory.mkdir();
39+
String newFileName = String.format("UserId-%s.%s", user.getId(), FilenameUtils.getExtension(file.getOriginalFilename()));
40+
Path fileNamePath = Paths.get(profilePicsDirectory, newFileName);
41+
Files.write(fileNamePath, file.getBytes());
2742
File fileObject = fileNamePath.toFile();
2843
byte[] imageData = new byte[(int) fileObject.length()];
2944
try(InputStream inputStream = new FileInputStream(fileObject))
@@ -32,6 +47,7 @@ public void profileImgUpload(Path fileNamePath) throws IOException
3247
}
3348
user.setProfileImg(imageData);
3449
userRepository.save(user);
50+
return newFileName;
3551
}
3652

3753
public String checkGenerateProfileUrlIfProfileImgExist(Integer userId)
@@ -53,17 +69,18 @@ public String checkGenerateProfileUrlIfProfileImgExist(Integer userId)
5369
}
5470
catch(IOException e)
5571
{
56-
System.err.println("Error while creating the file: "+e.getMessage());
72+
log.error("Error while creating the file: "+e.getMessage());
5773
}
5874
return null;
5975
}
6076

61-
public void profileImgDelete(Integer userId)
77+
public void profileImgDelete()
6278
{
63-
User user = userRepository.findById(userId).orElseThrow(() -> new ResourceNotFoundException("User", "Id", userId.toString()));
79+
UserDetails userDetails = (UserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
80+
User user = userRepository.findByUsername(userDetails.getUsername()).orElseThrow(() -> new ResourceNotFoundException("User", "Username", userDetails.getUsername()));
6481
user.setProfileImg(null);
6582
userRepository.save(user);
66-
File file = new File(profilePicsDirectory+"UserId-"+userId+".jpg");
83+
File file = new File(profilePicsDirectory+"UserId-"+user.getId()+".jpg");
6784
file.delete();
6885
}
6986
}

0 commit comments

Comments
 (0)