web-ridge / gqlgen-sqlboiler

This is a plugin for gqlgen to generate converts + filter queries and resolvers for sqlboiler
MIT License
74 stars 13 forks source link

Congratulations and questions/proposals/fears #40

Open frederikhors opened 3 years ago

frederikhors commented 3 years ago

Your work is amazing!

It feels like every line of code is sweaty. :smile:

A huge thank you for all this.

In a few hours I want to start a project with this.

Issues

  1. Copying the code from the Readme for convert_plugin.go I have to write an additional argument for gbgen.NewConvertPlugin. What should I write there?

Proposals

  1. I undertake to write documentation for every single thing I learn, day after day: explanations that maybe those who created it take for granted, recipes for routine things etc.

  2. But we have to decide where to write them: one thing that doesn't steal more than 10 minutes of setup. A Gitbook on github pages?

Fears

  1. How to write business logic after all the generation?

    Example:

    If I'm creating a Player for a Team I wanna check if Team has enough "space" before (in a simple DB transaction).

    Is this eventuality considered? I think so, of course. I just don't know where to start. :cry:

  2. Have you ever needed to use something for tenants in the DB?

    Something like https://github.com/influitive/apartment for Rails.

    Quite simply adding WHERE tenant_id = [ID] to each DB query and the same for insert/update/delete queries.

Thanks again for this huge huge huge work! :smile:

RichardLindhout commented 3 years ago

Proposals

  1. Would be really nice
  2. I think perfect if it works with .md files

Fears

  1. The next step in this project to add option for custom resolvers and custom converts so we can re-generate without loosing the custom things. But I'm a little short on time.

e.g. if you have a function name UserToGraphql in your package and it's not in the default files we will generate UserToGraphqlOriginal which you can still use but your custom function is getting called.

Issue id: https://github.com/web-ridge/gqlgen-sqlboiler/issues/7

  1. Yes but it's really stupid now since it's hardcoded automatically on userId and organizationId this needs to be customizable I only made it work for my own use case. It's also a requirement for security to add these field to every table out there + I need a solution for admin calls where the userId would need to be provided sometimes

Issue id: https://github.com/web-ridge/gqlgen-sqlboiler/issues/18

I'm still working on releasing version 3 with Connections it's finished in development but still needs some documentation

RichardLindhout commented 3 years ago

For now if I want to customize I add a different file e.g. resolver_custom.go with my custom logic and remove the generated resolver after generation.

RichardLindhout commented 3 years ago

Tenants are configurable now in v3.1.1!