Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Client: autogenerate view classes from query #574

Open
benwaffle opened this issue Aug 31, 2020 · 4 comments
Open

Client: autogenerate view classes from query #574

benwaffle opened this issue Aug 31, 2020 · 4 comments
Labels
client GraphQL Client module enhancement New feature or request

Comments

@benwaffle
Copy link

benwaffle commented Aug 31, 2020

It would be useful to write the graphql query as a string and generate the view classes

val query = gql"""
{
  character("Amos Burton") {
    name
    nicknames
    origin
  }
}
"""

// autogenerate this
case class CharacterView(name: String, nickname: List[String], origin: Origin)
case class QueryResponse(character: List[CharacterView])
@ghostdogpr ghostdogpr added client GraphQL Client module enhancement New feature or request labels Sep 1, 2020
@viclovsky
Copy link

Do you have any plan to implement the feature?
Anyway, is there any workaround how to generate view classes?

@ghostdogpr
Copy link
Owner

I think that would require some macros, I have no knowledge about that (and not really willing to learn now since Scala 3 will make it obsolete :D), but open to contributions.

@askmrsinh
Copy link

askmrsinh commented Dec 1, 2020

@viclovsky @benwaffle
I am working on something like this for a project (using macros).
Right now I am able to generate case classes for simple queries but I hope to cover more complex selections in the near future. If you have any particular need/suggestion please feel free to share.

@ghostdogpr
Copy link
Owner

FYI it is now possible to generate view classes when running the code gen (it's slightly different from your example though: it generates view classes with all fields (not based on any query).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
client GraphQL Client module enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants