Skip to content

Commit 0c3eb60

Browse files
committed
Add channels get endpoint
1 parent 33a0578 commit 0c3eb60

File tree

2 files changed

+25
-1
lines changed

2 files changed

+25
-1
lines changed

foxogram-api/src/main/java/su/foxogram/controllers/UsersController.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import su.foxogram.dtos.request.CodeDTO;
1111
import su.foxogram.dtos.request.UserDeleteDTO;
1212
import su.foxogram.dtos.request.UserEditDTO;
13+
import su.foxogram.dtos.response.ChannelDTO;
1314
import su.foxogram.dtos.response.OkDTO;
1415
import su.foxogram.dtos.response.UserDTO;
1516
import su.foxogram.exceptions.cdn.UploadFailedException;
@@ -58,6 +59,12 @@ public UserDTO getUser(@RequestAttribute(value = AttributesConstants.USER) User
5859
return new UserDTO(usersService.getUser(username), null, false, false);
5960
}
6061

62+
@Operation(summary = "Get user channels")
63+
@GetMapping("/@me/channels")
64+
public List<ChannelDTO> getUserChannels(@RequestAttribute(value = AttributesConstants.USER) User authenticatedUser) {
65+
return usersService.getChannels(authenticatedUser);
66+
}
67+
6168
@Operation(summary = "Edit user")
6269
@PatchMapping("/@me")
6370
public UserDTO editUser(@RequestAttribute(value = AttributesConstants.USER) User authenticatedUser, @Valid @ModelAttribute UserEditDTO body) throws UserCredentialsDuplicateException, UploadFailedException {

foxogram-common/src/main/java/su/foxogram/services/UsersService.java

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,24 @@
1010
import su.foxogram.constants.StorageConstants;
1111
import su.foxogram.constants.UserConstants;
1212
import su.foxogram.dtos.request.UserEditDTO;
13+
import su.foxogram.dtos.response.ChannelDTO;
1314
import su.foxogram.exceptions.cdn.UploadFailedException;
1415
import su.foxogram.exceptions.code.CodeExpiredException;
1516
import su.foxogram.exceptions.code.CodeIsInvalidException;
1617
import su.foxogram.exceptions.user.UserCredentialsDuplicateException;
1718
import su.foxogram.exceptions.user.UserCredentialsIsInvalidException;
1819
import su.foxogram.exceptions.user.UserNotFoundException;
1920
import su.foxogram.models.Code;
21+
import su.foxogram.models.Member;
2022
import su.foxogram.models.User;
23+
import su.foxogram.repositories.MemberRepository;
2124
import su.foxogram.repositories.UserRepository;
2225
import su.foxogram.util.CodeGenerator;
2326
import su.foxogram.util.Encryptor;
2427

28+
import java.util.List;
29+
import java.util.stream.Collectors;
30+
2531
@Slf4j
2632
@Service
2733
public class UsersService {
@@ -33,12 +39,15 @@ public class UsersService {
3339

3440
private final StorageService storageService;
3541

42+
private final MemberRepository memberRepository;
43+
3644
@Autowired
37-
public UsersService(UserRepository userRepository, EmailService emailService, CodeService codeService, StorageService storageService) {
45+
public UsersService(UserRepository userRepository, EmailService emailService, CodeService codeService, StorageService storageService, MemberRepository memberRepository) {
3846
this.userRepository = userRepository;
3947
this.emailService = emailService;
4048
this.codeService = codeService;
4149
this.storageService = storageService;
50+
this.memberRepository = memberRepository;
4251
}
4352

4453
public User getUser(String username) throws UserNotFoundException {
@@ -49,6 +58,14 @@ public User getUser(String username) throws UserNotFoundException {
4958
return user;
5059
}
5160

61+
public List<ChannelDTO> getChannels(User user) {
62+
return memberRepository.findAllByUserId(user.getId())
63+
.stream()
64+
.map(Member::getChannel)
65+
.map(ChannelDTO::new)
66+
.collect(Collectors.toList());
67+
}
68+
5269
public User editUser(User user, UserEditDTO body) throws UserCredentialsDuplicateException, UploadFailedException {
5370
if (body.getDisplayName() != null) user.setDisplayName(body.getDisplayName());
5471
if (body.getAvatar() != null) changeAvatar(user, body.getAvatar());

0 commit comments

Comments
 (0)