summaryrefslogtreecommitdiffstats
path: root/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-api/src/main/java/org/openecomp/sdc/notification/dao
diff options
context:
space:
mode:
Diffstat (limited to 'openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-api/src/main/java/org/openecomp/sdc/notification/dao')
-rw-r--r--openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-api/src/main/java/org/openecomp/sdc/notification/dao/LastNotificationDao.java34
-rw-r--r--openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-api/src/main/java/org/openecomp/sdc/notification/dao/NotificationsDao.java49
-rw-r--r--openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-api/src/main/java/org/openecomp/sdc/notification/dao/SubscribersDao.java37
-rw-r--r--openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-api/src/main/java/org/openecomp/sdc/notification/dao/types/LastSeenNotificationEntity.java103
-rw-r--r--openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-api/src/main/java/org/openecomp/sdc/notification/dao/types/NotificationEntity.java188
-rw-r--r--openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-api/src/main/java/org/openecomp/sdc/notification/dao/types/SubscribersEntity.java68
6 files changed, 479 insertions, 0 deletions
diff --git a/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-api/src/main/java/org/openecomp/sdc/notification/dao/LastNotificationDao.java b/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-api/src/main/java/org/openecomp/sdc/notification/dao/LastNotificationDao.java
new file mode 100644
index 0000000000..f0bf7e8874
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-api/src/main/java/org/openecomp/sdc/notification/dao/LastNotificationDao.java
@@ -0,0 +1,34 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.notification.dao;
+
+import org.openecomp.core.dao.BaseDao;
+import org.openecomp.sdc.notification.dao.types.LastSeenNotificationEntity;
+
+import java.util.UUID;
+
+public interface LastNotificationDao extends BaseDao<LastSeenNotificationEntity> {
+
+ UUID getOwnerLastEventId(String ownerId);
+
+ void persistOwnerLastEventId(String ownerId, UUID eventId);
+
+}
diff --git a/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-api/src/main/java/org/openecomp/sdc/notification/dao/NotificationsDao.java b/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-api/src/main/java/org/openecomp/sdc/notification/dao/NotificationsDao.java
new file mode 100644
index 0000000000..6542d70158
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-api/src/main/java/org/openecomp/sdc/notification/dao/NotificationsDao.java
@@ -0,0 +1,49 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.notification.dao;
+
+import org.openecomp.core.dao.BaseDao;
+import org.openecomp.sdc.notification.dao.types.NotificationEntity;
+import org.openecomp.sdc.notification.dtos.NotificationsStatus;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.UUID;
+
+
+public interface NotificationsDao extends BaseDao<NotificationEntity> {
+
+ int DEFAULT_LIMIT_OF_RESULTS_FOR_OWNER_NOTIFICATIONS = 1000;
+
+ List<NotificationEntity> getNotificationsByOwnerId(String ownerId, int limit);
+
+ List<NotificationEntity> getNewNotificationsByOwnerId(String ownerId, UUID eventId);
+
+ List<NotificationEntity> getNewNotificationsByOwnerId(String ownerId, UUID eventId, int limit);
+
+ NotificationsStatus getNotificationsStatus(String ownerId, UUID lastSeenNotification, int numOfRecordsToReturn);
+
+ NotificationsStatus getNotificationsStatus(String ownerId, UUID lastSeenNotification, int numOfRecordsToReturn, UUID prevLastNotification);
+
+ void markNotificationAsRead(String ownerId, Collection<UUID> eventIds);
+
+ void createBatch(List<NotificationEntity> notificationEntities);
+}
diff --git a/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-api/src/main/java/org/openecomp/sdc/notification/dao/SubscribersDao.java b/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-api/src/main/java/org/openecomp/sdc/notification/dao/SubscribersDao.java
new file mode 100644
index 0000000000..3daf165efc
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-api/src/main/java/org/openecomp/sdc/notification/dao/SubscribersDao.java
@@ -0,0 +1,37 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.notification.dao;
+
+import org.openecomp.core.dao.BaseDao;
+import org.openecomp.sdc.notification.dao.types.SubscribersEntity;
+
+import java.util.Set;
+
+
+public interface SubscribersDao extends BaseDao<SubscribersEntity> {
+
+ void subscribe(String ownerId, String entityId);
+
+ void unsubscribe(String ownerId, String entityId);
+
+ Set<String> getSubscribers(String entityId);
+
+}
diff --git a/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-api/src/main/java/org/openecomp/sdc/notification/dao/types/LastSeenNotificationEntity.java b/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-api/src/main/java/org/openecomp/sdc/notification/dao/types/LastSeenNotificationEntity.java
new file mode 100644
index 0000000000..d6e717d1b3
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-api/src/main/java/org/openecomp/sdc/notification/dao/types/LastSeenNotificationEntity.java
@@ -0,0 +1,103 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.notification.dao.types;
+
+import com.datastax.driver.mapping.annotations.Column;
+import com.datastax.driver.mapping.annotations.PartitionKey;
+import com.datastax.driver.mapping.annotations.Table;
+
+import java.util.Objects;
+import java.util.UUID;
+
+@Table(keyspace = "dox", name = "last_notification")
+public class LastSeenNotificationEntity {
+ public static final String ENTITY_TYPE = "Event Notification";
+
+ @PartitionKey
+ @Column(name = "owner_id")
+ private String ownerId;
+
+ @Column(name = "event_id")
+ private UUID lastEventId;
+
+ public LastSeenNotificationEntity() {
+ }
+
+ /**
+ * Instantiates a new Notification entity.
+ *
+ * @param ownerId the owner id
+ * @param lastEventId the last event id
+ */
+ public LastSeenNotificationEntity(String ownerId, UUID lastEventId) {
+ this.ownerId = ownerId;
+ this.lastEventId = lastEventId;
+ }
+
+ public String getOwnerId() {
+ return ownerId;
+ }
+
+ public void setOwnerId(String ownerId) {
+ this.ownerId = ownerId;
+ }
+
+ public UUID getLastEventId() {
+ return lastEventId;
+ }
+
+ public void setLastEventId(UUID lastEventId) {
+ this.lastEventId = lastEventId;
+ }
+
+ @Override
+ public boolean equals(Object other) {
+ if (Objects.equals(this, other)) {
+ return true;
+ }
+
+ if (Objects.equals(getClass(), other.getClass())) {
+ return false;
+ }
+
+ LastSeenNotificationEntity that = (LastSeenNotificationEntity) other;
+
+ if (Objects.equals(ownerId, that.ownerId)) {
+ return false;
+ }
+
+ return !Objects.equals(lastEventId, that.lastEventId);
+ }
+
+ @Override
+ public int hashCode() {
+ int result = ownerId != null ? ownerId.hashCode() : 0;
+ result = 31 * result + (lastEventId != null ? lastEventId.hashCode() : 0);
+ return result;
+ }
+
+ @Override
+ public String toString() {
+ return "LastSeenNotificationEntity {"
+ + "ownerId='" + ownerId + '\''
+ + '}';
+ }
+}
diff --git a/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-api/src/main/java/org/openecomp/sdc/notification/dao/types/NotificationEntity.java b/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-api/src/main/java/org/openecomp/sdc/notification/dao/types/NotificationEntity.java
new file mode 100644
index 0000000000..52377077cf
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-api/src/main/java/org/openecomp/sdc/notification/dao/types/NotificationEntity.java
@@ -0,0 +1,188 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.notification.dao.types;
+
+import com.datastax.driver.mapping.annotations.ClusteringColumn;
+import com.datastax.driver.mapping.annotations.Column;
+import com.datastax.driver.mapping.annotations.PartitionKey;
+import com.datastax.driver.mapping.annotations.Table;
+
+import java.util.Objects;
+import java.util.UUID;
+
+@Table(keyspace = "dox", name = "notifications")
+public class NotificationEntity {
+
+ public static final String ENTITY_TYPE = "Event Notification";
+
+ @PartitionKey
+ @Column(name = "owner_id")
+ private String ownerId;
+
+ @Column(name = "read")
+ private boolean read;
+
+ @ClusteringColumn
+ @Column(name = "event_id")
+ private UUID eventId;
+
+ @Column(name = "event_type")
+ private String eventType;
+
+ @Column(name = "event_attributes")
+ private String eventAttributes;
+
+ @Column(name = "originator_id")
+ private String originatorId;
+
+ public NotificationEntity() {
+ }
+
+ public NotificationEntity(String ownerId) {
+ this.ownerId = ownerId;
+ }
+
+ /**
+ * Instantiates a new Notification entity.
+ *
+ * @param ownerId the owner id
+ * @param eventId the event id
+ * @param eventType the event type
+ * @param originatorId the originator id
+ */
+ public NotificationEntity(String ownerId, UUID eventId, String eventType, String originatorId, boolean read, String eventAttributes) {
+ this.ownerId = ownerId;
+ this.read = read;
+ this.eventId = eventId;
+ this.eventType = eventType;
+ this.originatorId = originatorId;
+ this.eventAttributes = eventAttributes;
+ }
+
+ public NotificationEntity(String ownerId, UUID eventId, String eventType, String originatorId) {
+ this(ownerId, eventId, eventType, originatorId, false, null);
+ }
+
+ public NotificationEntity(String ownerId, UUID eventId) {
+ this(ownerId, eventId, null, null);
+ }
+
+ public String getOwnerId() {
+ return ownerId;
+ }
+
+ public void setOwnerId(String ownerId) {
+ this.ownerId = ownerId;
+ }
+
+ public boolean isRead() {
+ return read;
+ }
+
+ public void setRead(boolean read) {
+ this.read = read;
+ }
+
+ public UUID getEventId() {
+ return eventId;
+ }
+
+ public void setEventId(UUID eventId) {
+ this.eventId = eventId;
+ }
+
+ public String getEventType() {
+ return eventType;
+ }
+
+ public void setEventType(String eventType) {
+ this.eventType = eventType;
+ }
+
+ public String getEventAttributes() {
+ return eventAttributes;
+ }
+
+ public void setEventAttributes(String eventAttributes) {
+ this.eventAttributes = eventAttributes;
+ }
+
+ public String getOriginatorId() {
+ return originatorId;
+ }
+
+ public void setOriginatorId(String originatorId) {
+ this.originatorId = originatorId;
+ }
+
+ @Override
+ public boolean equals(Object other) {
+ if (Objects.equals(this, other)) {
+ return true;
+ }
+
+ if (Objects.equals(getClass(), other.getClass())) {
+ return false;
+ }
+
+ NotificationEntity that = (NotificationEntity) other;
+
+ if (Objects.equals(ownerId, that.ownerId)) {
+ return false;
+ }
+ if (read != that.read) {
+ return false;
+ }
+ if (Objects.equals(eventId, that.eventId)) {
+ return false;
+ }
+ if (Objects.equals(eventType, that.eventType)) {
+ return false;
+ }
+ if (Objects.equals(eventAttributes, that.eventAttributes)) {
+ return false;
+ }
+ if (Objects.equals(originatorId, that.originatorId)) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int result = ownerId != null ? ownerId.hashCode() : 0;
+ result = 31 * result + (eventId != null ? eventId.hashCode() : 0);
+ return result;
+ }
+
+ @Override
+ public String toString() {
+ return "NotificationEntity {"
+ + "ownerId='" + ownerId + '\''
+ + ", state='" + (read ? "Read" : "Noread") + '\''
+ + ", originatorId='" + originatorId + '\''
+ + ", eventId='" + eventId + '\''
+ + ", eventType='" + eventType + '\''
+ + ", eventAttributes='" + eventAttributes + '\''
+ + '}';
+ }
+}
diff --git a/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-api/src/main/java/org/openecomp/sdc/notification/dao/types/SubscribersEntity.java b/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-api/src/main/java/org/openecomp/sdc/notification/dao/types/SubscribersEntity.java
new file mode 100644
index 0000000000..d858cbd9eb
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-api/src/main/java/org/openecomp/sdc/notification/dao/types/SubscribersEntity.java
@@ -0,0 +1,68 @@
+package org.openecomp.sdc.notification.dao.types;
+
+import com.datastax.driver.mapping.annotations.Column;
+import com.datastax.driver.mapping.annotations.PartitionKey;
+import com.datastax.driver.mapping.annotations.Table;
+
+import java.util.Objects;
+import java.util.Set;
+
+import static java.util.Objects.hash;
+
+@Table(keyspace = "dox", name = "notification_subscribers")
+public class SubscribersEntity {
+
+ @PartitionKey
+ @Column(name = "entity_id")
+ private String entityId;
+
+ @Column(name = "subscribers")
+ private Set<String> subscribers;
+
+
+ public SubscribersEntity() {
+ }
+
+ public SubscribersEntity(String entityId, Set<String> subscribers) {
+ this.entityId = entityId;
+ this.subscribers = subscribers;
+ }
+
+ public String getEntityId() {
+ return entityId;
+ }
+
+ public void setEntityId(String entityId) {
+ this.entityId = entityId;
+ }
+
+ public Set<String> getSubscribers() {
+ return subscribers;
+ }
+
+ public void setSubscribers(Set<String> subscribers) {
+ this.subscribers = subscribers;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ SubscribersEntity that = (SubscribersEntity) o;
+ return Objects.equals(entityId, that.entityId) &&
+ Objects.equals(subscribers, that.subscribers);
+ }
+
+ @Override
+ public int hashCode() {
+ return hash(entityId, subscribers);
+ }
+
+ @Override
+ public String toString() {
+ return "SubscribersEntity{" +
+ "entityId='" + entityId + '\'' +
+ ", subscribers=" + subscribers +
+ '}';
+ }
+}