PluginProbe
HubSpot All-In-One Marketing – Forms, Popups, Live Chat / 11.3.75
HubSpot All-In-One Marketing – Forms, Popups, Live Chat v11.3.75
11.3.75 11.3.73 11.3.71 11.3.70 11.3.69 11.3.64 11.3.65 11.3.62 11.3.61 11.3.56 11.3.58 11.0.31 11.0.52 11.0.54 11.0.56 11.0.58 11.0.7 11.1.10 11.1.11 11.1.13 11.1.14 11.1.15 11.1.2 11.1.20 11.1.21 All 73 releases
← All changes | scripts/api/wordpressApiClient.ts +55 -0 11.1.1311.3.75 View file →
@@ -79,4 +79,59 @@
79 79
80 80 export function getBusinessUnitId() {
81 81 return makeRequest('get', '/business-unit');
82 82 }
83 +
84 +export function refreshProxyMappingsCache() {
85 + return makeRequest('post', '/wp-mappings-cache-reset');
86 +}
87 +
88 +export function fetchProxyMappingsEnabled() {
89 + return makeRequest('get', '/wp-mappings-proxy-enabled');
90 +}
91 +
92 +export function toggleProxyMappingsEnabled(value: boolean) {
93 + return makeRequest('put', '/wp-mappings-proxy-enabled', value);
94 +}
95 +
96 +const ACCESS_TOKEN_CACHE_KEY = 'leadin_access_token';
97 +const ACCESS_TOKEN_MIN_TTL_SECONDS = 300;
98 +
99 +let accessTokenRequest: Promise<any> | null = null;
100 +
101 +export function fetchAccessToken() {
102 + try {
103 + const cached = sessionStorage.getItem(ACCESS_TOKEN_CACHE_KEY);
104 + if (cached) {
105 + const { accessToken, expiresAt } = JSON.parse(cached);
106 + if (
107 + accessToken &&
108 + expiresAt > Math.floor(Date.now() / 1000) + ACCESS_TOKEN_MIN_TTL_SECONDS
109 + ) {
110 + return Promise.resolve({
111 + accessToken,
112 + expiresIn: expiresAt - Math.floor(Date.now() / 1000),
113 + });
114 + }
115 + }
116 + } catch (_) {}
117 +
118 + if (!accessTokenRequest) {
119 + accessTokenRequest = makeRequest('get', '/access-token')
120 + .then((response: { accessToken: string; expiresIn: number }) => {
121 + try {
122 + sessionStorage.setItem(
123 + ACCESS_TOKEN_CACHE_KEY,
124 + JSON.stringify({
125 + accessToken: response.accessToken,
126 + expiresAt: Math.floor(Date.now() / 1000) + response.expiresIn,
127 + })
128 + );
129 + } catch (_) {}
130 + return response;
131 + })
132 + .finally(() => {
133 + accessTokenRequest = null;
134 + });
135 + }
136 + return accessTokenRequest;
137 +}