123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- import {
- ConsumerGroupsApi,
- Configuration,
- ConsumerGroupOffsetsResetType,
- } from 'generated-sources';
- import {
- ConsumerGroupID,
- PromiseThunkResult,
- ClusterName,
- FailurePayload,
- } from 'redux/interfaces';
- import { BASE_PARAMS } from 'lib/constants';
- import { getResponse } from 'lib/errorHandling';
- import * as actions from 'redux/actions/actions';
- const apiClientConf = new Configuration(BASE_PARAMS);
- export const consumerGroupsApiClient = new ConsumerGroupsApi(apiClientConf);
- export const fetchConsumerGroupsList =
- (clusterName: ClusterName): PromiseThunkResult =>
- async (dispatch) => {
- dispatch(actions.fetchConsumerGroupsAction.request());
- try {
- const consumerGroups = await consumerGroupsApiClient.getConsumerGroups({
- clusterName,
- });
- dispatch(actions.fetchConsumerGroupsAction.success(consumerGroups));
- } catch (e) {
- const response = await getResponse(e);
- const alert: FailurePayload = {
- subject: ['consumer-groups', clusterName].join('-'),
- title: `Consumer Gropups`,
- response,
- };
- dispatch(actions.fetchConsumerGroupsAction.failure({ alert }));
- }
- };
- export const fetchConsumerGroupDetails =
- (
- clusterName: ClusterName,
- consumerGroupID: ConsumerGroupID
- ): PromiseThunkResult =>
- async (dispatch) => {
- dispatch(actions.fetchConsumerGroupDetailsAction.request());
- try {
- const consumerGroupDetails =
- await consumerGroupsApiClient.getConsumerGroup({
- clusterName,
- id: consumerGroupID,
- });
- dispatch(
- actions.fetchConsumerGroupDetailsAction.success({
- consumerGroupID,
- details: consumerGroupDetails,
- })
- );
- } catch (e) {
- const response = await getResponse(e);
- const alert: FailurePayload = {
- subject: ['consumer-group', consumerGroupID].join('-'),
- title: `Consumer Gropup ${consumerGroupID}`,
- response,
- };
- dispatch(actions.fetchConsumerGroupDetailsAction.failure({ alert }));
- }
- };
- export const deleteConsumerGroup =
- (
- clusterName: ClusterName,
- consumerGroupID: ConsumerGroupID
- ): PromiseThunkResult =>
- async (dispatch) => {
- dispatch(actions.deleteConsumerGroupAction.request());
- try {
- await consumerGroupsApiClient.deleteConsumerGroup({
- clusterName,
- id: consumerGroupID,
- });
- dispatch(actions.deleteConsumerGroupAction.success(consumerGroupID));
- } catch (e) {
- const response = await getResponse(e);
- const alert: FailurePayload = {
- subject: ['consumer-group', consumerGroupID].join('-'),
- title: `Consumer Gropup ${consumerGroupID}`,
- response,
- };
- dispatch(actions.deleteConsumerGroupAction.failure({ alert }));
- }
- };
- export const resetConsumerGroupOffsets =
- (
- clusterName: ClusterName,
- consumerGroupID: ConsumerGroupID,
- requestBody: {
- topic: string;
- resetType: ConsumerGroupOffsetsResetType;
- partitionsOffsets?: { offset: string; partition: number }[];
- resetToTimestamp?: Date;
- partitions: number[];
- }
- ): PromiseThunkResult =>
- async (dispatch) => {
- dispatch(actions.resetConsumerGroupOffsetsAction.request());
- try {
- await consumerGroupsApiClient.resetConsumerGroupOffsets({
- clusterName,
- id: consumerGroupID,
- consumerGroupOffsetsReset: {
- topic: requestBody.topic,
- resetType: requestBody.resetType,
- partitions: requestBody.partitions,
- partitionsOffsets: requestBody.partitionsOffsets?.map((offset) => ({
- ...offset,
- offset: +offset.offset,
- })),
- resetToTimestamp: requestBody.resetToTimestamp?.getTime(),
- },
- });
- dispatch(actions.resetConsumerGroupOffsetsAction.success());
- } catch (e) {
- const response = await getResponse(e);
- const alert: FailurePayload = {
- subject: ['consumer-group', consumerGroupID].join('-'),
- title: `Consumer Gropup ${consumerGroupID}`,
- response,
- };
- dispatch(actions.resetConsumerGroupOffsetsAction.failure({ alert }));
- }
- };
|