commerce/lib/spree/utils.ts
Timur Suleymanov 83ae628672 tests pages
2024-06-05 00:37:35 +05:00

49 lines
1.4 KiB
TypeScript

import { IOAuthToken } from '@spree/storefront-api-v2-sdk/dist/*';
import Cookies from 'js-cookie';
import { IToken } from './types';
export const getCartToken = () => Cookies.get('cartToken');
export const setCartToken = (cartToken: string) => {
const date = new Date();
const expires = date.setTime(date.getTime() + 30 * 24 * 60 * 60 * 1000);
const cookieOptions = { expires };
Cookies.set('cartToken', cartToken, cookieOptions);
};
export const removeCartToken = () => Cookies.remove('cartToken');
export const ensureIToken = (): IToken | undefined => {
const userTokenResponse = ensureUserTokenResponse();
if (userTokenResponse) return { bearer_token: userTokenResponse.access_token };
const cartToken = getCartToken();
if (cartToken) return { order_token: cartToken };
return undefined;
};
/**
* Retrieves the saved user token response. If the response fails json parsing,
* removes the saved token and returns @type {undefined} instead.
*/
export const ensureUserTokenResponse = (): IOAuthToken | undefined => {};
export const getUserTokenResponse = (): IOAuthToken | undefined => {
const stringifiedToken = Cookies.get('userToken');
if (!stringifiedToken) return undefined;
try {
const token = JSON.parse(stringifiedToken);
return token;
} catch (parseError) {
throw 'Could not parse stored user token response.';
}
};
export const removeUserTokenResponse = () => Cookies.remove('userCookieName');