A self hosted chat application with end-to-end encrypted messaging.
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.
|
|
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; }); } }
|