GraphQL fileCreate return src?!

Vinnydude
Shopify Partner
19 1 4

I'm in the process of creating an importer for an old site and part of what I need to import includes some wysiwyg areas which include images.

I am as far as using the mutation fileCreate to upload the file, this is all working.

However, I can't seem to get back the new url that I need to replace in my content!

image is just returning null.

Any ideas what I'm doing wrong here?

mutation fileCreate($files: [FileCreateInput!]!) {
                      fileCreate(files: $files) {
                        files {
                          ... on MediaImage {
                            id
                            image {
                              transformedSrc
                            }
                          }
                        }
                      }
                    }
Replies 4 (4)
Vinnydude
Shopify Partner
19 1 4

I've cracked it!

Rather than relying on the fileCreate to pass me anything meaningful back, I already have the filename of the file I'm creating.

So if I run a second graphQL and query the filename, I can get the file and url!!!

{
                        files(query: "filename:'.$filename.'", first: 1) {
                            edges {
                                node {
                                    createdAt
                                    ... on MediaImage {
                                        id
                                        image {
                                            transformedSrc
                                        }
                                    }
                                }
                            }
                        }
                    }
mariannef
New Member
2 0 4

Thanks for posting this solution!

If anyone's passing through here wondering how to pass that $filename as a variable since the query expects a string, here's a useful thread

AnonyScott
Tourist
3 1 4

Simpler solution that might not of been available when the original was posts is to take the id returned by fileCreate then query for the node directly

 

https://shopify.dev/api/admin-graphql/2021-10/queries/node

Vinnydude
Shopify Partner
19 1 4

That sounds like a far more reliable method. I'll definitely keep that in mind if I need to right another importer. Thank you!