All files / src/store/features/auth/api/oauth okta.ts

0% Statements 0/19
100% Branches 0/0
0% Functions 0/3
0% Lines 0/19

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                                                                   
import posthog from "posthog-js";
import { apiSlice } from "../../../../app/apiSlice.ts";
import { OKTA_OAUTH } from "../../../../../constants/index.ts";
import { setCredentials } from "../../authSlice.ts";
 
export const oktaOAuthApi = apiSlice.injectEndpoints({
  endpoints: (builder) => ({
    oktaOAuth: builder.mutation<any, string>({
      query: (query) => ({
        url: `${OKTA_OAUTH}?${query}`,
        method: "GET",
      }),
      onQueryStarted: async (_, { dispatch, queryFulfilled }) => {
        try {
          const { data } = await queryFulfilled;
          const accessToken = data?.access_token;
          const refreshToken = data?.refresh_token;
          const email = data?.user?.email;
          dispatch(setCredentials({ accessToken, refreshToken, email }));
          localStorage.setItem("email", email);
          localStorage.setItem("access_token", accessToken);
          localStorage.setItem("refresh_token", accessToken);
          posthog.identify(email);
        } catch (error) {
          // Handle any errors
          console.log(error);
        }
      },
    }),
  }),
});
 
export const { useOktaOAuthMutation } = oktaOAuthApi;