mongo-graphql-starter icon indicating copy to clipboard operation
mongo-graphql-starter copied to clipboard

Mongoose Model Support Attempt 1 - Failed

Open natac13 opened this issue 5 years ago • 6 comments

Hey @arackaf I was really trying to get the support for Mongoose models done so that I can use this library rather than my hack job of it. Plus this can finish #2. However I have run into a few problems that I am hoping you can help with.

I have duplicated all the tests from testProject1 to testProject11 as per your instructions My issue right now is trying to get the embedded Author document to work with Book Model. For some reason I cannot get the generated GraphQL to set the Author for the get type() function.

Please look over test/testProject11/projectSetup.js test/mongooseHelpers/* And on lines 261 & 301 of src/mongooseHelpers.js for where I am attempting to use the arrayOf and objectOf types

PS I have borrowed heavily from graphql-compose-mongoose, as I am not a 'power' user of Mongoose. Especially the convertTypes file.

natac13 avatar Sep 14 '20 12:09 natac13

@natac13 howdy - thanks for the PR. I'll try to get to this as soon as possible - probably over the weekend. If you can think of any other context that might be helpful, feel free to add it :)

arackaf avatar Sep 16 '20 00:09 arackaf

No problem. Ill keep trying as well!

Note most of the added files are just me copying the testProject1folder to start the testProject11 folder

natac13 avatar Sep 16 '20 00:09 natac13

From my last commit you can see that I am getting most of the structure correct. Except when it comes to the sub documents. As the dataTypes.js functions will modify the existing type object. I am not sure how to do this when I just take in a mongoose model.

You can see from my test the difference in returned values.

natac13 avatar Sep 18 '20 11:09 natac13

If you run the test now I am trying to just generate the graphql from createGraphqlSchema, by passing in a mongoose option flag. It works with just Author, however when I do Author and Books the Book authors and primaryAuthor get type() do no populate as expected.

natac13 avatar Sep 18 '20 13:09 natac13

Ugh - this slipped my mind this weekend - sorry. Will look this week.

arackaf avatar Sep 21 '20 01:09 arackaf

Ok I'm trying to find the point at which this breaks, but I'm having a hard time. When running test suite 11 I get this

You provide incorrect mongoose model to createMGSOutput(). Correct model should contain modelName property.

The line numbers from your original comment no long appear to pinpoint where this fails. I'm seeing these calls

export const Book = createMGSOutput(BookModel);

Should that be using the BookSchema instead of the BookModel?

Otherwise I'm afraid I need more of a pinpointed location of where exactly this is failing if I'm gonna try to help.

arackaf avatar Sep 27 '20 15:09 arackaf