/modules/apps/batch-planner/batch-planner-rest-client/src/main/java/com/liferay/batch/planner/rest/client/resource/v1_0/PlanResource.java

https://github.com/danielreuther/liferay-portal · Java · 630 lines · 461 code · 152 blank · 17 comment · 47 complexity · b7bceafcb1d6f024aa7a2152d68ff303 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.batch.planner.rest.client.resource.v1_0;
  15. import com.liferay.batch.planner.rest.client.dto.v1_0.Plan;
  16. import com.liferay.batch.planner.rest.client.http.HttpInvoker;
  17. import com.liferay.batch.planner.rest.client.pagination.Page;
  18. import com.liferay.batch.planner.rest.client.pagination.Pagination;
  19. import com.liferay.batch.planner.rest.client.problem.Problem;
  20. import com.liferay.batch.planner.rest.client.serdes.v1_0.PlanSerDes;
  21. import java.util.LinkedHashMap;
  22. import java.util.Locale;
  23. import java.util.Map;
  24. import java.util.logging.Level;
  25. import java.util.logging.Logger;
  26. import javax.annotation.Generated;
  27. /**
  28. * @author Matija Petanjek
  29. * @generated
  30. */
  31. @Generated("")
  32. public interface PlanResource {
  33. public static Builder builder() {
  34. return new Builder();
  35. }
  36. public Page<Plan> getPlansPage(Pagination pagination) throws Exception;
  37. public HttpInvoker.HttpResponse getPlansPageHttpResponse(
  38. Pagination pagination)
  39. throws Exception;
  40. public Plan postPlan(Plan plan) throws Exception;
  41. public HttpInvoker.HttpResponse postPlanHttpResponse(Plan plan)
  42. throws Exception;
  43. public void getPlanTemplate(String internalClassName) throws Exception;
  44. public HttpInvoker.HttpResponse getPlanTemplateHttpResponse(
  45. String internalClassName)
  46. throws Exception;
  47. public void deletePlan(Long planId) throws Exception;
  48. public HttpInvoker.HttpResponse deletePlanHttpResponse(Long planId)
  49. throws Exception;
  50. public Plan getPlan(Long planId) throws Exception;
  51. public HttpInvoker.HttpResponse getPlanHttpResponse(Long planId)
  52. throws Exception;
  53. public Plan patchPlan(Long planId, Plan plan) throws Exception;
  54. public HttpInvoker.HttpResponse patchPlanHttpResponse(
  55. Long planId, Plan plan)
  56. throws Exception;
  57. public static class Builder {
  58. public Builder authentication(String login, String password) {
  59. _login = login;
  60. _password = password;
  61. return this;
  62. }
  63. public PlanResource build() {
  64. return new PlanResourceImpl(this);
  65. }
  66. public Builder contextPath(String contextPath) {
  67. _contextPath = contextPath;
  68. return this;
  69. }
  70. public Builder endpoint(String host, int port, String scheme) {
  71. _host = host;
  72. _port = port;
  73. _scheme = scheme;
  74. return this;
  75. }
  76. public Builder header(String key, String value) {
  77. _headers.put(key, value);
  78. return this;
  79. }
  80. public Builder locale(Locale locale) {
  81. _locale = locale;
  82. return this;
  83. }
  84. public Builder parameter(String key, String value) {
  85. _parameters.put(key, value);
  86. return this;
  87. }
  88. public Builder parameters(String... parameters) {
  89. if ((parameters.length % 2) != 0) {
  90. throw new IllegalArgumentException(
  91. "Parameters length is not an even number");
  92. }
  93. for (int i = 0; i < parameters.length; i += 2) {
  94. String parameterName = String.valueOf(parameters[i]);
  95. String parameterValue = String.valueOf(parameters[i + 1]);
  96. _parameters.put(parameterName, parameterValue);
  97. }
  98. return this;
  99. }
  100. private Builder() {
  101. }
  102. private String _contextPath = "";
  103. private Map<String, String> _headers = new LinkedHashMap<>();
  104. private String _host = "localhost";
  105. private Locale _locale;
  106. private String _login = "";
  107. private String _password = "";
  108. private Map<String, String> _parameters = new LinkedHashMap<>();
  109. private int _port = 8080;
  110. private String _scheme = "http";
  111. }
  112. public static class PlanResourceImpl implements PlanResource {
  113. public Page<Plan> getPlansPage(Pagination pagination) throws Exception {
  114. HttpInvoker.HttpResponse httpResponse = getPlansPageHttpResponse(
  115. pagination);
  116. String content = httpResponse.getContent();
  117. if ((httpResponse.getStatusCode() / 100) != 2) {
  118. _logger.log(
  119. Level.WARNING,
  120. "Unable to process HTTP response content: " + content);
  121. _logger.log(
  122. Level.WARNING,
  123. "HTTP response message: " + httpResponse.getMessage());
  124. _logger.log(
  125. Level.WARNING,
  126. "HTTP response status code: " +
  127. httpResponse.getStatusCode());
  128. throw new Problem.ProblemException(Problem.toDTO(content));
  129. }
  130. else {
  131. _logger.fine("HTTP response content: " + content);
  132. _logger.fine(
  133. "HTTP response message: " + httpResponse.getMessage());
  134. _logger.fine(
  135. "HTTP response status code: " +
  136. httpResponse.getStatusCode());
  137. }
  138. try {
  139. return Page.of(content, PlanSerDes::toDTO);
  140. }
  141. catch (Exception e) {
  142. _logger.log(
  143. Level.WARNING,
  144. "Unable to process HTTP response: " + content, e);
  145. throw new Problem.ProblemException(Problem.toDTO(content));
  146. }
  147. }
  148. public HttpInvoker.HttpResponse getPlansPageHttpResponse(
  149. Pagination pagination)
  150. throws Exception {
  151. HttpInvoker httpInvoker = HttpInvoker.newHttpInvoker();
  152. if (_builder._locale != null) {
  153. httpInvoker.header(
  154. "Accept-Language", _builder._locale.toLanguageTag());
  155. }
  156. for (Map.Entry<String, String> entry :
  157. _builder._headers.entrySet()) {
  158. httpInvoker.header(entry.getKey(), entry.getValue());
  159. }
  160. for (Map.Entry<String, String> entry :
  161. _builder._parameters.entrySet()) {
  162. httpInvoker.parameter(entry.getKey(), entry.getValue());
  163. }
  164. httpInvoker.httpMethod(HttpInvoker.HttpMethod.GET);
  165. if (pagination != null) {
  166. httpInvoker.parameter(
  167. "page", String.valueOf(pagination.getPage()));
  168. httpInvoker.parameter(
  169. "pageSize", String.valueOf(pagination.getPageSize()));
  170. }
  171. httpInvoker.path(
  172. _builder._scheme + "://" + _builder._host + ":" +
  173. _builder._port + _builder._contextPath +
  174. "/o/batch-planner/v1.0/plans");
  175. httpInvoker.userNameAndPassword(
  176. _builder._login + ":" + _builder._password);
  177. return httpInvoker.invoke();
  178. }
  179. public Plan postPlan(Plan plan) throws Exception {
  180. HttpInvoker.HttpResponse httpResponse = postPlanHttpResponse(plan);
  181. String content = httpResponse.getContent();
  182. if ((httpResponse.getStatusCode() / 100) != 2) {
  183. _logger.log(
  184. Level.WARNING,
  185. "Unable to process HTTP response content: " + content);
  186. _logger.log(
  187. Level.WARNING,
  188. "HTTP response message: " + httpResponse.getMessage());
  189. _logger.log(
  190. Level.WARNING,
  191. "HTTP response status code: " +
  192. httpResponse.getStatusCode());
  193. throw new Problem.ProblemException(Problem.toDTO(content));
  194. }
  195. else {
  196. _logger.fine("HTTP response content: " + content);
  197. _logger.fine(
  198. "HTTP response message: " + httpResponse.getMessage());
  199. _logger.fine(
  200. "HTTP response status code: " +
  201. httpResponse.getStatusCode());
  202. }
  203. try {
  204. return PlanSerDes.toDTO(content);
  205. }
  206. catch (Exception e) {
  207. _logger.log(
  208. Level.WARNING,
  209. "Unable to process HTTP response: " + content, e);
  210. throw new Problem.ProblemException(Problem.toDTO(content));
  211. }
  212. }
  213. public HttpInvoker.HttpResponse postPlanHttpResponse(Plan plan)
  214. throws Exception {
  215. HttpInvoker httpInvoker = HttpInvoker.newHttpInvoker();
  216. httpInvoker.body(plan.toString(), "application/json");
  217. if (_builder._locale != null) {
  218. httpInvoker.header(
  219. "Accept-Language", _builder._locale.toLanguageTag());
  220. }
  221. for (Map.Entry<String, String> entry :
  222. _builder._headers.entrySet()) {
  223. httpInvoker.header(entry.getKey(), entry.getValue());
  224. }
  225. for (Map.Entry<String, String> entry :
  226. _builder._parameters.entrySet()) {
  227. httpInvoker.parameter(entry.getKey(), entry.getValue());
  228. }
  229. httpInvoker.httpMethod(HttpInvoker.HttpMethod.POST);
  230. httpInvoker.path(
  231. _builder._scheme + "://" + _builder._host + ":" +
  232. _builder._port + _builder._contextPath +
  233. "/o/batch-planner/v1.0/plans");
  234. httpInvoker.userNameAndPassword(
  235. _builder._login + ":" + _builder._password);
  236. return httpInvoker.invoke();
  237. }
  238. public void getPlanTemplate(String internalClassName) throws Exception {
  239. HttpInvoker.HttpResponse httpResponse = getPlanTemplateHttpResponse(
  240. internalClassName);
  241. String content = httpResponse.getContent();
  242. if ((httpResponse.getStatusCode() / 100) != 2) {
  243. _logger.log(
  244. Level.WARNING,
  245. "Unable to process HTTP response content: " + content);
  246. _logger.log(
  247. Level.WARNING,
  248. "HTTP response message: " + httpResponse.getMessage());
  249. _logger.log(
  250. Level.WARNING,
  251. "HTTP response status code: " +
  252. httpResponse.getStatusCode());
  253. throw new Problem.ProblemException(Problem.toDTO(content));
  254. }
  255. else {
  256. _logger.fine("HTTP response content: " + content);
  257. _logger.fine(
  258. "HTTP response message: " + httpResponse.getMessage());
  259. _logger.fine(
  260. "HTTP response status code: " +
  261. httpResponse.getStatusCode());
  262. }
  263. }
  264. public HttpInvoker.HttpResponse getPlanTemplateHttpResponse(
  265. String internalClassName)
  266. throws Exception {
  267. HttpInvoker httpInvoker = HttpInvoker.newHttpInvoker();
  268. if (_builder._locale != null) {
  269. httpInvoker.header(
  270. "Accept-Language", _builder._locale.toLanguageTag());
  271. }
  272. for (Map.Entry<String, String> entry :
  273. _builder._headers.entrySet()) {
  274. httpInvoker.header(entry.getKey(), entry.getValue());
  275. }
  276. for (Map.Entry<String, String> entry :
  277. _builder._parameters.entrySet()) {
  278. httpInvoker.parameter(entry.getKey(), entry.getValue());
  279. }
  280. httpInvoker.httpMethod(HttpInvoker.HttpMethod.GET);
  281. httpInvoker.path(
  282. _builder._scheme + "://" + _builder._host + ":" +
  283. _builder._port + _builder._contextPath +
  284. "/o/batch-planner/v1.0/plans/{internalClassName}/template");
  285. httpInvoker.path("internalClassName", internalClassName);
  286. httpInvoker.userNameAndPassword(
  287. _builder._login + ":" + _builder._password);
  288. return httpInvoker.invoke();
  289. }
  290. public void deletePlan(Long planId) throws Exception {
  291. HttpInvoker.HttpResponse httpResponse = deletePlanHttpResponse(
  292. planId);
  293. String content = httpResponse.getContent();
  294. if ((httpResponse.getStatusCode() / 100) != 2) {
  295. _logger.log(
  296. Level.WARNING,
  297. "Unable to process HTTP response content: " + content);
  298. _logger.log(
  299. Level.WARNING,
  300. "HTTP response message: " + httpResponse.getMessage());
  301. _logger.log(
  302. Level.WARNING,
  303. "HTTP response status code: " +
  304. httpResponse.getStatusCode());
  305. throw new Problem.ProblemException(Problem.toDTO(content));
  306. }
  307. else {
  308. _logger.fine("HTTP response content: " + content);
  309. _logger.fine(
  310. "HTTP response message: " + httpResponse.getMessage());
  311. _logger.fine(
  312. "HTTP response status code: " +
  313. httpResponse.getStatusCode());
  314. }
  315. try {
  316. return;
  317. }
  318. catch (Exception e) {
  319. _logger.log(
  320. Level.WARNING,
  321. "Unable to process HTTP response: " + content, e);
  322. throw new Problem.ProblemException(Problem.toDTO(content));
  323. }
  324. }
  325. public HttpInvoker.HttpResponse deletePlanHttpResponse(Long planId)
  326. throws Exception {
  327. HttpInvoker httpInvoker = HttpInvoker.newHttpInvoker();
  328. if (_builder._locale != null) {
  329. httpInvoker.header(
  330. "Accept-Language", _builder._locale.toLanguageTag());
  331. }
  332. for (Map.Entry<String, String> entry :
  333. _builder._headers.entrySet()) {
  334. httpInvoker.header(entry.getKey(), entry.getValue());
  335. }
  336. for (Map.Entry<String, String> entry :
  337. _builder._parameters.entrySet()) {
  338. httpInvoker.parameter(entry.getKey(), entry.getValue());
  339. }
  340. httpInvoker.httpMethod(HttpInvoker.HttpMethod.DELETE);
  341. httpInvoker.path(
  342. _builder._scheme + "://" + _builder._host + ":" +
  343. _builder._port + _builder._contextPath +
  344. "/o/batch-planner/v1.0/plans/{planId}");
  345. httpInvoker.path("planId", planId);
  346. httpInvoker.userNameAndPassword(
  347. _builder._login + ":" + _builder._password);
  348. return httpInvoker.invoke();
  349. }
  350. public Plan getPlan(Long planId) throws Exception {
  351. HttpInvoker.HttpResponse httpResponse = getPlanHttpResponse(planId);
  352. String content = httpResponse.getContent();
  353. if ((httpResponse.getStatusCode() / 100) != 2) {
  354. _logger.log(
  355. Level.WARNING,
  356. "Unable to process HTTP response content: " + content);
  357. _logger.log(
  358. Level.WARNING,
  359. "HTTP response message: " + httpResponse.getMessage());
  360. _logger.log(
  361. Level.WARNING,
  362. "HTTP response status code: " +
  363. httpResponse.getStatusCode());
  364. throw new Problem.ProblemException(Problem.toDTO(content));
  365. }
  366. else {
  367. _logger.fine("HTTP response content: " + content);
  368. _logger.fine(
  369. "HTTP response message: " + httpResponse.getMessage());
  370. _logger.fine(
  371. "HTTP response status code: " +
  372. httpResponse.getStatusCode());
  373. }
  374. try {
  375. return PlanSerDes.toDTO(content);
  376. }
  377. catch (Exception e) {
  378. _logger.log(
  379. Level.WARNING,
  380. "Unable to process HTTP response: " + content, e);
  381. throw new Problem.ProblemException(Problem.toDTO(content));
  382. }
  383. }
  384. public HttpInvoker.HttpResponse getPlanHttpResponse(Long planId)
  385. throws Exception {
  386. HttpInvoker httpInvoker = HttpInvoker.newHttpInvoker();
  387. if (_builder._locale != null) {
  388. httpInvoker.header(
  389. "Accept-Language", _builder._locale.toLanguageTag());
  390. }
  391. for (Map.Entry<String, String> entry :
  392. _builder._headers.entrySet()) {
  393. httpInvoker.header(entry.getKey(), entry.getValue());
  394. }
  395. for (Map.Entry<String, String> entry :
  396. _builder._parameters.entrySet()) {
  397. httpInvoker.parameter(entry.getKey(), entry.getValue());
  398. }
  399. httpInvoker.httpMethod(HttpInvoker.HttpMethod.GET);
  400. httpInvoker.path(
  401. _builder._scheme + "://" + _builder._host + ":" +
  402. _builder._port + _builder._contextPath +
  403. "/o/batch-planner/v1.0/plans/{planId}");
  404. httpInvoker.path("planId", planId);
  405. httpInvoker.userNameAndPassword(
  406. _builder._login + ":" + _builder._password);
  407. return httpInvoker.invoke();
  408. }
  409. public Plan patchPlan(Long planId, Plan plan) throws Exception {
  410. HttpInvoker.HttpResponse httpResponse = patchPlanHttpResponse(
  411. planId, plan);
  412. String content = httpResponse.getContent();
  413. if ((httpResponse.getStatusCode() / 100) != 2) {
  414. _logger.log(
  415. Level.WARNING,
  416. "Unable to process HTTP response content: " + content);
  417. _logger.log(
  418. Level.WARNING,
  419. "HTTP response message: " + httpResponse.getMessage());
  420. _logger.log(
  421. Level.WARNING,
  422. "HTTP response status code: " +
  423. httpResponse.getStatusCode());
  424. throw new Problem.ProblemException(Problem.toDTO(content));
  425. }
  426. else {
  427. _logger.fine("HTTP response content: " + content);
  428. _logger.fine(
  429. "HTTP response message: " + httpResponse.getMessage());
  430. _logger.fine(
  431. "HTTP response status code: " +
  432. httpResponse.getStatusCode());
  433. }
  434. try {
  435. return PlanSerDes.toDTO(content);
  436. }
  437. catch (Exception e) {
  438. _logger.log(
  439. Level.WARNING,
  440. "Unable to process HTTP response: " + content, e);
  441. throw new Problem.ProblemException(Problem.toDTO(content));
  442. }
  443. }
  444. public HttpInvoker.HttpResponse patchPlanHttpResponse(
  445. Long planId, Plan plan)
  446. throws Exception {
  447. HttpInvoker httpInvoker = HttpInvoker.newHttpInvoker();
  448. httpInvoker.body(plan.toString(), "application/json");
  449. if (_builder._locale != null) {
  450. httpInvoker.header(
  451. "Accept-Language", _builder._locale.toLanguageTag());
  452. }
  453. for (Map.Entry<String, String> entry :
  454. _builder._headers.entrySet()) {
  455. httpInvoker.header(entry.getKey(), entry.getValue());
  456. }
  457. for (Map.Entry<String, String> entry :
  458. _builder._parameters.entrySet()) {
  459. httpInvoker.parameter(entry.getKey(), entry.getValue());
  460. }
  461. httpInvoker.httpMethod(HttpInvoker.HttpMethod.PATCH);
  462. httpInvoker.path(
  463. _builder._scheme + "://" + _builder._host + ":" +
  464. _builder._port + _builder._contextPath +
  465. "/o/batch-planner/v1.0/plans/{planId}");
  466. httpInvoker.path("planId", planId);
  467. httpInvoker.userNameAndPassword(
  468. _builder._login + ":" + _builder._password);
  469. return httpInvoker.invoke();
  470. }
  471. private PlanResourceImpl(Builder builder) {
  472. _builder = builder;
  473. }
  474. private static final Logger _logger = Logger.getLogger(
  475. PlanResource.class.getName());
  476. private Builder _builder;
  477. }
  478. }