async function makeGraphQLRequest(query, variables) {
let token = getAccessToken();
let response = await fetch("/graphql", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${token}`,
},
body: JSON.stringify({ query, variables }),
});
// If unauthorized, refresh token and retry
if (response.status === 401) {
token = await refreshAccessToken();
response = await fetch("/graphql", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${token}`,
},
body: JSON.stringify({ query, variables }),
});
}
return response.json();
}