/app/src/main/java/com/btv/esales_perumnas/app/ESalesApie.java

https://bitbucket.org/bimotriw/esales_perumnas · Java · 136 lines · 101 code · 13 blank · 22 comment · 12 complexity · 73367f044af2518f277a54b4f1da5944 MD5 · raw file

  1. package com.btv.esales_perumnas.app;
  2. import com.btv.esales_perumnas.app.config.Conf;
  3. import com.btv.esales_perumnas.app.engine.api.Api;
  4. import com.btv.esales_perumnas.app.engine.api.ApiResult;
  5. import com.btv.esales_perumnas.app.config.Key;
  6. import com.btv.esales_perumnas.app.engine.http.HttpConnector;
  7. import com.btv.esales_perumnas.app.engine.http.HttpResponseHeader;
  8. import com.btv.esales_perumnas.app.engine.var.Bundle;
  9. import android.util.Log;
  10. public class ESalesApie extends Api {
  11. public static final String TAG = "ESalesApie";
  12. public ESalesApie(String pId, String pTag) {
  13. super(pId, pTag);
  14. }
  15. @Override
  16. public int getVersion() {
  17. return 0;
  18. }
  19. @Override
  20. protected void onWrite(Bundle pBundle, String pMetalog, String pMessage, ApiResult pResult) {
  21. long t0 = -1L;
  22. long t1 = -1L;
  23. long tc = -1L;
  24. long tw = -1L;
  25. HttpResponseHeader response = null;
  26. HttpConnector connector = null;
  27. String metalog = pBundle.getString(Key.XS_METALOG, "");
  28. long[] p_timeinfo = new long[3];
  29. process: {
  30. try {
  31. // String api_message = pBundle.getString(ApiKey.API_REQUEST_MESSAGE);
  32. // // @Step 1 : Create Message
  33. // if (api_message == null) {
  34. // pResult.ex(ERR_UNKNOWN_API);
  35. // break process;
  36. // }
  37. // @Step 2 : Create Request
  38. if (pMessage == null) {
  39. pResult.ex(Api.ERR_NULL_REQUEST);
  40. break process;
  41. }
  42. try {
  43. // @Step 4 : Create Connector
  44. metalog = metalog + ":" + getTag() + ":" + System.currentTimeMillis();
  45. connector = new HttpConnector(getTag(), Conf.API_ADDRESS, Conf.API_PORT);
  46. connector.setSoTimeout(Conf.API_TIMEOUT);
  47. connector.setMaximumReadSize(1024);
  48. connector.setSslEnabled(Conf.API_SSL_MODE);
  49. logI(metalog, "T2 API START " + pResult.getEx() + " " + pMessage);
  50. // @Step 5 : Connect
  51. t0 = System.currentTimeMillis();
  52. boolean connect = connector.connect(p_timeinfo);
  53. tc = System.currentTimeMillis();
  54. if (!connect) {
  55. pResult.ex(ERR_CONNECT_FAILED);
  56. break process;
  57. }
  58. // @Step 6 : Write
  59. String writed = connector.writeLn(pMessage);
  60. tw = System.currentTimeMillis();
  61. if (writed == null) {
  62. pResult.ex(ERR_WRITE_FAILED);
  63. break process;
  64. }
  65. // @Step 7 : Response
  66. response = connector.readResponse(p_timeinfo);
  67. // if (!Log.isWarning(getLog()) && getLog() != null) {
  68. // getLog().i(getTag(), metalog, LogUtil.d("T3", "API
  69. // RESPONSE", result + "", "", response == null ? "NULL" :
  70. // LogUtil.s(response.pack())));
  71. // }
  72. t1 = System.currentTimeMillis();
  73. if (response == null || response.getContent() == null) {
  74. pResult.ex(ERR_NULL_RESPONSE);
  75. break process;
  76. }
  77. } catch (Exception | Error e) {
  78. pResult.ex(ERR_EXCEPTION_OR_ERROR);
  79. logE(metalog, e);
  80. e.printStackTrace();
  81. break process;
  82. } finally {
  83. if (connector != null) {
  84. connector.disconnect();
  85. connector = null;
  86. }
  87. }
  88. // @Step 8 : Response
  89. // if (pMessage.extract(pBundle, response.getContent())) {
  90. if (response.getContent().length() > 0) {
  91. Log.d(pMetalog, response.getContent());
  92. pResult.ex(ERR_NONE);
  93. pResult.setResponse(response.getContent());
  94. }
  95. // Error Code
  96. pResult.dx(response.getHttpCode());
  97. // if (!response.getHttpCode().equals(HttpStatus.CODE_200)) {
  98. // pResult.ex(ERR_UNKNOWN_RESPONSE);
  99. // }
  100. } catch (Exception | Error e) {
  101. pResult.ex(ERR_EXCEPTION_OR_ERROR);
  102. logE(metalog, e);
  103. e.printStackTrace();
  104. }
  105. }
  106. }
  107. @Override
  108. protected String onCreateMessage(Bundle pBundle, String pMetalog, ApiResult pResult) {
  109. return "";
  110. }
  111. @Override
  112. protected ApiResult onCreateApiResult() {
  113. return new ApiResult();
  114. }
  115. @Override
  116. protected String getTypeDescription(int pType) {
  117. return null;
  118. }
  119. @Override
  120. protected String getResultDescription(String pResult) {
  121. return null;
  122. }
  123. }