How can I make a query to shopify graphql admin if I am using public query from Checkout extension ui?
This code from ui:
const sessionToken = useSessionToken();
.....
const token = await sessionToken.get();
const response = await fetch(`${ appUrl }/api/test?checkoutToken=${ checkoutToken }`, {
method: "GET",
headers: {
"Content-Type": "application/json",
"Authorization": `Bearer ${ token }`,
},
});
In remix:
import type { LoaderFunctionArgs } from "@remix-run/node";
import { authenticate } from '../shopify.server';
export async function loader({request}: LoaderFunctionArgs) {
const url = new URL(request.url);
const checkoutToken = url.searchParams.get("checkoutToken");
// don't work, how it can be done?
const admin = await authenticate.public.checkout(request);
const response = await admin.graphql(`
query {
orders(first: 1, query: "checkout_token:${ checkoutToken }") {
edges {
node {
id
createdAt
}
}
}
}
`);
.....
return Response(json({ "data": {...} }));