Skip to content

Commit

Permalink
fix: Define news article metadata items 'deleted' property - EXO-7161…
Browse files Browse the repository at this point in the history
  • Loading branch information
sofyenne committed May 7, 2024
1 parent 35d0ae0 commit 667df24
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,9 @@ public class NewsServiceImpl implements NewsService {
/** The Constant AUDIENCE. */
public static final String NEWS_AUDIENCE = "audience";

/** The Constant DELETED. */
public static final String NEWS_DELETED = "deleted";

/** The Constant NEWS_ID. */
public static final String NEWS_ID = "newsId";

Expand Down Expand Up @@ -1556,6 +1559,7 @@ private News createNewsArticlePage(News newsArticle, String newsArticleCreator)
}
newsPageProperties.put(NEWS_ACTIVITY_POSTED, String.valueOf(newsArticle.isActivityPosted()));
newsPageProperties.put(PUBLISHED, String.valueOf(newsArticle.isPublished()));
newsPageProperties.put(NEWS_DELETED, String.valueOf(newsArticlePage.isDeleted()));
metadataService.createMetadataItem(newsPageObject, NEWS_METADATA_KEY, newsPageProperties, Long.parseLong(newsArticleMetadataItemCreatorIdentityId));

// delete the draft
Expand Down Expand Up @@ -1990,6 +1994,15 @@ private void deleteArticle(News news, Identity currentIdentity) throws Exception
if (news.getActivities() != null) {
String newsActivities = news.getActivities();
Stream.of(newsActivities.split(";")).map(activity -> activity.split(":")[1]).forEach(activityManager::deleteActivity);
NewsPageObject newsPageMetadataObject = new NewsPageObject(NEWS_METADATA_PAGE_OBJECT_TYPE, news.getId(), null, Long.parseLong(news.getSpaceId()));
MetadataItem metadataItem = metadataService.getMetadataItemsByMetadataAndObject(NEWS_METADATA_KEY, newsPageMetadataObject).stream().findFirst().orElse(null);
if (metadataItem != null) {
Map<String, String> properties = metadataItem.getProperties();
properties.put(NEWS_DELETED, String.valueOf(true));
metadataItem.setProperties(properties);
String currentIdentityId = identityManager.getOrCreateUserIdentity(currentIdentity.getUserId()).getId();
metadataService.updateMetadataItem(metadataItem, Long.parseLong(currentIdentityId));
}
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -788,20 +788,9 @@ public void testDeleteNewsArticle() throws Exception {
Map<String, String> properties = new HashMap<>();
properties.put(NEWS_ACTIVITIES, "1:1;");
when(metadataItem.getProperties()).thenReturn(properties);

Space space = mock(Space.class);
when(space.getId()).thenReturn("1");
when(space.getGroupId()).thenReturn("/space/groupId");
when(space.getAvatarUrl()).thenReturn("space/avatar/url");
when(space.getDisplayName()).thenReturn("spaceDisplayName");
when(space.getVisibility()).thenReturn("public");
when(spaceService.isSuperManager(anyString())).thenReturn(true);
when(spaceService.getSpaceById(any())).thenReturn(space);
when(spaceService.getSpaceByGroupId(anyString())).thenReturn(space);

Identity identity = mock(Identity.class);
when(identity.getUserId()).thenReturn("john");
NEWS_UTILS.when(() -> NewsUtils.getUserIdentity(anyString())).thenReturn(identity);
Space space = mockSpace();
Identity identity = mockIdentity();
when(identityManager.getOrCreateUserIdentity(anyString())).thenReturn(new org.exoplatform.social.core.identity.model.Identity("1"));
NEWS_UTILS.when(() -> NewsUtils.canPublishNews(anyString(), any(Identity.class))).thenReturn(false);
when(newsTargetingService.getTargetsByNews(any(News.class))).thenReturn(null);

Expand Down Expand Up @@ -829,6 +818,7 @@ public void testDeleteNewsArticle() throws Exception {
verify(noteService, times(1)).deleteNote(existingPage.getWikiType(), existingPage.getWikiOwner(), existingPage.getName());
verify(noteService, times(1)).removeDraftById("1");
verify(activityManager, times(1)).deleteActivity("1");
verify(metadataService, times(1)).updateMetadataItem(any(MetadataItem.class), anyLong());
}

@Test
Expand Down

0 comments on commit 667df24

Please sign in to comment.