Skip to content

Commit

Permalink
feat(Edit Mode) #30799 : Creating a REST Endpoint that abstract the L…
Browse files Browse the repository at this point in the history
…ucene Query generation and return results
  • Loading branch information
jcastro-dotcms committed Feb 20, 2025
1 parent 697a045 commit 524fc80
Show file tree
Hide file tree
Showing 15 changed files with 3,479 additions and 703 deletions.
8 changes: 3 additions & 5 deletions dotCMS/src/main/java/com/dotcms/ai/api/EmbeddingsAPIImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,13 @@
import com.dotcms.ai.app.AppKeys;
import com.dotcms.ai.app.ConfigService;
import com.dotcms.ai.client.AIProxyClient;
import com.dotcms.ai.client.JSONObjectAIRequest;
import com.dotcms.ai.db.EmbeddingsDTO;
import com.dotcms.ai.db.EmbeddingsDTO.Builder;
import com.dotcms.ai.db.EmbeddingsFactory;
import com.dotcms.ai.client.JSONObjectAIRequest;
import com.dotcms.ai.util.ContentToStringUtil;
import com.dotcms.ai.util.EncodingUtil;
import com.dotcms.ai.util.VelocityContextFactory;
import com.dotcms.api.web.HttpServletRequestThreadLocal;
import com.dotcms.api.web.HttpServletResponseThreadLocal;
import com.dotcms.business.CloseDBIfOpened;
import com.dotcms.business.WrapInTransaction;
Expand All @@ -21,7 +20,7 @@
import com.dotcms.contenttype.model.type.ContentType;
import com.dotcms.exception.ExceptionUtil;
import com.dotcms.rendering.velocity.util.VelocityUtil;
import com.dotcms.rest.ContentResource;
import com.dotcms.rest.ContentHelper;
import com.dotmarketing.beans.Host;
import com.dotmarketing.business.APILocator;
import com.dotmarketing.common.model.ContentletSearch;
Expand Down Expand Up @@ -377,9 +376,8 @@ public int deleteEmbeddings(final EmbeddingsDTO dto) {

private JSONObject dtoToContentJson(final EmbeddingsDTO dto, final User user) {
return Try.of(() ->
ContentResource.contentletToJSON(
ContentHelper.getInstance().contentletToJSON(
APILocator.getContentletAPI().find(dto.inode, user, true),
HttpServletRequestThreadLocal.INSTANCE.getRequest(),
HttpServletResponseThreadLocal.INSTANCE.getResponse(),
"false",
user,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -949,12 +949,11 @@ protected Contentlet find(final String inode, String variant) throws Elasticsear
* Contentlets, if applicable.
*/
private Contentlet processCachedContentlet(final Contentlet cachedContentlet) {
if (REFRESH_BLOCK_EDITOR_REFERENCES && cachedContentlet.getContentType().hasStoryBlockFields()) {

if (REFRESH_BLOCK_EDITOR_REFERENCES && null != cachedContentlet.getContentType() && cachedContentlet.getContentType().hasStoryBlockFields()) {
final StoryBlockReferenceResult storyBlockRefreshedResult =
APILocator.getStoryBlockAPI().refreshReferences(cachedContentlet);
if (storyBlockRefreshedResult.isRefreshed()) {
Logger.debug(this, () -> String.format("Refreshed Story Block dependencies for Contentlet '%s'",
Logger.debug(this, () -> String.format("Refreshed Story Block dependencies for Contentlet: '%s'",
cachedContentlet.getIdentifier()));

final Contentlet refreshedContentlet = (Contentlet) storyBlockRefreshedResult.getValue();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,29 +1,30 @@
package com.dotcms.graphql.datafetcher;

import static com.dotmarketing.portlets.contentlet.transform.strategy.RenderFieldStrategy.isFieldRenderable;
import static com.dotmarketing.portlets.contentlet.transform.strategy.RenderFieldStrategy.renderFieldValue;
import static com.dotmarketing.portlets.contentlet.transform.strategy.TransformOptions.RENDER_FIELDS;

import com.dotcms.contenttype.model.field.Field;
import com.dotcms.graphql.DotGraphQLContext;
import com.dotmarketing.util.json.JSONObject;
import com.dotcms.rest.ContentResource;
import com.dotcms.rest.ContentHelper;
import com.dotmarketing.portlets.contentlet.model.Contentlet;
import com.dotmarketing.portlets.contentlet.transform.DotContentletTransformer;
import com.dotmarketing.portlets.contentlet.transform.DotTransformerBuilder;
import com.dotmarketing.util.Logger;
import com.dotmarketing.util.UtilMethods;
import com.dotmarketing.util.json.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.liferay.portal.model.User;
import graphql.Scalars;
import graphql.schema.DataFetcher;
import graphql.schema.DataFetchingEnvironment;
import io.vavr.control.Try;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.HashMap;
import java.util.Map;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import static com.dotmarketing.portlets.contentlet.transform.strategy.RenderFieldStrategy.isFieldRenderable;
import static com.dotmarketing.portlets.contentlet.transform.strategy.RenderFieldStrategy.renderFieldValue;
import static com.dotmarketing.portlets.contentlet.transform.strategy.TransformOptions.RENDER_FIELDS;

/**
* {@link DataFetcher} that fetches the data when the special <code>_map<code/> GraphQL Field is requested.
Expand Down Expand Up @@ -82,7 +83,7 @@ public Object get(final DataFetchingEnvironment environment) throws Exception {

// this only adds relationships to any json. We would need to return them with the transformations already

final JSONObject jsonWithRels = ContentResource.addRelationshipsToJSON(request, response,
final JSONObject jsonWithRels = ContentHelper.getInstance().addRelationshipsToJSON(request, response,
render.toString(), user, depth, false, contentlet,
contentMapInJSON, null, 1, true, false,
true);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,11 @@
import com.dotcms.api.web.HttpServletResponseThreadLocal;
import com.dotcms.content.elasticsearch.business.ESMappingAPIImpl;
import com.dotcms.content.elasticsearch.util.PaginationUtil;
import com.dotcms.rest.ContentResource;
import com.dotcms.rest.ContentHelper;
import com.dotcms.rest.api.v1.DotObjectMapperProvider;
import com.dotcms.util.ConversionUtils;
import com.dotcms.util.TimeMachineUtil;
import com.dotcms.variant.VariantAPI;
import com.dotmarketing.beans.Identifier;
import com.dotmarketing.business.APILocator;
import com.dotmarketing.business.web.WebAPILocator;
import com.dotmarketing.common.model.ContentletSearch;
Expand All @@ -30,6 +29,9 @@
import com.dotmarketing.util.WebKeys;
import com.dotmarketing.util.json.JSONObject;
import com.liferay.portal.model.User;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
Expand All @@ -40,8 +42,6 @@
import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
* The purpose of this class is to abstract the methods called from the ContentTool Viewtool
Expand Down Expand Up @@ -817,7 +817,7 @@ public static void addRelationships(final Contentlet contentlet, final User user

try {

final JSONObject jsonWithRelationShips = ContentResource.addRelationshipsToJSON(request, response,
final JSONObject jsonWithRelationShips = ContentHelper.getInstance().addRelationshipsToJSON(request, response,
request.getParameter("render"), user, depth, mode.respectAnonPerms, contentlet,
new JSONObject(), null, languageId, mode.showLive, false,
true);
Expand Down
Loading

0 comments on commit 524fc80

Please sign in to comment.