99import com .liferay .ai .hub .rest .dto .v1_0 .ContentRetriever ;
1010import com .liferay .ai .hub .rest .manager .v1_0 .ContentRetrieverManager ;
1111import com .liferay .ai .hub .util .AccountEntryUtil ;
12+ import com .liferay .object .model .ObjectDefinition ;
1213import com .liferay .object .rest .dto .v1_0 .ObjectEntry ;
1314import com .liferay .object .rest .manager .v1_0 .ObjectEntryManager ;
1415import com .liferay .object .service .ObjectDefinitionLocalService ;
2122import com .liferay .portal .kernel .uuid .PortalUUIDUtil ;
2223import com .liferay .portal .search .engine .adapter .SearchEngineAdapter ;
2324import com .liferay .portal .search .engine .adapter .index .CreateIndexRequest ;
25+ import com .liferay .portal .search .engine .adapter .index .DeleteIndexRequest ;
2426import com .liferay .portal .search .engine .adapter .index .IndicesExistsIndexRequest ;
2527import com .liferay .portal .search .engine .adapter .index .IndicesExistsIndexResponse ;
2628import com .liferay .portal .search .index .IndexNameBuilder ;
4042@ Component (service = ContentRetrieverManager .class )
4143public class ContentRetrieverManagerImpl implements ContentRetrieverManager {
4244
45+ @ Override
46+ public void deleteContentRetriever (
47+ long companyId , DTOConverterContext dtoConverterContext ,
48+ String externalReferenceCode )
49+ throws Exception {
50+
51+ ObjectEntry objectEntry = _objectEntryManager .getObjectEntry (
52+ companyId , dtoConverterContext , externalReferenceCode ,
53+ _getObjectDefinition (companyId ), null );
54+
55+ _removeIndex (
56+ GetterUtil .getString (objectEntry .getPropertyValue ("indexName" )));
57+
58+ _objectEntryManager .deleteObjectEntry (
59+ companyId , dtoConverterContext , externalReferenceCode ,
60+ _getObjectDefinition (companyId ), null );
61+ }
62+
4363 @ Override
4464 public ContentRetriever postContentRetriever (
4565 long companyId , ContentRetriever contentRetriever ,
@@ -90,13 +110,7 @@ public ContentRetriever postContentRetriever(
90110 }
91111
92112 private void _createIndex (String indexName ) throws Exception {
93- IndicesExistsIndexRequest indicesExistsIndexRequest =
94- new IndicesExistsIndexRequest (indexName );
95-
96- IndicesExistsIndexResponse indicesExistsIndexResponse =
97- _searchEngineAdapter .execute (indicesExistsIndexRequest );
98-
99- if (indicesExistsIndexResponse .isExists ()) {
113+ if (_hasIndex (indexName )) {
100114 return ;
101115 }
102116
@@ -110,13 +124,38 @@ private void _createIndex(String indexName) throws Exception {
110124 _searchEngineAdapter .execute (createIndexRequest );
111125 }
112126
127+ private ObjectDefinition _getObjectDefinition (long companyId )
128+ throws Exception {
129+
130+ return _objectDefinitionLocalService .getObjectDefinition (
131+ companyId , "AIHubContentRetriever" );
132+ }
133+
134+ private boolean _hasIndex (String indexName ) {
135+ IndicesExistsIndexRequest indicesExistsIndexRequest =
136+ new IndicesExistsIndexRequest (indexName );
137+
138+ IndicesExistsIndexResponse indicesExistsIndexResponse =
139+ _searchEngineAdapter .execute (indicesExistsIndexRequest );
140+
141+ return indicesExistsIndexResponse .isExists ();
142+ }
143+
113144 private String _readJSON (String fileName ) throws Exception {
114145 JSONObject jsonObject = _jsonFactory .createJSONObject (
115146 StringUtil .read (getClass (), "/META-INF/search/" + fileName ));
116147
117148 return jsonObject .toString ();
118149 }
119150
151+ private void _removeIndex (String indexName ) {
152+ if (!_hasIndex (indexName )) {
153+ return ;
154+ }
155+
156+ _searchEngineAdapter .execute (new DeleteIndexRequest (indexName ));
157+ }
158+
120159 private ContentRetriever _toContentRetriever (ObjectEntry objectEntry ) {
121160 return new ContentRetriever () {
122161 {
0 commit comments