/modules/apps/headless/headless-delivery/headless-delivery-client/src/main/java/com/liferay/headless/delivery/client/resource/v1_0/SitePageResource.java

https://github.com/danielreuther/liferay-portal · Java · 712 lines · 532 code · 163 blank · 17 comment · 53 complexity · 2fa4c0aaf5e46a71b621eff731144cc7 MD5 · raw file

  1. /**
  2. * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
  3. *
  4. * This library is free software; you can redistribute it and/or modify it under
  5. * the terms of the GNU Lesser General Public License as published by the Free
  6. * Software Foundation; either version 2.1 of the License, or (at your option)
  7. * any later version.
  8. *
  9. * This library is distributed in the hope that it will be useful, but WITHOUT
  10. * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  11. * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
  12. * details.
  13. */
  14. package com.liferay.headless.delivery.client.resource.v1_0;
  15. import com.liferay.headless.delivery.client.dto.v1_0.SitePage;
  16. import com.liferay.headless.delivery.client.http.HttpInvoker;
  17. import com.liferay.headless.delivery.client.pagination.Page;
  18. import com.liferay.headless.delivery.client.pagination.Pagination;
  19. import com.liferay.headless.delivery.client.problem.Problem;
  20. import com.liferay.headless.delivery.client.serdes.v1_0.SitePageSerDes;
  21. import java.util.LinkedHashMap;
  22. import java.util.List;
  23. import java.util.Locale;
  24. import java.util.Map;
  25. import java.util.logging.Level;
  26. import java.util.logging.Logger;
  27. import javax.annotation.Generated;
  28. /**
  29. * @author Javier Gamarra
  30. * @generated
  31. */
  32. @Generated("")
  33. public interface SitePageResource {
  34. public static Builder builder() {
  35. return new Builder();
  36. }
  37. public Page<SitePage> getSiteSitePagesPage(
  38. Long siteId, String search, List<String> aggregations,
  39. String filterString, Pagination pagination, String sortString)
  40. throws Exception;
  41. public HttpInvoker.HttpResponse getSiteSitePagesPageHttpResponse(
  42. Long siteId, String search, List<String> aggregations,
  43. String filterString, Pagination pagination, String sortString)
  44. throws Exception;
  45. public SitePage getSiteSitePage(Long siteId, String friendlyUrlPath)
  46. throws Exception;
  47. public HttpInvoker.HttpResponse getSiteSitePageHttpResponse(
  48. Long siteId, String friendlyUrlPath)
  49. throws Exception;
  50. public Page<SitePage> getSiteSitePagesExperiencesPage(
  51. Long siteId, String friendlyUrlPath)
  52. throws Exception;
  53. public HttpInvoker.HttpResponse getSiteSitePagesExperiencesPageHttpResponse(
  54. Long siteId, String friendlyUrlPath)
  55. throws Exception;
  56. public SitePage getSiteSitePageExperienceExperienceKey(
  57. Long siteId, String friendlyUrlPath, String experienceKey)
  58. throws Exception;
  59. public HttpInvoker.HttpResponse
  60. getSiteSitePageExperienceExperienceKeyHttpResponse(
  61. Long siteId, String friendlyUrlPath, String experienceKey)
  62. throws Exception;
  63. public String getSiteSitePageExperienceExperienceKeyRenderedPage(
  64. Long siteId, String friendlyUrlPath, String experienceKey)
  65. throws Exception;
  66. public HttpInvoker.HttpResponse
  67. getSiteSitePageExperienceExperienceKeyRenderedPageHttpResponse(
  68. Long siteId, String friendlyUrlPath, String experienceKey)
  69. throws Exception;
  70. public String getSiteSitePageRenderedPage(
  71. Long siteId, String friendlyUrlPath)
  72. throws Exception;
  73. public HttpInvoker.HttpResponse getSiteSitePageRenderedPageHttpResponse(
  74. Long siteId, String friendlyUrlPath)
  75. throws Exception;
  76. public static class Builder {
  77. public Builder authentication(String login, String password) {
  78. _login = login;
  79. _password = password;
  80. return this;
  81. }
  82. public SitePageResource build() {
  83. return new SitePageResourceImpl(this);
  84. }
  85. public Builder contextPath(String contextPath) {
  86. _contextPath = contextPath;
  87. return this;
  88. }
  89. public Builder endpoint(String host, int port, String scheme) {
  90. _host = host;
  91. _port = port;
  92. _scheme = scheme;
  93. return this;
  94. }
  95. public Builder header(String key, String value) {
  96. _headers.put(key, value);
  97. return this;
  98. }
  99. public Builder locale(Locale locale) {
  100. _locale = locale;
  101. return this;
  102. }
  103. public Builder parameter(String key, String value) {
  104. _parameters.put(key, value);
  105. return this;
  106. }
  107. public Builder parameters(String... parameters) {
  108. if ((parameters.length % 2) != 0) {
  109. throw new IllegalArgumentException(
  110. "Parameters length is not an even number");
  111. }
  112. for (int i = 0; i < parameters.length; i += 2) {
  113. String parameterName = String.valueOf(parameters[i]);
  114. String parameterValue = String.valueOf(parameters[i + 1]);
  115. _parameters.put(parameterName, parameterValue);
  116. }
  117. return this;
  118. }
  119. private Builder() {
  120. }
  121. private String _contextPath = "";
  122. private Map<String, String> _headers = new LinkedHashMap<>();
  123. private String _host = "localhost";
  124. private Locale _locale;
  125. private String _login = "";
  126. private String _password = "";
  127. private Map<String, String> _parameters = new LinkedHashMap<>();
  128. private int _port = 8080;
  129. private String _scheme = "http";
  130. }
  131. public static class SitePageResourceImpl implements SitePageResource {
  132. public Page<SitePage> getSiteSitePagesPage(
  133. Long siteId, String search, List<String> aggregations,
  134. String filterString, Pagination pagination, String sortString)
  135. throws Exception {
  136. HttpInvoker.HttpResponse httpResponse =
  137. getSiteSitePagesPageHttpResponse(
  138. siteId, search, aggregations, filterString, pagination,
  139. sortString);
  140. String content = httpResponse.getContent();
  141. if ((httpResponse.getStatusCode() / 100) != 2) {
  142. _logger.log(
  143. Level.WARNING,
  144. "Unable to process HTTP response content: " + content);
  145. _logger.log(
  146. Level.WARNING,
  147. "HTTP response message: " + httpResponse.getMessage());
  148. _logger.log(
  149. Level.WARNING,
  150. "HTTP response status code: " +
  151. httpResponse.getStatusCode());
  152. throw new Problem.ProblemException(Problem.toDTO(content));
  153. }
  154. else {
  155. _logger.fine("HTTP response content: " + content);
  156. _logger.fine(
  157. "HTTP response message: " + httpResponse.getMessage());
  158. _logger.fine(
  159. "HTTP response status code: " +
  160. httpResponse.getStatusCode());
  161. }
  162. try {
  163. return Page.of(content, SitePageSerDes::toDTO);
  164. }
  165. catch (Exception e) {
  166. _logger.log(
  167. Level.WARNING,
  168. "Unable to process HTTP response: " + content, e);
  169. throw new Problem.ProblemException(Problem.toDTO(content));
  170. }
  171. }
  172. public HttpInvoker.HttpResponse getSiteSitePagesPageHttpResponse(
  173. Long siteId, String search, List<String> aggregations,
  174. String filterString, Pagination pagination, String sortString)
  175. throws Exception {
  176. HttpInvoker httpInvoker = HttpInvoker.newHttpInvoker();
  177. if (_builder._locale != null) {
  178. httpInvoker.header(
  179. "Accept-Language", _builder._locale.toLanguageTag());
  180. }
  181. for (Map.Entry<String, String> entry :
  182. _builder._headers.entrySet()) {
  183. httpInvoker.header(entry.getKey(), entry.getValue());
  184. }
  185. for (Map.Entry<String, String> entry :
  186. _builder._parameters.entrySet()) {
  187. httpInvoker.parameter(entry.getKey(), entry.getValue());
  188. }
  189. httpInvoker.httpMethod(HttpInvoker.HttpMethod.GET);
  190. if (search != null) {
  191. httpInvoker.parameter("search", String.valueOf(search));
  192. }
  193. if (filterString != null) {
  194. httpInvoker.parameter("filter", filterString);
  195. }
  196. if (pagination != null) {
  197. httpInvoker.parameter(
  198. "page", String.valueOf(pagination.getPage()));
  199. httpInvoker.parameter(
  200. "pageSize", String.valueOf(pagination.getPageSize()));
  201. }
  202. if (sortString != null) {
  203. httpInvoker.parameter("sort", sortString);
  204. }
  205. httpInvoker.path(
  206. _builder._scheme + "://" + _builder._host + ":" +
  207. _builder._port + _builder._contextPath +
  208. "/o/headless-delivery/v1.0/sites/{siteId}/site-pages");
  209. httpInvoker.path("siteId", siteId);
  210. httpInvoker.userNameAndPassword(
  211. _builder._login + ":" + _builder._password);
  212. return httpInvoker.invoke();
  213. }
  214. public SitePage getSiteSitePage(Long siteId, String friendlyUrlPath)
  215. throws Exception {
  216. HttpInvoker.HttpResponse httpResponse = getSiteSitePageHttpResponse(
  217. siteId, friendlyUrlPath);
  218. String content = httpResponse.getContent();
  219. if ((httpResponse.getStatusCode() / 100) != 2) {
  220. _logger.log(
  221. Level.WARNING,
  222. "Unable to process HTTP response content: " + content);
  223. _logger.log(
  224. Level.WARNING,
  225. "HTTP response message: " + httpResponse.getMessage());
  226. _logger.log(
  227. Level.WARNING,
  228. "HTTP response status code: " +
  229. httpResponse.getStatusCode());
  230. throw new Problem.ProblemException(Problem.toDTO(content));
  231. }
  232. else {
  233. _logger.fine("HTTP response content: " + content);
  234. _logger.fine(
  235. "HTTP response message: " + httpResponse.getMessage());
  236. _logger.fine(
  237. "HTTP response status code: " +
  238. httpResponse.getStatusCode());
  239. }
  240. try {
  241. return SitePageSerDes.toDTO(content);
  242. }
  243. catch (Exception e) {
  244. _logger.log(
  245. Level.WARNING,
  246. "Unable to process HTTP response: " + content, e);
  247. throw new Problem.ProblemException(Problem.toDTO(content));
  248. }
  249. }
  250. public HttpInvoker.HttpResponse getSiteSitePageHttpResponse(
  251. Long siteId, String friendlyUrlPath)
  252. throws Exception {
  253. HttpInvoker httpInvoker = HttpInvoker.newHttpInvoker();
  254. if (_builder._locale != null) {
  255. httpInvoker.header(
  256. "Accept-Language", _builder._locale.toLanguageTag());
  257. }
  258. for (Map.Entry<String, String> entry :
  259. _builder._headers.entrySet()) {
  260. httpInvoker.header(entry.getKey(), entry.getValue());
  261. }
  262. for (Map.Entry<String, String> entry :
  263. _builder._parameters.entrySet()) {
  264. httpInvoker.parameter(entry.getKey(), entry.getValue());
  265. }
  266. httpInvoker.httpMethod(HttpInvoker.HttpMethod.GET);
  267. httpInvoker.path(
  268. _builder._scheme + "://" + _builder._host + ":" +
  269. _builder._port + _builder._contextPath +
  270. "/o/headless-delivery/v1.0/sites/{siteId}/site-pages/{friendlyUrlPath}");
  271. httpInvoker.path("siteId", siteId);
  272. httpInvoker.path("friendlyUrlPath", friendlyUrlPath);
  273. httpInvoker.userNameAndPassword(
  274. _builder._login + ":" + _builder._password);
  275. return httpInvoker.invoke();
  276. }
  277. public Page<SitePage> getSiteSitePagesExperiencesPage(
  278. Long siteId, String friendlyUrlPath)
  279. throws Exception {
  280. HttpInvoker.HttpResponse httpResponse =
  281. getSiteSitePagesExperiencesPageHttpResponse(
  282. siteId, friendlyUrlPath);
  283. String content = httpResponse.getContent();
  284. if ((httpResponse.getStatusCode() / 100) != 2) {
  285. _logger.log(
  286. Level.WARNING,
  287. "Unable to process HTTP response content: " + content);
  288. _logger.log(
  289. Level.WARNING,
  290. "HTTP response message: " + httpResponse.getMessage());
  291. _logger.log(
  292. Level.WARNING,
  293. "HTTP response status code: " +
  294. httpResponse.getStatusCode());
  295. throw new Problem.ProblemException(Problem.toDTO(content));
  296. }
  297. else {
  298. _logger.fine("HTTP response content: " + content);
  299. _logger.fine(
  300. "HTTP response message: " + httpResponse.getMessage());
  301. _logger.fine(
  302. "HTTP response status code: " +
  303. httpResponse.getStatusCode());
  304. }
  305. try {
  306. return Page.of(content, SitePageSerDes::toDTO);
  307. }
  308. catch (Exception e) {
  309. _logger.log(
  310. Level.WARNING,
  311. "Unable to process HTTP response: " + content, e);
  312. throw new Problem.ProblemException(Problem.toDTO(content));
  313. }
  314. }
  315. public HttpInvoker.HttpResponse
  316. getSiteSitePagesExperiencesPageHttpResponse(
  317. Long siteId, String friendlyUrlPath)
  318. throws Exception {
  319. HttpInvoker httpInvoker = HttpInvoker.newHttpInvoker();
  320. if (_builder._locale != null) {
  321. httpInvoker.header(
  322. "Accept-Language", _builder._locale.toLanguageTag());
  323. }
  324. for (Map.Entry<String, String> entry :
  325. _builder._headers.entrySet()) {
  326. httpInvoker.header(entry.getKey(), entry.getValue());
  327. }
  328. for (Map.Entry<String, String> entry :
  329. _builder._parameters.entrySet()) {
  330. httpInvoker.parameter(entry.getKey(), entry.getValue());
  331. }
  332. httpInvoker.httpMethod(HttpInvoker.HttpMethod.GET);
  333. httpInvoker.path(
  334. _builder._scheme + "://" + _builder._host + ":" +
  335. _builder._port + _builder._contextPath +
  336. "/o/headless-delivery/v1.0/sites/{siteId}/site-pages/{friendlyUrlPath}/experiences");
  337. httpInvoker.path("siteId", siteId);
  338. httpInvoker.path("friendlyUrlPath", friendlyUrlPath);
  339. httpInvoker.userNameAndPassword(
  340. _builder._login + ":" + _builder._password);
  341. return httpInvoker.invoke();
  342. }
  343. public SitePage getSiteSitePageExperienceExperienceKey(
  344. Long siteId, String friendlyUrlPath, String experienceKey)
  345. throws Exception {
  346. HttpInvoker.HttpResponse httpResponse =
  347. getSiteSitePageExperienceExperienceKeyHttpResponse(
  348. siteId, friendlyUrlPath, experienceKey);
  349. String content = httpResponse.getContent();
  350. if ((httpResponse.getStatusCode() / 100) != 2) {
  351. _logger.log(
  352. Level.WARNING,
  353. "Unable to process HTTP response content: " + content);
  354. _logger.log(
  355. Level.WARNING,
  356. "HTTP response message: " + httpResponse.getMessage());
  357. _logger.log(
  358. Level.WARNING,
  359. "HTTP response status code: " +
  360. httpResponse.getStatusCode());
  361. throw new Problem.ProblemException(Problem.toDTO(content));
  362. }
  363. else {
  364. _logger.fine("HTTP response content: " + content);
  365. _logger.fine(
  366. "HTTP response message: " + httpResponse.getMessage());
  367. _logger.fine(
  368. "HTTP response status code: " +
  369. httpResponse.getStatusCode());
  370. }
  371. try {
  372. return SitePageSerDes.toDTO(content);
  373. }
  374. catch (Exception e) {
  375. _logger.log(
  376. Level.WARNING,
  377. "Unable to process HTTP response: " + content, e);
  378. throw new Problem.ProblemException(Problem.toDTO(content));
  379. }
  380. }
  381. public HttpInvoker.HttpResponse
  382. getSiteSitePageExperienceExperienceKeyHttpResponse(
  383. Long siteId, String friendlyUrlPath, String experienceKey)
  384. throws Exception {
  385. HttpInvoker httpInvoker = HttpInvoker.newHttpInvoker();
  386. if (_builder._locale != null) {
  387. httpInvoker.header(
  388. "Accept-Language", _builder._locale.toLanguageTag());
  389. }
  390. for (Map.Entry<String, String> entry :
  391. _builder._headers.entrySet()) {
  392. httpInvoker.header(entry.getKey(), entry.getValue());
  393. }
  394. for (Map.Entry<String, String> entry :
  395. _builder._parameters.entrySet()) {
  396. httpInvoker.parameter(entry.getKey(), entry.getValue());
  397. }
  398. httpInvoker.httpMethod(HttpInvoker.HttpMethod.GET);
  399. httpInvoker.path(
  400. _builder._scheme + "://" + _builder._host + ":" +
  401. _builder._port + _builder._contextPath +
  402. "/o/headless-delivery/v1.0/sites/{siteId}/site-pages/{friendlyUrlPath}/experiences/{experienceKey}");
  403. httpInvoker.path("siteId", siteId);
  404. httpInvoker.path("friendlyUrlPath", friendlyUrlPath);
  405. httpInvoker.path("experienceKey", experienceKey);
  406. httpInvoker.userNameAndPassword(
  407. _builder._login + ":" + _builder._password);
  408. return httpInvoker.invoke();
  409. }
  410. public String getSiteSitePageExperienceExperienceKeyRenderedPage(
  411. Long siteId, String friendlyUrlPath, String experienceKey)
  412. throws Exception {
  413. HttpInvoker.HttpResponse httpResponse =
  414. getSiteSitePageExperienceExperienceKeyRenderedPageHttpResponse(
  415. siteId, friendlyUrlPath, experienceKey);
  416. String content = httpResponse.getContent();
  417. if ((httpResponse.getStatusCode() / 100) != 2) {
  418. _logger.log(
  419. Level.WARNING,
  420. "Unable to process HTTP response content: " + content);
  421. _logger.log(
  422. Level.WARNING,
  423. "HTTP response message: " + httpResponse.getMessage());
  424. _logger.log(
  425. Level.WARNING,
  426. "HTTP response status code: " +
  427. httpResponse.getStatusCode());
  428. throw new Problem.ProblemException(Problem.toDTO(content));
  429. }
  430. else {
  431. _logger.fine("HTTP response content: " + content);
  432. _logger.fine(
  433. "HTTP response message: " + httpResponse.getMessage());
  434. _logger.fine(
  435. "HTTP response status code: " +
  436. httpResponse.getStatusCode());
  437. }
  438. try {
  439. return content;
  440. }
  441. catch (Exception e) {
  442. _logger.log(
  443. Level.WARNING,
  444. "Unable to process HTTP response: " + content, e);
  445. throw new Problem.ProblemException(Problem.toDTO(content));
  446. }
  447. }
  448. public HttpInvoker.HttpResponse
  449. getSiteSitePageExperienceExperienceKeyRenderedPageHttpResponse(
  450. Long siteId, String friendlyUrlPath, String experienceKey)
  451. throws Exception {
  452. HttpInvoker httpInvoker = HttpInvoker.newHttpInvoker();
  453. if (_builder._locale != null) {
  454. httpInvoker.header(
  455. "Accept-Language", _builder._locale.toLanguageTag());
  456. }
  457. for (Map.Entry<String, String> entry :
  458. _builder._headers.entrySet()) {
  459. httpInvoker.header(entry.getKey(), entry.getValue());
  460. }
  461. for (Map.Entry<String, String> entry :
  462. _builder._parameters.entrySet()) {
  463. httpInvoker.parameter(entry.getKey(), entry.getValue());
  464. }
  465. httpInvoker.httpMethod(HttpInvoker.HttpMethod.GET);
  466. httpInvoker.path(
  467. _builder._scheme + "://" + _builder._host + ":" +
  468. _builder._port + _builder._contextPath +
  469. "/o/headless-delivery/v1.0/sites/{siteId}/site-pages/{friendlyUrlPath}/experiences/{experienceKey}/rendered-page");
  470. httpInvoker.path("siteId", siteId);
  471. httpInvoker.path("friendlyUrlPath", friendlyUrlPath);
  472. httpInvoker.path("experienceKey", experienceKey);
  473. httpInvoker.userNameAndPassword(
  474. _builder._login + ":" + _builder._password);
  475. return httpInvoker.invoke();
  476. }
  477. public String getSiteSitePageRenderedPage(
  478. Long siteId, String friendlyUrlPath)
  479. throws Exception {
  480. HttpInvoker.HttpResponse httpResponse =
  481. getSiteSitePageRenderedPageHttpResponse(
  482. siteId, friendlyUrlPath);
  483. String content = httpResponse.getContent();
  484. if ((httpResponse.getStatusCode() / 100) != 2) {
  485. _logger.log(
  486. Level.WARNING,
  487. "Unable to process HTTP response content: " + content);
  488. _logger.log(
  489. Level.WARNING,
  490. "HTTP response message: " + httpResponse.getMessage());
  491. _logger.log(
  492. Level.WARNING,
  493. "HTTP response status code: " +
  494. httpResponse.getStatusCode());
  495. throw new Problem.ProblemException(Problem.toDTO(content));
  496. }
  497. else {
  498. _logger.fine("HTTP response content: " + content);
  499. _logger.fine(
  500. "HTTP response message: " + httpResponse.getMessage());
  501. _logger.fine(
  502. "HTTP response status code: " +
  503. httpResponse.getStatusCode());
  504. }
  505. try {
  506. return content;
  507. }
  508. catch (Exception e) {
  509. _logger.log(
  510. Level.WARNING,
  511. "Unable to process HTTP response: " + content, e);
  512. throw new Problem.ProblemException(Problem.toDTO(content));
  513. }
  514. }
  515. public HttpInvoker.HttpResponse getSiteSitePageRenderedPageHttpResponse(
  516. Long siteId, String friendlyUrlPath)
  517. throws Exception {
  518. HttpInvoker httpInvoker = HttpInvoker.newHttpInvoker();
  519. if (_builder._locale != null) {
  520. httpInvoker.header(
  521. "Accept-Language", _builder._locale.toLanguageTag());
  522. }
  523. for (Map.Entry<String, String> entry :
  524. _builder._headers.entrySet()) {
  525. httpInvoker.header(entry.getKey(), entry.getValue());
  526. }
  527. for (Map.Entry<String, String> entry :
  528. _builder._parameters.entrySet()) {
  529. httpInvoker.parameter(entry.getKey(), entry.getValue());
  530. }
  531. httpInvoker.httpMethod(HttpInvoker.HttpMethod.GET);
  532. httpInvoker.path(
  533. _builder._scheme + "://" + _builder._host + ":" +
  534. _builder._port + _builder._contextPath +
  535. "/o/headless-delivery/v1.0/sites/{siteId}/site-pages/{friendlyUrlPath}/rendered-page");
  536. httpInvoker.path("siteId", siteId);
  537. httpInvoker.path("friendlyUrlPath", friendlyUrlPath);
  538. httpInvoker.userNameAndPassword(
  539. _builder._login + ":" + _builder._password);
  540. return httpInvoker.invoke();
  541. }
  542. private SitePageResourceImpl(Builder builder) {
  543. _builder = builder;
  544. }
  545. private static final Logger _logger = Logger.getLogger(
  546. SitePageResource.class.getName());
  547. private Builder _builder;
  548. }
  549. }