brokers.ts 1.2 KB

12345678910111213141516171819202122232425262728293031323334
  1. import { BrokersApi, Configuration } from 'generated-sources';
  2. import { PromiseThunkResult, ClusterName, BrokerId } from 'redux/interfaces';
  3. import { BASE_PARAMS } from 'lib/constants';
  4. import * as actions from 'redux/actions/actions';
  5. const apiClientConf = new Configuration(BASE_PARAMS);
  6. export const brokersApiClient = new BrokersApi(apiClientConf);
  7. export const fetchBrokers =
  8. (clusterName: ClusterName): PromiseThunkResult =>
  9. async (dispatch) => {
  10. dispatch(actions.fetchBrokersAction.request());
  11. try {
  12. const payload = await brokersApiClient.getBrokers({ clusterName });
  13. dispatch(actions.fetchBrokersAction.success(payload));
  14. } catch (e) {
  15. dispatch(actions.fetchBrokersAction.failure());
  16. }
  17. };
  18. export const fetchBrokerMetrics =
  19. (clusterName: ClusterName, brokerId: BrokerId): PromiseThunkResult =>
  20. async (dispatch) => {
  21. dispatch(actions.fetchBrokerMetricsAction.request());
  22. try {
  23. const payload = await brokersApiClient.getBrokersMetrics({
  24. clusterName,
  25. id: brokerId,
  26. });
  27. dispatch(actions.fetchBrokerMetricsAction.success(payload));
  28. } catch (e) {
  29. dispatch(actions.fetchBrokerMetricsAction.failure());
  30. }
  31. };