Skip to content

Commit

Permalink
refactor: 폴더 구조 변경
Browse files Browse the repository at this point in the history
  • Loading branch information
donghyuun committed Aug 20, 2024
1 parent 1b68af4 commit 9b500dc
Show file tree
Hide file tree
Showing 36 changed files with 68 additions and 243 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ bin/
### IntelliJ IDEA ###
application.properties
### firebase secret key ###
firebase-service-account
firebase-service-account.json

.idea
*.iws
Expand Down
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ dependencies {
// Lombok
annotationProcessor 'org.projectlombok:lombok'
// Firebase Cloud Messaging (FCM)
implementation 'com.google.firebase:firebase-admin:8.1.0'
implementation 'com.google.firebase:firebase-admin:9.2.0'
// Validation
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springframework.boot:spring-boot-starter-test'
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.example.apapbackend.Info;
package com.example.apapbackend.domain.Info;

import jakarta.persistence.Column;
import jakarta.persistence.Entity;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.example.apapbackend.Info;
package com.example.apapbackend.domain.Info;

import com.example.apapbackend.Info.dto.InfoRequest;
import com.example.apapbackend.domain.Info.dto.InfoRequest;
import io.swagger.v3.oas.annotations.Operation;
import jakarta.validation.Valid;
import java.time.LocalDateTime;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.example.apapbackend.Info;
package com.example.apapbackend.domain.Info;

import java.time.LocalDateTime;
import java.util.List;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,21 @@
package com.example.apapbackend.Info;
package com.example.apapbackend.domain.Info;

import com.example.apapbackend.Info.dto.InfoRequest;
import com.example.apapbackend.fcm.FCMService;
import com.example.apapbackend.fcm.FCMToken;
import com.example.apapbackend.fcm.FCMTokenRepository;
import com.example.apapbackend.s3.S3ImageFileUploader;
import com.example.apapbackend.domain.Info.dto.InfoRequest;
import com.example.apapbackend.domain.fcm.FCMService;
import com.example.apapbackend.domain.fcm.FCMToken;
import com.example.apapbackend.domain.fcm.FCMTokenRepository;
import com.example.apapbackend.global.s3.S3ImageFileUploader;
import java.io.IOException;
import java.time.Duration;
import java.time.LocalDateTime;
import java.util.List;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

@Slf4j
@Service
@RequiredArgsConstructor
public class InfoService {
Expand Down Expand Up @@ -74,20 +76,24 @@ public void processInfo(InfoRequest infoRequest) {
Duration duration = Duration.between(lastTimestamp, currentTimestamp);
// 같은 라벨이 30초 이상 지났다면 알림 전송 - "지속"
if (duration.getSeconds() >= 30) {
log.info("same label passed for 30 sec more");
Info savedInfo = save(infoRequest.cameraName(), currentTimestamp, label,
infoRequest.base64Image());
fcmService.sendNotificationToMany(tokens, infoRequest, savedInfo, false);
infoTracker.updateTimestamp(label, currentTimestamp);
}
log.info("same label not passed 30 secs");
return;
}

// 새로운 라벨에 대한 정보 저장 및 즉시 알림 전송 - "발생"
log.info("new label");
Info savedInfo = save(infoRequest.cameraName(), currentTimestamp, label, infoRequest.base64Image());
fcmService.sendNotificationToMany(tokens, infoRequest, savedInfo, true);

// 현재 라벨에 대한 타임스탬프 업데이트
infoTracker.updateTimestamp(label, currentTimestamp);
log.info("send message finished");
}


Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.example.apapbackend.Info;
package com.example.apapbackend.domain.Info;

import jakarta.persistence.criteria.CriteriaBuilder;
import jakarta.persistence.criteria.CriteriaQuery;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.example.apapbackend.Info;
package com.example.apapbackend.domain.Info;

import java.time.LocalDateTime;
import java.util.HashMap;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.example.apapbackend.Info.dto;
package com.example.apapbackend.domain.Info.dto;

import jakarta.validation.constraints.NotBlank;
import java.time.LocalDateTime;
Expand All @@ -10,7 +10,6 @@ public record InfoRequest(
String cameraName,
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME)
LocalDateTime localDateTime,

@NotBlank(message = "base64 image is mandatory")
String base64Image,
@NotBlank(message = "label is mandatory")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.example.apapbackend.dashBoard;
package com.example.apapbackend.domain.dashBoard;

import com.example.apapbackend.dashBoard.dto.DashBoardBottomResponse;
import com.example.apapbackend.dashBoard.dto.DashBoardTopResponse;
import com.example.apapbackend.domain.dashBoard.dto.DashBoardBottomResponse;
import com.example.apapbackend.domain.dashBoard.dto.DashBoardTopResponse;
import io.swagger.v3.oas.annotations.Operation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package com.example.apapbackend.dashBoard;
package com.example.apapbackend.domain.dashBoard;

import static com.example.apapbackend.dashBoard.dto.DashBoardTopResponse.*;
import static com.example.apapbackend.domain.dashBoard.dto.DashBoardTopResponse.*;

import com.example.apapbackend.Info.Info;
import com.example.apapbackend.Info.InfoRepository;
import com.example.apapbackend.dashBoard.dto.DashBoardBottomResponse;
import com.example.apapbackend.dashBoard.dto.DashBoardTopResponse;
import com.example.apapbackend.dashBoard.dto.DashBoardTopResponse.ChangeType;
import com.example.apapbackend.domain.Info.Info;
import com.example.apapbackend.domain.Info.InfoRepository;
import com.example.apapbackend.domain.dashBoard.dto.DashBoardBottomResponse;
import com.example.apapbackend.domain.dashBoard.dto.DashBoardTopResponse;
import com.example.apapbackend.domain.dashBoard.dto.DashBoardTopResponse.ChangeType;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.example.apapbackend.dashBoard.dto;
package com.example.apapbackend.domain.dashBoard.dto;

import java.time.LocalDate;
import java.util.List;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.example.apapbackend.dashBoard.dto;
package com.example.apapbackend.domain.dashBoard.dto;

public record DashBoardTopResponse(
Situation mostFrequentSituation, // 가장 많이 발생한 이상 상황
Expand Down
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
package com.example.apapbackend.fcm;
package com.example.apapbackend.domain.fcm;

import com.example.apapbackend.Info.Info;
import com.example.apapbackend.Info.dto.InfoRequest;
import com.example.apapbackend.fcm.dto.FCMTokenRequest;
import com.example.apapbackend.domain.Info.Info;
import com.example.apapbackend.domain.Info.dto.InfoRequest;
import com.example.apapbackend.domain.fcm.dto.FCMTokenRequest;
import com.google.firebase.messaging.BatchResponse;
import com.google.firebase.messaging.FirebaseMessaging;
import com.google.firebase.messaging.Message;
import com.google.firebase.messaging.MulticastMessage;
import com.google.firebase.messaging.Notification;
import com.google.firebase.messaging.SendResponse;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

@Slf4j
@Service
@RequiredArgsConstructor
public class FCMService {
Expand All @@ -29,7 +29,7 @@ public class FCMService {
*/
public void sendNotificationToMany(List<String> tokens, InfoRequest infoRequest, Info savedInfo, Boolean isNew) {
String newOrContinue = isNew ? " 발생" : " 지속중";

Map<String, String> data = new HashMap<>();
data.put("infoId", String.valueOf(savedInfo.getId())); // 이상 상황(Info) ID
data.put("isNew", Boolean.toString(isNew)); // 이상 상황 발생 or 지속 여부
Expand All @@ -45,6 +45,7 @@ public void sendNotificationToMany(List<String> tokens, InfoRequest infoRequest,
.putAllData(data)
.build();

log.info("fcmMessage: {}", fcmMessage);
try {
// 메시지 전송
BatchResponse response = FirebaseMessaging.getInstance().sendMulticast(fcmMessage);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.example.apapbackend.fcm;
package com.example.apapbackend.domain.fcm;

import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.example.apapbackend.fcm;
package com.example.apapbackend.domain.fcm;

import com.example.apapbackend.fcm.dto.FCMTokenRequest;
import com.example.apapbackend.domain.fcm.dto.FCMTokenRequest;
import io.swagger.v3.oas.annotations.Operation;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.example.apapbackend.fcm;
package com.example.apapbackend.domain.fcm;

import org.springframework.data.jpa.repository.JpaRepository;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.example.apapbackend.fcm.dto;
package com.example.apapbackend.domain.fcm.dto;

import com.example.apapbackend.fcm.FCMToken;
import com.example.apapbackend.domain.fcm.FCMToken;
import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotBlank;

Expand Down
18 changes: 0 additions & 18 deletions src/main/java/com/example/apapbackend/gemini/GeminiInterface.java

This file was deleted.

33 changes: 0 additions & 33 deletions src/main/java/com/example/apapbackend/gemini/GeminiService.java

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package global.exception;
package com.example.apapbackend.global.exception;

import org.springframework.http.HttpStatus;

Expand Down
Loading

0 comments on commit 9b500dc

Please sign in to comment.