Для работы с транзакциями создайте приложение «IdTransactionActivity», в котором используются методы, реализованные в модуле IdTransactionApi.
Приложение позволяет получать ответы на повторные запросы при разрыве соединения с помощью ID транзакции и без обращения к источнику данных.
Примечание. Используйте передачу транзакционных данных, если не настроено кэширование.
Для получения подробной информации об ID транзакции обратитесь к разделу «Передача транзакционных данных».
Приложение «IdTransactionActivity» состоит из одного экрана, области ввода текста и кнопок:
«GetAllTransaction». Получение списка транзакций;
«GetRequest». Отправление обычного запроса;
«RequestWithUUID». Отправление запроса с содержанием UUID;
«RetryRequest». Отправление запроса по UUID;
«DeleteTransaction». Удаление транзакции по UUID.
Область ввода текста содержит UUID «00000000-0000-0000-0000-000000000001» по умолчанию.
Для просмотра результата работы приложения используйте интерактивный пример:
Нажмите кнопку «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;
}
}
}
}
См. также: