PromucFlow_constructor/app/client/src/sagas/AnalyticsSaga.ts

53 lines
1.4 KiB
TypeScript
Raw Normal View History

import {
ReduxActionTypes,
type ReduxActionType,
} from "@appsmith/constants/ReduxActionConstants";
import type { Action } from "entities/Action";
import AnalyticsUtil from "utils/AnalyticsUtil";
import {
RequestPayloadAnalyticsPath,
cleanValuesInObjectForHashing,
generateHashFromString,
} from "./helper";
import get from "lodash/get";
import log from "loglevel";
export function* sendAnalyticsEventSaga(
type: ReduxActionType,
payload: unknown,
) {
try {
switch (type) {
case ReduxActionTypes.UPDATE_ACTION_INIT:
const { action, pageName } = payload as {
action: Action;
pageName: string;
};
const cleanActionConfiguration = cleanValuesInObjectForHashing(
action.actionConfiguration,
);
const actionConfigurationHash: string = yield generateHashFromString(
JSON.stringify(cleanActionConfiguration),
);
const originalActionId = get(
action,
`${RequestPayloadAnalyticsPath}.originalActionId`,
action.id,
);
AnalyticsUtil.logEvent("SAVE_ACTION", {
actionName: action.name,
pageName: pageName,
originalActionId: originalActionId,
actionId: action.id,
hash: actionConfigurationHash,
actionType: action.pluginType,
actionPlugin: action.pluginId,
});
}
} catch (e) {
log.error("Failed to send analytics event");
}
}