Пример работы с транзакциями

Для работы с транзакциями создайте приложение «IdTransactionActivity», в котором используются методы, реализованные в модуле IdTransactionApi.

Приложение позволяет получать ответы на повторные запросы при разрыве соединения с помощью ID транзакции и без обращения к источнику данных.

Примечание. Используйте передачу транзакционных данных, если не настроено кэширование.

Для получения подробной информации об ID транзакции обратитесь к разделу «Передача транзакционных данных».

Приложение «IdTransactionActivity» состоит из одного экрана, области ввода текста и кнопок:

Область ввода текста содержит UUID «00000000-0000-0000-0000-000000000001» по умолчанию.

Для просмотра результата работы приложения используйте интерактивный пример:

  1. Нажмите кнопку «GetAllTransaction».

public class IdTransactionActivity extends AppCompatActivity {
   private static final String MY_URL = "http://testmasterfmp.fsight.cloud/";
   private static final VersionAPI MY_VERSION_API = VersionAPI.V_1;
   private static final String MY_ENVIRONMENT = "Leonid_environment";
   private static final String MY_PROJECT = "Leonid_project";
   private static final String MY_VERSION = "v1";
   private static final String MY_LOGIN = "Leonid";
   private static final String MY_PASSWORD = "123123";
   private static final String MY_RESOURCE = "GetBudgetPlanning";
   private static final String TAG = "TableStreamActivity";
 
   private HyperHive hyperHive;
   private TextView textView;
   private EditText editText;
 
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_id_transaction);
       textView = findViewById(R.id.text_view_id_transaction);
       editText = findViewById(R.id.edit_text_id_transaction);
       editText.setText("00000000-0000-0000-0000-000000000001");
 
       Handler uiHandler = new Handler();
 
       hyperHive = new HyperHiveState(getApplicationContext())
               .setHostWithSchema(MY_URL)
               .setApiVersion(MY_VERSION_API)
               .setEnvironmentSlug(MY_ENVIRONMENT)
               .setProjectSlug(MY_PROJECT)
               .setVersionProject(MY_VERSION)
               .setHandler(uiHandler)
               .buildHyperHive();
       authentication();
   }
 
   public void authentication() {
       boolean status = hyperHive.authAPI.auth(MY_LOGIN, MY_PASSWORD, true).execute().isOk();
       showStatus(status);
   }
 
   public void showStatus(boolean status) {
       Log.d(TAG, "auth: " + status);
       Toast.makeText(this, "auth: " + status, Toast.LENGTH_LONG).show();
   }
 
   // Получим список транзакций
   public void getAllTransaction(View view) {
       RootClass.Result list = hyperHive.idTransactionApi.getAllTransaction(MY_RESOURCE, RootClass.class).execute().resultClass;
       textView.setText(list.toString());
   }
 
   // Отправим обычный запрос
   public void getRequest(View view) {
       RequestCallParams requestCallParams = new RequestCallParams();
       String response = hyperHive.requestAPI.request(MY_RESOURCE, requestCallParams).execute();
       textView.setText(response);
   }
 
   // Отправим запрос, помеченный uuid
   public void getRequestWithUuid(View view) {
       String uuid = editText.getText().toString();
       RequestCallParams requestCallParams = new RequestCallParams();
       requestCallParams.setTransactionID(uuid);
       String response = hyperHive.requestAPI.request(MY_RESOURCE, requestCallParams).execute();
       textView.setText(response);
   }
 
   // Получим данные по транзакции
   public void retryRequest(View view) {
       String uuid = editText.getText().toString();
       RequestCallParams requestCallParams = new RequestCallParams();
       requestCallParams.setTransactionID(uuid);
       String response = hyperHive.requestAPI.retryRequest(MY_RESOURCE, requestCallParams).execute();
       textView.setText(response);
   }
 
   // Удалим определённую транзакцию
   public void deleteTransaction(View view) {
       String uuid = editText.getText().toString();
       boolean status = hyperHive.idTransactionApi.deleteTransaction(MY_RESOURCE, uuid).execute().isOk();
       showStatus(status);
   }
 
   private class RootClass extends BaseStatus {
       @Expose
       @SerializedName("result")
       public Result resultClass;
 
       private class Result {
           @Expose
           @SerializedName("raw")
           public List<Raw> rawList;
 
           private class Raw {
               @Expose
               @SerializedName("uuid")
               public String uuid;
           }
 
           @Override
           public String toString() {
               String str = "";
               for (Raw raw : rawList) {
                   str += raw.uuid + "\n";
               }
               return str;
           }
       }
   }
}

См. также:

Примеры использования Android-фреймворка