All files / src/store/features/workflow/api getWorkflowApi.ts

0% Statements 0/13
100% Branches 0/0
0% Functions 0/4
0% Lines 0/13

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39                                                                             
import { GET_WORKFLOWS } from "../../../../constants/index.ts";
import { workflowToState } from "../../../../utils/parser/workflow/workflowToState.ts";
import { apiSlice } from "../../../app/apiSlice.ts";
import { setWorkflowKey } from "../workflowSlice.ts";
 
export const getWorkflowApi = apiSlice.injectEndpoints({
  endpoints: (builder) => ({
    getWorkflow: builder.query<any, string>({
      query: (workflowId) => ({
        url: GET_WORKFLOWS,
        method: "POST",
        body: {
          workflow_ids: [workflowId],
        },
      }),
      transformResponse: (response) => {
        return response?.workflows[0];
      },
      onQueryStarted: async (_, { dispatch, queryFulfilled }) => {
        try {
          const { data } = await queryFulfilled;
          dispatch(
            setWorkflowKey({
              key: "currentWorkflow",
              value: workflowToState(data),
            }),
          );
        } catch (error) {
          // Handle any errors
          console.log(error);
        }
      },
      providesTags: ["Workflows"],
    }),
  }),
});
 
export const { useLazyGetWorkflowQuery } = getWorkflowApi;