brokers.ts 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  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
  9. ): PromiseThunkResult => 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,
  20. brokerId: BrokerId
  21. ): PromiseThunkResult => async (dispatch) => {
  22. dispatch(actions.fetchBrokerMetricsAction.request());
  23. try {
  24. const payload = await brokersApiClient.getBrokersMetrics({
  25. clusterName,
  26. id: brokerId,
  27. });
  28. dispatch(actions.fetchBrokerMetricsAction.success(payload));
  29. } catch (e) {
  30. dispatch(actions.fetchBrokerMetricsAction.failure());
  31. }
  32. };