Nosedive/src/main/java/com/alterdekim/game/service/FriendServiceImpl.java
2024-02-28 03:14:17 +03:00

52 lines
1.6 KiB
Java

package com.alterdekim.game.service;
import com.alterdekim.game.dto.FriendFollowState;
import com.alterdekim.game.entities.FriendStatus;
import com.alterdekim.game.repository.FriendRepository;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
@AllArgsConstructor
public class FriendServiceImpl {
private final FriendRepository repository;
public List<Long> getFriendsOfUserId(Long userId) {
return repository.getFriendsOfUserId(userId);
}
public void removeFriend(Long userId, Long friendId) {
repository.removeFriend(userId, friendId);
}
public void followUser(Long userId, Long friendId) {
if( repository.getFollow(userId, friendId) == null ) {
repository.save(new FriendStatus(userId, friendId, 1));
return;
}
repository.setFriend(userId, friendId);
}
public FriendStatus getFollow(Long userId, Long friendId) {
return repository.getFollow(userId, friendId);
}
public FriendStatus getFriend(Long userId, Long friendId) {
return repository.getFriend(userId, friendId);
}
public FriendFollowState getFriendState(Long userId, Long friendId) {
FriendStatus fs = this.getFollow(userId, friendId);
if( fs != null ) {
if( fs.getFirstUserId().longValue() == userId.longValue() ||
this.getFriend(userId, friendId) != null ) {
return FriendFollowState.FOLLOWED;
}
return FriendFollowState.ACCEPT;
}
return FriendFollowState.NOT_FOLLOWED;
}
}