PageRenderTime 27ms CodeModel.GetById 23ms RepoModel.GetById 0ms app.codeStats 0ms

/modules/dxp/apps/segments/segments-asah-rest-impl/src/main/java/com/liferay/segments/asah/rest/internal/resource/v1_0/BaseStatusResourceImpl.java

https://github.com/marcellustavares/liferay-portal
Java | 443 lines | 333 code | 83 blank | 27 comment | 7 complexity | 0bcccd4ea732f978817ed2e385dfe3b5 MD5 | raw file
  1. /**
  2. * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
  3. *
  4. * The contents of this file are subject to the terms of the Liferay Enterprise
  5. * Subscription License ("License"). You may not use this file except in
  6. * compliance with the License. You can obtain a copy of the License by
  7. * contacting Liferay, Inc. See the License for the specific language governing
  8. * permissions and limitations under the License, including but not limited to
  9. * distribution rights of the Software.
  10. *
  11. *
  12. *
  13. */
  14. package com.liferay.segments.asah.rest.internal.resource.v1_0;
  15. import com.liferay.petra.function.UnsafeBiConsumer;
  16. import com.liferay.petra.function.UnsafeConsumer;
  17. import com.liferay.petra.function.UnsafeFunction;
  18. import com.liferay.portal.kernel.log.LogFactoryUtil;
  19. import com.liferay.portal.kernel.model.GroupedModel;
  20. import com.liferay.portal.kernel.search.Sort;
  21. import com.liferay.portal.kernel.search.filter.Filter;
  22. import com.liferay.portal.kernel.security.permission.resource.ModelResourcePermission;
  23. import com.liferay.portal.kernel.service.GroupLocalService;
  24. import com.liferay.portal.kernel.service.ResourceActionLocalService;
  25. import com.liferay.portal.kernel.service.ResourcePermissionLocalService;
  26. import com.liferay.portal.kernel.service.RoleLocalService;
  27. import com.liferay.portal.kernel.util.LocaleUtil;
  28. import com.liferay.portal.odata.entity.EntityModel;
  29. import com.liferay.portal.odata.filter.ExpressionConvert;
  30. import com.liferay.portal.odata.filter.FilterParser;
  31. import com.liferay.portal.odata.filter.FilterParserProvider;
  32. import com.liferay.portal.vulcan.accept.language.AcceptLanguage;
  33. import com.liferay.portal.vulcan.batch.engine.VulcanBatchEngineTaskItemDelegate;
  34. import com.liferay.portal.vulcan.batch.engine.resource.VulcanBatchEngineImportTaskResource;
  35. import com.liferay.portal.vulcan.pagination.Page;
  36. import com.liferay.portal.vulcan.pagination.Pagination;
  37. import com.liferay.portal.vulcan.resource.EntityModelResource;
  38. import com.liferay.portal.vulcan.util.ActionUtil;
  39. import com.liferay.portal.vulcan.util.TransformUtil;
  40. import com.liferay.segments.asah.rest.dto.v1_0.Experiment;
  41. import com.liferay.segments.asah.rest.dto.v1_0.Status;
  42. import com.liferay.segments.asah.rest.resource.v1_0.StatusResource;
  43. import java.io.Serializable;
  44. import java.util.List;
  45. import java.util.Locale;
  46. import java.util.Map;
  47. import javax.annotation.Generated;
  48. import javax.servlet.http.HttpServletRequest;
  49. import javax.servlet.http.HttpServletResponse;
  50. import javax.ws.rs.NotSupportedException;
  51. import javax.ws.rs.core.MultivaluedHashMap;
  52. import javax.ws.rs.core.MultivaluedMap;
  53. import javax.ws.rs.core.Response;
  54. import javax.ws.rs.core.UriInfo;
  55. /**
  56. * @author Javier Gamarra
  57. * @generated
  58. */
  59. @Generated("")
  60. @javax.ws.rs.Path("/v1.0")
  61. public abstract class BaseStatusResourceImpl
  62. implements EntityModelResource, StatusResource,
  63. VulcanBatchEngineTaskItemDelegate<Status> {
  64. /**
  65. * Invoke this method with the command line:
  66. *
  67. * curl -X 'POST' 'http://localhost:8080/o/segments-asah/v1.0/experiments/{experimentId}/status' -d $'{"status": ___, "winnerVariantId": ___}' --header 'Content-Type: application/json' -u 'test@liferay.com:test'
  68. */
  69. @io.swagger.v3.oas.annotations.Parameters(
  70. value = {
  71. @io.swagger.v3.oas.annotations.Parameter(
  72. in = io.swagger.v3.oas.annotations.enums.ParameterIn.PATH,
  73. name = "experimentId"
  74. )
  75. }
  76. )
  77. @io.swagger.v3.oas.annotations.tags.Tags(
  78. value = {@io.swagger.v3.oas.annotations.tags.Tag(name = "Status")}
  79. )
  80. @javax.ws.rs.Consumes({"application/json", "application/xml"})
  81. @javax.ws.rs.Path("/experiments/{experimentId}/status")
  82. @javax.ws.rs.POST
  83. @javax.ws.rs.Produces({"application/json", "application/xml"})
  84. @Override
  85. public Experiment postExperimentStatus(
  86. @io.swagger.v3.oas.annotations.Parameter(hidden = true)
  87. @javax.validation.constraints.NotNull
  88. @javax.ws.rs.PathParam("experimentId")
  89. Long experimentId,
  90. Status status)
  91. throws Exception {
  92. return new Experiment();
  93. }
  94. /**
  95. * Invoke this method with the command line:
  96. *
  97. * curl -X 'POST' 'http://localhost:8080/o/segments-asah/v1.0/experiments/{experimentId}/status/batch' -u 'test@liferay.com:test'
  98. */
  99. @io.swagger.v3.oas.annotations.Parameters(
  100. value = {
  101. @io.swagger.v3.oas.annotations.Parameter(
  102. in = io.swagger.v3.oas.annotations.enums.ParameterIn.PATH,
  103. name = "experimentId"
  104. ),
  105. @io.swagger.v3.oas.annotations.Parameter(
  106. in = io.swagger.v3.oas.annotations.enums.ParameterIn.QUERY,
  107. name = "callbackURL"
  108. )
  109. }
  110. )
  111. @io.swagger.v3.oas.annotations.tags.Tags(
  112. value = {@io.swagger.v3.oas.annotations.tags.Tag(name = "Status")}
  113. )
  114. @javax.ws.rs.Consumes("application/json")
  115. @javax.ws.rs.Path("/experiments/{experimentId}/status/batch")
  116. @javax.ws.rs.POST
  117. @javax.ws.rs.Produces("application/json")
  118. @Override
  119. public Response postExperimentStatusBatch(
  120. @io.swagger.v3.oas.annotations.Parameter(hidden = true)
  121. @javax.validation.constraints.NotNull
  122. @javax.ws.rs.PathParam("experimentId")
  123. Long experimentId,
  124. @io.swagger.v3.oas.annotations.Parameter(hidden = true)
  125. @javax.ws.rs.QueryParam("callbackURL")
  126. String callbackURL,
  127. Object object)
  128. throws Exception {
  129. vulcanBatchEngineImportTaskResource.setContextAcceptLanguage(
  130. contextAcceptLanguage);
  131. vulcanBatchEngineImportTaskResource.setContextCompany(contextCompany);
  132. vulcanBatchEngineImportTaskResource.setContextHttpServletRequest(
  133. contextHttpServletRequest);
  134. vulcanBatchEngineImportTaskResource.setContextUriInfo(contextUriInfo);
  135. vulcanBatchEngineImportTaskResource.setContextUser(contextUser);
  136. Response.ResponseBuilder responseBuilder = Response.accepted();
  137. return responseBuilder.entity(
  138. vulcanBatchEngineImportTaskResource.postImportTask(
  139. Status.class.getName(), callbackURL, null, object)
  140. ).build();
  141. }
  142. @Override
  143. @SuppressWarnings("PMD.UnusedLocalVariable")
  144. public void create(
  145. java.util.Collection<Status> statuses,
  146. Map<String, Serializable> parameters)
  147. throws Exception {
  148. UnsafeConsumer<Status, Exception> statusUnsafeConsumer = null;
  149. String createStrategy = (String)parameters.getOrDefault(
  150. "createStrategy", "INSERT");
  151. if ("INSERT".equalsIgnoreCase(createStrategy)) {
  152. statusUnsafeConsumer = status -> postExperimentStatus(
  153. Long.parseLong((String)parameters.get("experimentId")), status);
  154. }
  155. if (statusUnsafeConsumer == null) {
  156. throw new NotSupportedException(
  157. "Create strategy \"" + createStrategy +
  158. "\" is not supported for Status");
  159. }
  160. if (contextBatchUnsafeConsumer != null) {
  161. contextBatchUnsafeConsumer.accept(statuses, statusUnsafeConsumer);
  162. }
  163. else {
  164. for (Status status : statuses) {
  165. statusUnsafeConsumer.accept(status);
  166. }
  167. }
  168. }
  169. @Override
  170. public void delete(
  171. java.util.Collection<Status> statuses,
  172. Map<String, Serializable> parameters)
  173. throws Exception {
  174. }
  175. @Override
  176. public EntityModel getEntityModel(Map<String, List<String>> multivaluedMap)
  177. throws Exception {
  178. return getEntityModel(
  179. new MultivaluedHashMap<String, Object>(multivaluedMap));
  180. }
  181. @Override
  182. public EntityModel getEntityModel(MultivaluedMap multivaluedMap)
  183. throws Exception {
  184. return null;
  185. }
  186. public String getVersion() {
  187. return "v1.0";
  188. }
  189. @Override
  190. public Page<Status> read(
  191. Filter filter, Pagination pagination, Sort[] sorts,
  192. Map<String, Serializable> parameters, String search)
  193. throws Exception {
  194. return null;
  195. }
  196. @Override
  197. public void setLanguageId(String languageId) {
  198. this.contextAcceptLanguage = new AcceptLanguage() {
  199. @Override
  200. public List<Locale> getLocales() {
  201. return null;
  202. }
  203. @Override
  204. public String getPreferredLanguageId() {
  205. return languageId;
  206. }
  207. @Override
  208. public Locale getPreferredLocale() {
  209. return LocaleUtil.fromLanguageId(languageId);
  210. }
  211. };
  212. }
  213. @Override
  214. public void update(
  215. java.util.Collection<Status> statuses,
  216. Map<String, Serializable> parameters)
  217. throws Exception {
  218. }
  219. public void setContextAcceptLanguage(AcceptLanguage contextAcceptLanguage) {
  220. this.contextAcceptLanguage = contextAcceptLanguage;
  221. }
  222. public void setContextBatchUnsafeConsumer(
  223. UnsafeBiConsumer
  224. <java.util.Collection<Status>, UnsafeConsumer<Status, Exception>,
  225. Exception> contextBatchUnsafeConsumer) {
  226. this.contextBatchUnsafeConsumer = contextBatchUnsafeConsumer;
  227. }
  228. public void setContextCompany(
  229. com.liferay.portal.kernel.model.Company contextCompany) {
  230. this.contextCompany = contextCompany;
  231. }
  232. public void setContextHttpServletRequest(
  233. HttpServletRequest contextHttpServletRequest) {
  234. this.contextHttpServletRequest = contextHttpServletRequest;
  235. }
  236. public void setContextHttpServletResponse(
  237. HttpServletResponse contextHttpServletResponse) {
  238. this.contextHttpServletResponse = contextHttpServletResponse;
  239. }
  240. public void setContextUriInfo(UriInfo contextUriInfo) {
  241. this.contextUriInfo = contextUriInfo;
  242. }
  243. public void setContextUser(
  244. com.liferay.portal.kernel.model.User contextUser) {
  245. this.contextUser = contextUser;
  246. }
  247. public void setExpressionConvert(
  248. ExpressionConvert<Filter> expressionConvert) {
  249. this.expressionConvert = expressionConvert;
  250. }
  251. public void setFilterParserProvider(
  252. FilterParserProvider filterParserProvider) {
  253. this.filterParserProvider = filterParserProvider;
  254. }
  255. public void setGroupLocalService(GroupLocalService groupLocalService) {
  256. this.groupLocalService = groupLocalService;
  257. }
  258. public void setResourceActionLocalService(
  259. ResourceActionLocalService resourceActionLocalService) {
  260. this.resourceActionLocalService = resourceActionLocalService;
  261. }
  262. public void setResourcePermissionLocalService(
  263. ResourcePermissionLocalService resourcePermissionLocalService) {
  264. this.resourcePermissionLocalService = resourcePermissionLocalService;
  265. }
  266. public void setRoleLocalService(RoleLocalService roleLocalService) {
  267. this.roleLocalService = roleLocalService;
  268. }
  269. public void setVulcanBatchEngineImportTaskResource(
  270. VulcanBatchEngineImportTaskResource
  271. vulcanBatchEngineImportTaskResource) {
  272. this.vulcanBatchEngineImportTaskResource =
  273. vulcanBatchEngineImportTaskResource;
  274. }
  275. @Override
  276. public Filter toFilter(
  277. String filterString, Map<String, List<String>> multivaluedMap) {
  278. try {
  279. EntityModel entityModel = getEntityModel(multivaluedMap);
  280. FilterParser filterParser = filterParserProvider.provide(
  281. entityModel);
  282. com.liferay.portal.odata.filter.Filter oDataFilter =
  283. new com.liferay.portal.odata.filter.Filter(
  284. filterParser.parse(filterString));
  285. return expressionConvert.convert(
  286. oDataFilter.getExpression(),
  287. contextAcceptLanguage.getPreferredLocale(), entityModel);
  288. }
  289. catch (Exception exception) {
  290. _log.error("Invalid filter " + filterString, exception);
  291. }
  292. return null;
  293. }
  294. protected Map<String, String> addAction(
  295. String actionName, GroupedModel groupedModel, String methodName) {
  296. return ActionUtil.addAction(
  297. actionName, getClass(), groupedModel, methodName,
  298. contextScopeChecker, contextUriInfo);
  299. }
  300. protected Map<String, String> addAction(
  301. String actionName, Long id, String methodName, Long ownerId,
  302. String permissionName, Long siteId) {
  303. return ActionUtil.addAction(
  304. actionName, getClass(), id, methodName, contextScopeChecker,
  305. ownerId, permissionName, siteId, contextUriInfo);
  306. }
  307. protected Map<String, String> addAction(
  308. String actionName, Long id, String methodName,
  309. ModelResourcePermission modelResourcePermission) {
  310. return ActionUtil.addAction(
  311. actionName, getClass(), id, methodName, contextScopeChecker,
  312. modelResourcePermission, contextUriInfo);
  313. }
  314. protected Map<String, String> addAction(
  315. String actionName, String methodName, String permissionName,
  316. Long siteId) {
  317. return addAction(
  318. actionName, siteId, methodName, null, permissionName, siteId);
  319. }
  320. protected <T, R> List<R> transform(
  321. java.util.Collection<T> collection,
  322. UnsafeFunction<T, R, Exception> unsafeFunction) {
  323. return TransformUtil.transform(collection, unsafeFunction);
  324. }
  325. protected <T, R> R[] transform(
  326. T[] array, UnsafeFunction<T, R, Exception> unsafeFunction,
  327. Class<?> clazz) {
  328. return TransformUtil.transform(array, unsafeFunction, clazz);
  329. }
  330. protected <T, R> R[] transformToArray(
  331. java.util.Collection<T> collection,
  332. UnsafeFunction<T, R, Exception> unsafeFunction, Class<?> clazz) {
  333. return TransformUtil.transformToArray(
  334. collection, unsafeFunction, clazz);
  335. }
  336. protected <T, R> List<R> transformToList(
  337. T[] array, UnsafeFunction<T, R, Exception> unsafeFunction) {
  338. return TransformUtil.transformToList(array, unsafeFunction);
  339. }
  340. protected AcceptLanguage contextAcceptLanguage;
  341. protected UnsafeBiConsumer
  342. <java.util.Collection<Status>, UnsafeConsumer<Status, Exception>,
  343. Exception> contextBatchUnsafeConsumer;
  344. protected com.liferay.portal.kernel.model.Company contextCompany;
  345. protected HttpServletRequest contextHttpServletRequest;
  346. protected HttpServletResponse contextHttpServletResponse;
  347. protected Object contextScopeChecker;
  348. protected UriInfo contextUriInfo;
  349. protected com.liferay.portal.kernel.model.User contextUser;
  350. protected ExpressionConvert<Filter> expressionConvert;
  351. protected FilterParserProvider filterParserProvider;
  352. protected GroupLocalService groupLocalService;
  353. protected ResourceActionLocalService resourceActionLocalService;
  354. protected ResourcePermissionLocalService resourcePermissionLocalService;
  355. protected RoleLocalService roleLocalService;
  356. protected VulcanBatchEngineImportTaskResource
  357. vulcanBatchEngineImportTaskResource;
  358. private static final com.liferay.portal.kernel.log.Log _log =
  359. LogFactoryUtil.getLog(BaseStatusResourceImpl.class);
  360. }