Skip to content

Commit

Permalink
[FEAT] 그룹 참가 서비스 알람 구현
Browse files Browse the repository at this point in the history
  • Loading branch information
devchlee12 committed Oct 22, 2024
1 parent 69e6c99 commit ce2a0db
Showing 1 changed file with 21 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import com.fourback.bemajor.domain.studyGroupNotification.repository.StudyGroupNotificationRepository;
import com.fourback.bemajor.domain.studyGroupNotification.service.StudyGroupNotificationService;
import com.fourback.bemajor.domain.studygroup.dto.StudyGroupDto;
import com.fourback.bemajor.domain.studygroup.dto.request.StudyGroupAlarmDto;
import com.fourback.bemajor.domain.studygroup.dto.response.StudyGroupApplicationCountResponse;
import com.fourback.bemajor.domain.studygroup.dto.response.StudyGroupApplicationResponse;
import com.fourback.bemajor.domain.studygroup.dto.response.StudyGroupDetailsResponseDto;
Expand All @@ -17,6 +18,9 @@
import com.fourback.bemajor.domain.user.dto.response.UserResponseDto;
import com.fourback.bemajor.domain.user.entity.UserEntity;
import com.fourback.bemajor.domain.user.repository.UserRepository;
import com.fourback.bemajor.global.common.enums.RedisKeyPrefixEnum;
import com.fourback.bemajor.global.common.service.FcmService;
import com.fourback.bemajor.global.common.service.RedisService;
import com.fourback.bemajor.global.exception.kind.NotFoundException;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
Expand All @@ -36,6 +40,8 @@ public class StudyJoinedService {
private final StudyJoinApplicationRepository studyJoinApplicationRepository;
private final StudyGroupNotificationService studyGroupNotificationService;
private final StudyGroupNotificationRepository studyGroupNotificationRepository;
private final RedisService redisService;
private final FcmService fcmService;

/**
* 스터디 그룹 참여 신청
Expand All @@ -51,6 +57,15 @@ public void joinStudyGroup(Long userId, Long studyGroupId) {
//TODO - 스터디 그룹 이미 지원했는지 검사

studyJoinApplicationRepository.save(new StudyJoinApplication(userEntity, studyGroup));

Long ownerUserId = studyGroup.getOwnerUserId();
String fcmToken = redisService.getValue(RedisKeyPrefixEnum.FCM, ownerUserId);
fcmService.sendStudyGroupAlarm(StudyGroupAlarmDto.builder()
.title(studyGroup.getStudyName())
.fcmToken(fcmToken)
.message(userEntity.getUserName() + "님이 그룹 참여를 신청하셨습니다.")
.build());

}

/**
Expand All @@ -70,6 +85,12 @@ public void authorizeStudyGroupApplication(Long studyJoinApplicationId){
studyJoinApplicationRepository.deleteById(studyJoinApplicationId);

studyGroupNotificationService.enableRealTimeNotification(studyGroupId,userId);

String fcmToken = redisService.getValue(RedisKeyPrefixEnum.FCM, user.getUserId());
fcmService.sendStudyGroupAlarm(StudyGroupAlarmDto.builder()
.fcmToken(fcmToken)
.title(studyGroup.getStudyName())
.message(studyGroup.getStudyName() + "그룹 입장신청이 수락되었습니다.").build());
}

/**
Expand Down

0 comments on commit ce2a0db

Please sign in to comment.