- Add SALEOR_API_TOKEN environment variable support - Update Apollo client to include auth header - Enable COD transaction creation after checkout
47 lines
1.1 KiB
TypeScript
47 lines
1.1 KiB
TypeScript
import { ApolloClient, InMemoryCache, createHttpLink } from "@apollo/client";
|
|
import { setContext } from "@apollo/client/link/context";
|
|
|
|
const httpLink = createHttpLink({
|
|
uri: process.env.NEXT_PUBLIC_SALEOR_API_URL || "http://localhost:8000/graphql/",
|
|
});
|
|
|
|
const authLink = setContext((_, { headers }) => {
|
|
// Add auth token for admin operations
|
|
const token = process.env.SALEOR_API_TOKEN;
|
|
return {
|
|
headers: {
|
|
...headers,
|
|
"Content-Type": "application/json",
|
|
...(token && { "Authorization": `Bearer ${token}` }),
|
|
},
|
|
};
|
|
});
|
|
|
|
export const saleorClient = new ApolloClient({
|
|
link: authLink.concat(httpLink),
|
|
cache: new InMemoryCache({
|
|
typePolicies: {
|
|
Query: {
|
|
fields: {
|
|
products: {
|
|
keyArgs: ["channel", "filter"],
|
|
merge(_existing, incoming) {
|
|
return incoming;
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}),
|
|
defaultOptions: {
|
|
watchQuery: {
|
|
fetchPolicy: "cache-first",
|
|
},
|
|
query: {
|
|
fetchPolicy: "cache-first",
|
|
},
|
|
},
|
|
});
|
|
|
|
export default saleorClient;
|