2022-02-25 10:48:18 +00:00
|
|
|
import md5 from 'md5';
|
|
|
|
|
|
|
|
const REQUIRED_USER_KEYS = ['avatar_url', 'email', 'name'];
|
|
|
|
const ALLOWED_USER_ATTRIBUTES = [...REQUIRED_USER_KEYS, 'identifier_hash'];
|
|
|
|
|
2022-02-21 04:10:11 +00:00
|
|
|
export const getUserCookieName = () => {
|
|
|
|
const SET_USER_COOKIE_PREFIX = 'cw_user_';
|
|
|
|
const { websiteToken: websiteIdentifier } = window.$chatwoot;
|
|
|
|
return `${SET_USER_COOKIE_PREFIX}${websiteIdentifier}`;
|
|
|
|
};
|
2022-02-25 10:48:18 +00:00
|
|
|
|
|
|
|
export const getUserString = ({ identifier = '', user }) => {
|
|
|
|
const userStringWithSortedKeys = ALLOWED_USER_ATTRIBUTES.reduce(
|
|
|
|
(acc, key) => `${acc}${key}${user[key] || ''}`,
|
|
|
|
''
|
|
|
|
);
|
|
|
|
return `${userStringWithSortedKeys}identifier${identifier}`;
|
|
|
|
};
|
|
|
|
|
|
|
|
export const computeHashForUserData = (...args) => md5(getUserString(...args));
|
|
|
|
|
|
|
|
export const hasUserKeys = user =>
|
|
|
|
REQUIRED_USER_KEYS.reduce((acc, key) => acc || !!user[key], false);
|