App reviews, troubleshooting, and recommendations
import { nanoid } from "nanoid"; import VentroBox from "../model/ventroBoxSchema.js"; import shopify from "../shopify.js"; export const fileUpload = async (req, res, next) => { try { console.log("Uploading file..."); console.log("req.body", req.body); const shop = req?.query?.shop; console.log("shop", shop); if (!shop) { throw new Error("Missing shop parameter in the request query."); } // Retrieve session const sessions = await shopify.config.sessionStorage.findSessionsByShop(shop); console.log("sessions", sessions); if (!sessions || sessions.length === 0) { throw new Error(`No active session found for shop: ${shop}`); } const session = sessions[0]; if (!session.accessToken) { throw new Error(`Session for shop ${shop} does not have an access token.`); } const variables = { filename: req.body.name, // Correct field name (lowercase "n") mimeType: req.body.type, httpMethod: "POST", resource: "FILE", }; if (!variables.filename || !variables.mimeType) { throw new Error("Missing required fields: 'filename' or 'mimeType'."); } // Call the mutation const data = await fileUploadMutation(session, variables); console.log("data", data); const originalSource = data[0].resourceUrl; console.log("originalSource", originalSource); const dataAdded = await addImageToShopifyMutation(session, originalSource); console.log("dataAdded", dataAdded); // Respond with success res.status(200).json({ success: true, data }); } catch (error) { console.error("Error in file upload:", error.message); res.status(500).json({ success: false, error: error.message }); } }; // File upload GraphQL query const fileUploadQuery = () => { return ` mutation stagedUploadsCreate($input: [StagedUploadInput!]!) { stagedUploadsCreate(input: $input) { stagedTargets { url resourceUrl parameters { name value } } } } `; }; const addImageToShopify = () => { return ` mutation fileCreate($files: [FileCreateInput!]!) { fileCreate(files: $files) { files { id fileStatus alt createdAt } userErrors { field message } } } `; }; // File upload mutation const fileUploadMutation = async (session, variables) => { const query = fileUploadQuery(); // Create the GraphQL client with the session const client = new shopify.api.clients.Graphql({ session: session, }); try { // Execute the mutation const response = await client.query({ data: { query: query, variables: { input: [ { filename: variables.filename, // Correct field name mimeType: variables.mimeType, httpMethod: variables.httpMethod, resource: variables.resource, }, ], }, }, }); return response.body.data.stagedUploadsCreate.stagedTargets; } catch (error) { console.error("Error in GraphQL Mutation:", error.response || error.message); throw new Error("Failed to execute stagedUploadsCreate mutation"); } }; const addImageToShopifyMutation = async (session, originalSource) => { const query = addImageToShopify(); // Create the GraphQL client with the session const client = new shopify.api.clients.Graphql({ session: session, }); try { // Execute the mutation const response = await client.query({ data: { query: query, variables: { files: [ { alt: "Uploaded image", originalSource: originalSource, contentType: "IMAGE", }, ], // Ensure this is an array }, }, }); console.log("response", response.body.data.fileCreate.files); return response.body.data.fileCreate.files; } catch (error) { console.error("Error in GraphQL Mutation:", error.response || error.message); throw new Error("Failed to execute fileCreate mutation"); } };
in my this code , when i add image in my store file section give me an bellow error how can i fixed this .
thanks
Hey Community! As we jump into 2025, we want to give a big shout-out to all of you wh...
By JasonH Jan 7, 2025Hey Community! As the holiday season unfolds, we want to extend heartfelt thanks to a...
By JasonH Dec 6, 2024Dropshipping, a high-growth, $226 billion-dollar industry, remains a highly dynamic bus...
By JasonH Nov 27, 2024