You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.4 KiB
46 lines
1.4 KiB
package org.ros.chatto.service;
|
|
|
|
import java.util.List;
|
|
import java.util.Optional;
|
|
|
|
import com.spencerwi.either.Result;
|
|
|
|
import org.ros.chatto.dto.AdminUserDTO;
|
|
import org.ros.chatto.model.ChatUser;
|
|
import org.ros.chatto.repository.AdminUserRepository;
|
|
import org.ros.chatto.repository.UserRepository;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
@Service
|
|
@RequiredArgsConstructor
|
|
@Slf4j
|
|
@Transactional
|
|
public class AdminService {
|
|
private final UserRepository userRepository;
|
|
private final AdminUserRepository adminUserRepository;
|
|
|
|
public List<AdminUserDTO> getUsers(String principal, UserDTOSpec spec) {
|
|
switch (spec) {
|
|
case OTHER_USERS:
|
|
return adminUserRepository.getOtherUsers(principal);
|
|
case ALL_USERS:
|
|
return adminUserRepository.getAllUsers();
|
|
case REGULAR_USERS:
|
|
return adminUserRepository.getRegularUsers();
|
|
default:
|
|
throw new UnsupportedOperationException();
|
|
}
|
|
}
|
|
|
|
public Result<Void> deleteUser(String userName) {
|
|
Optional<ChatUser> user = userRepository.findByUserName(userName);
|
|
return Result.attempt(() -> user.get()).map((u) -> {
|
|
userRepository.delete(u);
|
|
return (Void) null;
|
|
});
|
|
}
|
|
}
|