diff --git a/pom.xml b/pom.xml
index deaf544d4dfd4392689fc73ce2fb2f1f2605594a..a15cd30dd0d8149ddc4c976830970675ec1d2f89 100644
--- a/pom.xml
+++ b/pom.xml
@@ -35,6 +35,12 @@
spring-boot-starter-data-redis
+
+ com.google.firebase
+ firebase-admin
+ 9.2.0
+
+
redis.clients
jedis
diff --git a/src/main/java/com/utility/utilitycommonservice/UtilityCommonServiceApplication.java b/src/main/java/com/utility/utilitycommonservice/UtilityCommonServiceApplication.java
index c4b9a2b17f1bfb8e049c6ed7384eb863a8b82460..772b3069fe17704366e8e2495ebac426e744d1f9 100644
--- a/src/main/java/com/utility/utilitycommonservice/UtilityCommonServiceApplication.java
+++ b/src/main/java/com/utility/utilitycommonservice/UtilityCommonServiceApplication.java
@@ -1,9 +1,7 @@
package com.utility.utilitycommonservice;
-import com.utility.utilitycommonservice.common.properties.BitbucketProperties;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication
diff --git a/src/main/java/com/utility/utilitycommonservice/api/controller/bitbucket/BitbucketController.java b/src/main/java/com/utility/utilitycommonservice/api/controller/bitbucket/BitbucketController.java
index 7685f9087dcf0f139f148846e1f4f0b19b22269f..dd48d703b9d687ac7f59c1684953de251dd7f42e 100644
--- a/src/main/java/com/utility/utilitycommonservice/api/controller/bitbucket/BitbucketController.java
+++ b/src/main/java/com/utility/utilitycommonservice/api/controller/bitbucket/BitbucketController.java
@@ -7,7 +7,7 @@ import com.utility.utilitycommonservice.common.base.controller.BaseController;
import com.utility.utilitycommonservice.common.base.response.MessageResponse;
import com.utility.utilitycommonservice.domain.model.bitbucket.input.UploadFileInput;
import com.utility.utilitycommonservice.domain.service.bitbucket.BitbucketService;
-import com.utility.utilitycommonservice.integration.service.model.response.CreateBranchClientResponse;
+import com.utility.utilitycommonservice.integration.service.model.response.bitbucket.CreateBranchClientResponse;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
diff --git a/src/main/java/com/utility/utilitycommonservice/api/controller/localize/LocalizeController.java b/src/main/java/com/utility/utilitycommonservice/api/controller/localize/LocalizeController.java
index cf4cd7fd60573e7df05a61741d42262747e4760d..cf0c8e1e1eda5241eab886a3527e4f0cce9db631 100644
--- a/src/main/java/com/utility/utilitycommonservice/api/controller/localize/LocalizeController.java
+++ b/src/main/java/com/utility/utilitycommonservice/api/controller/localize/LocalizeController.java
@@ -1,5 +1,6 @@
package com.utility.utilitycommonservice.api.controller.localize;
+import com.utility.utilitycommonservice.api.model.request.AddLocalizeRequest;
import com.utility.utilitycommonservice.api.model.request.RequestByKey;
import com.utility.utilitycommonservice.api.model.response.ResponseByKey;
import com.utility.utilitycommonservice.common.base.controller.BaseController;
@@ -11,6 +12,8 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
+import java.io.IOException;
+
@RestController
@RequiredArgsConstructor
@RequestMapping("/api/v1/localize")
@@ -24,4 +27,10 @@ public class LocalizeController extends BaseController {
return responseSuccess(output.toResponse());
}
+ @PostMapping("/addLocalize")
+ public MessageResponse addLocalize(@RequestBody AddLocalizeRequest request) throws IOException {
+ localizeService.addLocalize(request.toInput());
+ return responseSuccess();
+ }
+
}
diff --git a/src/main/java/com/utility/utilitycommonservice/api/controller/notification/PushController.java b/src/main/java/com/utility/utilitycommonservice/api/controller/notification/PushController.java
new file mode 100644
index 0000000000000000000000000000000000000000..83f601946849bff1b1e2f158aaa327e405f49649
--- /dev/null
+++ b/src/main/java/com/utility/utilitycommonservice/api/controller/notification/PushController.java
@@ -0,0 +1,34 @@
+package com.utility.utilitycommonservice.api.controller.notification;
+
+import com.utility.utilitycommonservice.api.model.request.CrudNotificationRequest;
+import com.utility.utilitycommonservice.api.model.request.PushNotificationByDomainRequest;
+import com.utility.utilitycommonservice.api.model.response.CrudNotificationResponse;
+import com.utility.utilitycommonservice.common.base.controller.BaseController;
+import com.utility.utilitycommonservice.common.base.response.MessageResponse;
+import com.utility.utilitycommonservice.domain.service.clientbe.notification.PushService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequiredArgsConstructor
+@RequestMapping("/api/v1/notification")
+public class PushController extends BaseController {
+
+ private final PushService pushService;
+
+ @PostMapping("/pushByDomain")
+ public MessageResponse pushNotificationByDomain(@RequestBody PushNotificationByDomainRequest request) {
+ pushService.pushNotificationByDomain(request.toInput());
+ return responseSuccess();
+ }
+
+ @PostMapping("/crudNotification")
+ public MessageResponse crudNotification(@RequestBody CrudNotificationRequest request) {
+ var output = pushService.crudNotification(request.toInput());
+ return responseSuccess(output.toResponse());
+ }
+
+}
diff --git a/src/main/java/com/utility/utilitycommonservice/domain/model/localize/KeyValueParameter.java b/src/main/java/com/utility/utilitycommonservice/api/model/KeyValueParameter.java
similarity index 86%
rename from src/main/java/com/utility/utilitycommonservice/domain/model/localize/KeyValueParameter.java
rename to src/main/java/com/utility/utilitycommonservice/api/model/KeyValueParameter.java
index cefdf94e2a08c0e12a9c2fafc6a9d1c132bcc45b..e0027bb04803018efb5f0cc39723dbc4285d907e 100644
--- a/src/main/java/com/utility/utilitycommonservice/domain/model/localize/KeyValueParameter.java
+++ b/src/main/java/com/utility/utilitycommonservice/api/model/KeyValueParameter.java
@@ -1,4 +1,4 @@
-package com.utility.utilitycommonservice.domain.model.localize;
+package com.utility.utilitycommonservice.api.model;
import lombok.AllArgsConstructor;
import lombok.Builder;
diff --git a/src/main/java/com/utility/utilitycommonservice/api/model/request/AddLocalizeRequest.java b/src/main/java/com/utility/utilitycommonservice/api/model/request/AddLocalizeRequest.java
new file mode 100644
index 0000000000000000000000000000000000000000..bfbfa919519399360f1763001800b76562ca940b
--- /dev/null
+++ b/src/main/java/com/utility/utilitycommonservice/api/model/request/AddLocalizeRequest.java
@@ -0,0 +1,22 @@
+package com.utility.utilitycommonservice.api.model.request;
+
+import com.utility.utilitycommonservice.domain.model.localize.input.AddLocalizeInput;
+import lombok.Builder;
+import lombok.Data;
+
+@Data
+@Builder
+public class AddLocalizeRequest {
+ private String language;
+ private String key;
+ private String value;
+
+ public AddLocalizeInput toInput() {
+ return AddLocalizeInput.builder()
+ .language(language)
+ .key(key)
+ .value(value)
+ .build();
+ }
+
+}
diff --git a/src/main/java/com/utility/utilitycommonservice/api/model/request/CrudNotificationRequest.java b/src/main/java/com/utility/utilitycommonservice/api/model/request/CrudNotificationRequest.java
new file mode 100644
index 0000000000000000000000000000000000000000..eabafefc19e8a0bbdf2b42dd569e892eb2df21c9
--- /dev/null
+++ b/src/main/java/com/utility/utilitycommonservice/api/model/request/CrudNotificationRequest.java
@@ -0,0 +1,22 @@
+package com.utility.utilitycommonservice.api.model.request;
+
+import com.utility.utilitycommonservice.domain.model.notification.enums.CrudType;
+import com.utility.utilitycommonservice.domain.model.notification.input.CrudNotificationInput;
+import lombok.Builder;
+import lombok.Data;
+
+@Data
+@Builder
+public class CrudNotificationRequest {
+
+ private CrudType crudType;
+ private String uid;
+
+ public CrudNotificationInput toInput() {
+ return CrudNotificationInput.builder()
+ .crudType(crudType)
+ .uid(uid)
+ .build();
+ }
+
+}
diff --git a/src/main/java/com/utility/utilitycommonservice/api/model/request/PushNotificationByDomainRequest.java b/src/main/java/com/utility/utilitycommonservice/api/model/request/PushNotificationByDomainRequest.java
new file mode 100644
index 0000000000000000000000000000000000000000..6ace98589b44a986747b135c490e3378506c251e
--- /dev/null
+++ b/src/main/java/com/utility/utilitycommonservice/api/model/request/PushNotificationByDomainRequest.java
@@ -0,0 +1,21 @@
+package com.utility.utilitycommonservice.api.model.request;
+
+import com.utility.utilitycommonservice.domain.model.notification.InfoModel;
+import com.utility.utilitycommonservice.domain.model.notification.input.PushNotificationByDomainInput;
+import lombok.Builder;
+import lombok.Data;
+
+@Data
+@Builder
+public class PushNotificationByDomainRequest {
+ private InfoModel infoModel;
+ private String domainCode;
+
+ public PushNotificationByDomainInput toInput() {
+ return PushNotificationByDomainInput.builder()
+ .infoModel(infoModel)
+ .domainCode(domainCode)
+ .build();
+ }
+
+}
diff --git a/src/main/java/com/utility/utilitycommonservice/api/model/response/CrudNotificationResponse.java b/src/main/java/com/utility/utilitycommonservice/api/model/response/CrudNotificationResponse.java
new file mode 100644
index 0000000000000000000000000000000000000000..7fe9bb1cff64b6f8ca3f98c2ffe0eee0a4ebf663
--- /dev/null
+++ b/src/main/java/com/utility/utilitycommonservice/api/model/response/CrudNotificationResponse.java
@@ -0,0 +1,15 @@
+package com.utility.utilitycommonservice.api.model.response;
+
+import com.utility.utilitycommonservice.domain.model.notification.Notification;
+import lombok.Builder;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@Builder
+public class CrudNotificationResponse {
+
+ private List notifications;
+
+}
diff --git a/src/main/java/com/utility/utilitycommonservice/api/model/response/MenuResponse.java b/src/main/java/com/utility/utilitycommonservice/api/model/response/MenuResponse.java
index aebad6e169a4ca34bde0c71562bff02c82987d3d..3e9c420f3868b34dcb9ec833720babbbcd1ef2ef 100644
--- a/src/main/java/com/utility/utilitycommonservice/api/model/response/MenuResponse.java
+++ b/src/main/java/com/utility/utilitycommonservice/api/model/response/MenuResponse.java
@@ -1,5 +1,6 @@
package com.utility.utilitycommonservice.api.model.response;
+import com.utility.utilitycommonservice.api.model.KeyValueParameter;
import com.utility.utilitycommonservice.domain.model.clientbe.MenuModel;
import lombok.Builder;
import lombok.Data;
@@ -9,5 +10,5 @@ import java.util.List;
@Data
@Builder
public class MenuResponse {
- private List menuList;
+ private List> menuList;
}
diff --git a/src/main/java/com/utility/utilitycommonservice/common/base/controller/BaseController.java b/src/main/java/com/utility/utilitycommonservice/common/base/controller/BaseController.java
index 81ca2b20e2f2558008557c4deadd7893f33ed546..b505352ff89ddf3625be1d776da9508a6bd19c8e 100644
--- a/src/main/java/com/utility/utilitycommonservice/common/base/controller/BaseController.java
+++ b/src/main/java/com/utility/utilitycommonservice/common/base/controller/BaseController.java
@@ -22,4 +22,8 @@ public abstract class BaseController {
return MsgResponseBuilder.build(true,messageBox,data);
}
+ protected MessageResponse responseSuccess() {
+ return MsgResponseBuilder.build(true);
+ }
+
}
diff --git a/src/main/java/com/utility/utilitycommonservice/common/base/response/MessageResponse.java b/src/main/java/com/utility/utilitycommonservice/common/base/response/MessageResponse.java
index 5b3d4f82e43464ffa8d6b01be8766e85fc196343..52141d719708eb002286d292e8c34274dddc2109 100644
--- a/src/main/java/com/utility/utilitycommonservice/common/base/response/MessageResponse.java
+++ b/src/main/java/com/utility/utilitycommonservice/common/base/response/MessageResponse.java
@@ -39,4 +39,9 @@ public class MessageResponse {
this.executionDate = ZonedDateTime.now().format(DateTimeFormatter.ISO_LOCAL_DATE);
}
+ public MessageResponse(boolean success){
+ this.success = success;
+ this.executionDate = ZonedDateTime.now().format(DateTimeFormatter.ISO_LOCAL_DATE);
+ }
+
}
diff --git a/src/main/java/com/utility/utilitycommonservice/common/base/response/builder/MsgResponseBuilder.java b/src/main/java/com/utility/utilitycommonservice/common/base/response/builder/MsgResponseBuilder.java
index 426c393f0fab4009dd7ed1abeea9093a3035241d..ac433ba274a6146147c988c21a0ffd8765571a38 100644
--- a/src/main/java/com/utility/utilitycommonservice/common/base/response/builder/MsgResponseBuilder.java
+++ b/src/main/java/com/utility/utilitycommonservice/common/base/response/builder/MsgResponseBuilder.java
@@ -25,4 +25,8 @@ public class MsgResponseBuilder {
return new MessageResponse<>(success,data,messageBox);
}
+ public static MessageResponse build(boolean success) {
+ return new MessageResponse<>(success);
+ }
+
}
diff --git a/src/main/java/com/utility/utilitycommonservice/common/interceptor/ResponseErrorHandler.java b/src/main/java/com/utility/utilitycommonservice/common/interceptor/ResponseErrorHandler.java
index 12b439dfbeafe127e07bd6acf254776cf5b5f14a..c8471c04e665e64950e47f8e7d56e98a8a7df85a 100644
--- a/src/main/java/com/utility/utilitycommonservice/common/interceptor/ResponseErrorHandler.java
+++ b/src/main/java/com/utility/utilitycommonservice/common/interceptor/ResponseErrorHandler.java
@@ -13,12 +13,11 @@ import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestControllerAdvice;
import org.springframework.web.client.HttpClientErrorException;
-import org.springframework.web.method.HandlerMethod;
import java.util.ArrayList;
import java.util.List;
-import static com.utility.utilitycommonservice.common.constant.BitbucketServiceConstant.*;
+import static com.utility.utilitycommonservice.domain.constant.BitbucketServiceConstant.*;
@RestControllerAdvice
@RequiredArgsConstructor
diff --git a/src/main/java/com/utility/utilitycommonservice/common/redis/RedisUtil.java b/src/main/java/com/utility/utilitycommonservice/common/redis/RedisUtil.java
index f92f3adcd1bf18fbb182342aa74358e4fc151ee1..9363091e70d12c34c0843e9bfe02901677403bd6 100644
--- a/src/main/java/com/utility/utilitycommonservice/common/redis/RedisUtil.java
+++ b/src/main/java/com/utility/utilitycommonservice/common/redis/RedisUtil.java
@@ -21,6 +21,10 @@ public class RedisUtil {
valueOperations.set(key,value,expirationTime,expirationTimeUnit);
}
+ public void putValue(String key, Object value) {
+ valueOperations.set(key,value);
+ }
+
public Object getValue(String key) {
return valueOperations.get(key);
}
diff --git a/src/main/java/com/utility/utilitycommonservice/common/service/SessionService.java b/src/main/java/com/utility/utilitycommonservice/common/service/SessionService.java
index b77d9b8f9c91d201d47bec7af8c4f0ba1943a168..98d59ebe64c1ebc381ead3491bb304eba063dc43 100644
--- a/src/main/java/com/utility/utilitycommonservice/common/service/SessionService.java
+++ b/src/main/java/com/utility/utilitycommonservice/common/service/SessionService.java
@@ -6,6 +6,8 @@ public interface SessionService {
T getSession(String sessionKey, Class returnType, boolean... isNullable);
+ void setSession(String sessionKey, T object);
+
void removeSession(String sessionKey);
}
diff --git a/src/main/java/com/utility/utilitycommonservice/common/service/impl/SessionServiceImpl.java b/src/main/java/com/utility/utilitycommonservice/common/service/impl/SessionServiceImpl.java
index 163705597882355a90da80911aa41ba6fd6b26bd..63f3085c08a730f8c35e5090adf7328cc7ade458 100644
--- a/src/main/java/com/utility/utilitycommonservice/common/service/impl/SessionServiceImpl.java
+++ b/src/main/java/com/utility/utilitycommonservice/common/service/impl/SessionServiceImpl.java
@@ -33,6 +33,12 @@ public class SessionServiceImpl implements SessionService {
redisUtil.putValue(key,object,Integer.parseInt(expireTime), TimeUnit.MINUTES);
}
+ @Override
+ public void setSession(String sessionKey, T object) {
+ String key = StringUtils.isEmpty(sessionKey) ? requestHeaderScope.getRequestHeader().getSessionId() : sessionKey;
+ redisUtil.putValue(key,object);
+ }
+
@Override
public T getSession(String sessionKey, Class returnType, boolean... isNullable) {
Object sessionObject = null;
diff --git a/src/main/java/com/utility/utilitycommonservice/common/util/BitbucketBasicAuthGenerator.java b/src/main/java/com/utility/utilitycommonservice/common/util/BitbucketBasicAuthGenerator.java
index 074ed0d5ade562e76b7d6428297c7c1488d2dfd6..330a055c30c23a9c8a3c22de832140d8d405582b 100644
--- a/src/main/java/com/utility/utilitycommonservice/common/util/BitbucketBasicAuthGenerator.java
+++ b/src/main/java/com/utility/utilitycommonservice/common/util/BitbucketBasicAuthGenerator.java
@@ -1,6 +1,6 @@
package com.utility.utilitycommonservice.common.util;
-import com.utility.utilitycommonservice.common.properties.BitbucketProperties;
+import com.utility.utilitycommonservice.domain.properties.BitbucketProperties;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/utility/utilitycommonservice/dao/entity/PushNotificationLog.java b/src/main/java/com/utility/utilitycommonservice/dao/entity/PushNotificationLog.java
new file mode 100644
index 0000000000000000000000000000000000000000..d01a53f45bba440df8b4b4d457127bee5b648a5f
--- /dev/null
+++ b/src/main/java/com/utility/utilitycommonservice/dao/entity/PushNotificationLog.java
@@ -0,0 +1,51 @@
+package com.utility.utilitycommonservice.dao.entity;
+
+import com.utility.utilitycommonservice.domain.model.notification.Notification;
+import com.utility.utilitycommonservice.domain.model.notification.attributes.LogTypeAttribute;
+import com.utility.utilitycommonservice.domain.model.notification.enums.LogType;
+import jakarta.persistence.Column;
+import jakarta.persistence.Convert;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.time.LocalDate;
+import java.util.ArrayList;
+import java.util.List;
+
+@AllArgsConstructor
+@NoArgsConstructor
+@Data
+@Entity
+@Builder
+public class PushNotificationLog {
+
+ @Id
+ private String uid;
+ private String messageId;
+ private String customerNumber;
+ private String domainCode;
+ private Boolean isRead; // false - okunmadı, true - okundu
+ private Boolean isRemove; // false - sininmedi, true - silindi
+ private LocalDate createDate;
+
+ @Column(name = "text", columnDefinition = "text")
+ private String text;
+
+ @Convert(converter = LogTypeAttribute.class)
+ private LogType logType;
+
+ public static List toNotificationList(List pushNotificationLogs) {
+ List notifications = new ArrayList<>();
+
+ pushNotificationLogs.forEach(pushNotificationLog -> {
+ Notification notification = Notification.toNotification(pushNotificationLog);
+ notifications.add(notification);
+ });
+ return notifications;
+ }
+
+}
diff --git a/src/main/java/com/utility/utilitycommonservice/dao/repository/PushNotificationLogRepository.java b/src/main/java/com/utility/utilitycommonservice/dao/repository/PushNotificationLogRepository.java
new file mode 100644
index 0000000000000000000000000000000000000000..226cebe01f044305b17caf264112cedd8d3454c8
--- /dev/null
+++ b/src/main/java/com/utility/utilitycommonservice/dao/repository/PushNotificationLogRepository.java
@@ -0,0 +1,18 @@
+package com.utility.utilitycommonservice.dao.repository;
+
+import com.utility.utilitycommonservice.dao.entity.PushNotificationLog;
+import com.utility.utilitycommonservice.domain.model.notification.enums.LogType;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+import java.time.LocalDate;
+import java.util.List;
+import java.util.Optional;
+
+@Repository
+public interface PushNotificationLogRepository extends JpaRepository {
+ List findAllByCustomerNumberEqualsIgnoreCaseAndLogTypeAndIsRemoveIsFalseAndCreateDateBetween(String customerNumber,
+ LogType logType, LocalDate startDate,
+ LocalDate endDate);
+ Optional findAllByUidAndIsRemoveIsFalse(String uuid);
+}
diff --git a/src/main/java/com/utility/utilitycommonservice/domain/assembler/CrudAssembler.java b/src/main/java/com/utility/utilitycommonservice/domain/assembler/CrudAssembler.java
new file mode 100644
index 0000000000000000000000000000000000000000..d6024e1831d0947145a425d0b7a573e7ba88a783
--- /dev/null
+++ b/src/main/java/com/utility/utilitycommonservice/domain/assembler/CrudAssembler.java
@@ -0,0 +1,69 @@
+package com.utility.utilitycommonservice.domain.assembler;
+
+import com.utility.utilitycommonservice.common.helper.RequestScopeHelper;
+import com.utility.utilitycommonservice.dao.entity.PushNotificationLog;
+import com.utility.utilitycommonservice.dao.repository.PushNotificationLogRepository;
+import com.utility.utilitycommonservice.domain.model.notification.Notification;
+import com.utility.utilitycommonservice.domain.model.notification.enums.CrudType;
+import com.utility.utilitycommonservice.domain.model.notification.enums.LogType;
+import com.utility.utilitycommonservice.domain.model.notification.input.CrudNotificationInput;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Component;
+
+import java.time.LocalDate;
+import java.util.List;
+import java.util.Objects;
+import java.util.Optional;
+
+@Component
+@RequiredArgsConstructor
+public class CrudAssembler {
+
+ private final PushNotificationLogRepository pushNotificationLogRepository;
+
+ public List assemble(CrudNotificationInput input) {
+ if (Objects.requireNonNull(input.getCrudType()) == CrudType.LIST) {
+ return getNotifications();
+ } else if (Objects.requireNonNull(input.getCrudType()) == CrudType.READ) {
+ updateReadStatus(input.getUid());
+ } else if (Objects.requireNonNull(input.getCrudType()) == CrudType.REMOVE) {
+ updateRemoveStatus(input.getUid());
+ }
+ return List.of();
+ }
+
+ private void updateReadStatus(String uid) {
+
+ Optional optPushNotificationLog = pushNotificationLogRepository.findAllByUidAndIsRemoveIsFalse(uid);
+ if (optPushNotificationLog.isPresent()) {
+ PushNotificationLog pushNotificationLog = optPushNotificationLog.get();
+ if (Boolean.FALSE.equals(pushNotificationLog.getIsRead())) {
+ pushNotificationLog.setIsRead(Boolean.TRUE);
+ } else {
+ pushNotificationLog.setIsRead(Boolean.FALSE);
+ }
+ pushNotificationLogRepository.saveAndFlush(pushNotificationLog);
+ }
+ }
+
+ private void updateRemoveStatus(String uid) {
+ Optional optPushNotificationLog = pushNotificationLogRepository.findAllByUidAndIsRemoveIsFalse(uid);
+ if (optPushNotificationLog.isPresent()) {
+ PushNotificationLog pushNotificationLog = optPushNotificationLog.get();
+ pushNotificationLog.setIsRemove(Boolean.TRUE);
+ pushNotificationLogRepository.saveAndFlush(pushNotificationLog);
+ }
+ }
+
+ private List getNotifications() {
+
+ List pushNotificationLogs = pushNotificationLogRepository.findAllByCustomerNumberEqualsIgnoreCaseAndLogTypeAndIsRemoveIsFalseAndCreateDateBetween(
+ RequestScopeHelper.getCustomerNumber(),
+ LogType.INFO,
+ LocalDate.now().minusMonths(2),
+ LocalDate.now());
+
+ return PushNotificationLog.toNotificationList(pushNotificationLogs);
+ }
+
+}
diff --git a/src/main/java/com/utility/utilitycommonservice/common/constant/BitbucketServiceConstant.java b/src/main/java/com/utility/utilitycommonservice/domain/constant/BitbucketServiceConstant.java
similarity index 88%
rename from src/main/java/com/utility/utilitycommonservice/common/constant/BitbucketServiceConstant.java
rename to src/main/java/com/utility/utilitycommonservice/domain/constant/BitbucketServiceConstant.java
index 4af317e4954283ae73ef37137d62abd45d20a0aa..c8df47db734e69feb191cd2935406c473bf48aa2 100644
--- a/src/main/java/com/utility/utilitycommonservice/common/constant/BitbucketServiceConstant.java
+++ b/src/main/java/com/utility/utilitycommonservice/domain/constant/BitbucketServiceConstant.java
@@ -1,4 +1,4 @@
-package com.utility.utilitycommonservice.common.constant;
+package com.utility.utilitycommonservice.domain.constant;
public class BitbucketServiceConstant {
diff --git a/src/main/java/com/utility/utilitycommonservice/common/constant/LocalizeConstant.java b/src/main/java/com/utility/utilitycommonservice/domain/constant/LocalizeConstant.java
similarity index 71%
rename from src/main/java/com/utility/utilitycommonservice/common/constant/LocalizeConstant.java
rename to src/main/java/com/utility/utilitycommonservice/domain/constant/LocalizeConstant.java
index b9b097779e033afdb587884a248a56b34614265b..a3dddfe4a5f59c9228ec7d26aba3b7ac1e2c6144 100644
--- a/src/main/java/com/utility/utilitycommonservice/common/constant/LocalizeConstant.java
+++ b/src/main/java/com/utility/utilitycommonservice/domain/constant/LocalizeConstant.java
@@ -1,4 +1,4 @@
-package com.utility.utilitycommonservice.common.constant;
+package com.utility.utilitycommonservice.domain.constant;
public class LocalizeConstant {
diff --git a/src/main/java/com/utility/utilitycommonservice/domain/model/bitbucket/output/CreateBranchOutput.java b/src/main/java/com/utility/utilitycommonservice/domain/model/bitbucket/output/CreateBranchOutput.java
index 66e9fbf617621d77a0a961fd6832f8ed062df5ff..559fa5b8627696e9d5a4932a7d07656e44660b78 100644
--- a/src/main/java/com/utility/utilitycommonservice/domain/model/bitbucket/output/CreateBranchOutput.java
+++ b/src/main/java/com/utility/utilitycommonservice/domain/model/bitbucket/output/CreateBranchOutput.java
@@ -1,7 +1,7 @@
package com.utility.utilitycommonservice.domain.model.bitbucket.output;
import com.utility.utilitycommonservice.integration.service.model.Target;
-import com.utility.utilitycommonservice.integration.service.model.response.CreateBranchClientResponse;
+import com.utility.utilitycommonservice.integration.service.model.response.bitbucket.CreateBranchClientResponse;
import lombok.Builder;
import lombok.Data;
diff --git a/src/main/java/com/utility/utilitycommonservice/domain/model/clientbe/output/MenuOutput.java b/src/main/java/com/utility/utilitycommonservice/domain/model/clientbe/output/MenuOutput.java
index 786a644da95c6e0e1109a312cb5330089243189c..e97773c6ffe8e9516a00c31ae85cae6b36d07e0f 100644
--- a/src/main/java/com/utility/utilitycommonservice/domain/model/clientbe/output/MenuOutput.java
+++ b/src/main/java/com/utility/utilitycommonservice/domain/model/clientbe/output/MenuOutput.java
@@ -1,5 +1,6 @@
package com.utility.utilitycommonservice.domain.model.clientbe.output;
+import com.utility.utilitycommonservice.api.model.KeyValueParameter;
import com.utility.utilitycommonservice.api.model.response.MenuResponse;
import com.utility.utilitycommonservice.dao.entity.Menu;
import com.utility.utilitycommonservice.domain.model.clientbe.MenuModel;
@@ -17,7 +18,7 @@ import java.util.List;
@NoArgsConstructor
public class MenuOutput {
- private List menuList;
+ private List> menuList;
public MenuResponse toResponse() {
return MenuResponse.builder()
@@ -27,11 +28,11 @@ public class MenuOutput {
public static MenuOutput toOutput(List