
com.liferay.search.experiences.service.impl.SXPElementServiceImpl Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of com.liferay.search.experiences.service
Show all versions of com.liferay.search.experiences.service
Liferay Search Experiences Service
The newest version!
/**
* SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com
* SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06
*/
package com.liferay.search.experiences.service.impl;
import com.liferay.petra.string.StringBundler;
import com.liferay.portal.aop.AopService;
import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.security.permission.ActionKeys;
import com.liferay.portal.kernel.security.permission.resource.ModelResourcePermission;
import com.liferay.portal.kernel.security.permission.resource.PortletResourcePermission;
import com.liferay.portal.kernel.service.ServiceContext;
import com.liferay.search.experiences.constants.SXPActionKeys;
import com.liferay.search.experiences.constants.SXPConstants;
import com.liferay.search.experiences.exception.SXPElementReadOnlyException;
import com.liferay.search.experiences.model.SXPElement;
import com.liferay.search.experiences.service.base.SXPElementServiceBaseImpl;
import java.util.Locale;
import java.util.Map;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Reference;
/**
* @author Brian Wing Shun Chan
*/
@Component(
enabled = false,
property = {
"json.web.service.context.name=sxp",
"json.web.service.context.path=SXPElement"
},
service = AopService.class
)
public class SXPElementServiceImpl extends SXPElementServiceBaseImpl {
@Override
public SXPElement addSXPElement(
String externalReferenceCode, Map descriptionMap,
String elementDefinitionJSON, String fallbackDescription,
String fallbackTitle, boolean readOnly, String schemaVersion,
Map titleMap, int type,
ServiceContext serviceContext)
throws PortalException {
_portletResourcePermission.check(
getPermissionChecker(), null, SXPActionKeys.ADD_SXP_ELEMENT);
return sxpElementLocalService.addSXPElement(
externalReferenceCode, getUserId(), descriptionMap,
elementDefinitionJSON, fallbackDescription, fallbackTitle, readOnly,
schemaVersion, titleMap, type, serviceContext);
}
@Override
public SXPElement deleteSXPElement(long sxpElementId)
throws PortalException {
_sxpElementModelResourcePermission.check(
getPermissionChecker(), sxpElementId, ActionKeys.DELETE);
SXPElement sxpElement = sxpElementPersistence.findByPrimaryKey(
sxpElementId);
if (sxpElement.isReadOnly()) {
throw new SXPElementReadOnlyException(
StringBundler.concat(
"Search experiences element ", sxpElementId,
" is read-only"));
}
return sxpElementLocalService.deleteSXPElement(sxpElement);
}
@Override
public SXPElement fetchSXPElement(long sxpElementId)
throws PortalException {
SXPElement sxpElement = sxpElementLocalService.fetchSXPElement(
sxpElementId);
if (sxpElement != null) {
_sxpElementModelResourcePermission.check(
getPermissionChecker(), sxpElement, ActionKeys.VIEW);
}
return sxpElement;
}
@Override
public SXPElement fetchSXPElementByExternalReferenceCode(
String externalReferenceCode, long companyId)
throws PortalException {
SXPElement sxpElement =
sxpElementLocalService.fetchSXPElementByExternalReferenceCode(
externalReferenceCode, companyId);
if (sxpElement != null) {
_sxpElementModelResourcePermission.check(
getPermissionChecker(), sxpElement, ActionKeys.VIEW);
}
return sxpElement;
}
@Override
public SXPElement getSXPElement(long sxpElementId) throws PortalException {
SXPElement sxpElement = sxpElementLocalService.getSXPElement(
sxpElementId);
_sxpElementModelResourcePermission.check(
getPermissionChecker(), sxpElement, ActionKeys.VIEW);
return sxpElement;
}
@Override
public SXPElement getSXPElementByExternalReferenceCode(
String externalReferenceCode, long companyId)
throws PortalException {
SXPElement sxpElement =
sxpElementLocalService.getSXPElementByExternalReferenceCode(
externalReferenceCode, companyId);
_sxpElementModelResourcePermission.check(
getPermissionChecker(), sxpElement, ActionKeys.VIEW);
return sxpElement;
}
@Override
public SXPElement updateSXPElement(
String externalReferenceCode, long sxpElementId,
Map descriptionMap, String elementDefinitionJSON,
String schemaVersion, boolean hidden, Map titleMap,
ServiceContext serviceContext)
throws PortalException {
SXPElement sxpElement = sxpElementPersistence.findByPrimaryKey(
sxpElementId);
if (sxpElement.isReadOnly()) {
throw new SXPElementReadOnlyException(
StringBundler.concat(
"Search experiences element ", sxpElementId,
" is read-only"));
}
_sxpElementModelResourcePermission.check(
getPermissionChecker(), sxpElementId, ActionKeys.UPDATE);
return sxpElementLocalService.updateSXPElement(
externalReferenceCode, getUserId(), sxpElementId, descriptionMap,
elementDefinitionJSON, hidden, schemaVersion, titleMap,
serviceContext);
}
@Reference(target = "(resource.name=" + SXPConstants.RESOURCE_NAME + ")")
private volatile PortletResourcePermission _portletResourcePermission;
@Reference(
target = "(model.class.name=com.liferay.search.experiences.model.SXPElement)"
)
private volatile ModelResourcePermission
_sxpElementModelResourcePermission;
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy