An absinthe backed graphql API extension for the Ash Framework
Find a file
Riccardo Binetti 513c1ac68f
improvement!: port AshGraphql to Ash 3.0 (#123)
Step 1: update Ash

Step 2: mass rename Api to Domain

Step 3: Ash.Query.expr -> Ash.Expr.expr

Also change ref interpolation

Step 4: remove all warnings

Step 5: remove registries from tests

Step 6: fix filter

Step 7: private? -> !public?

Step 8: Ash.Calculation -> Ash.Resource.Calculation

Step 9: use depend_on_resources/1 -> resources/1

Step 10: add Domain to all resources

Step 11: use Ash module for all actions

Step 12: add public? true all around

Step 13: remove verbose? from options passed during Domain calls

Step 14: add simple_sat

Step 15: Ash.ErrorKind is no more, so remove code from errors

Step 16: sprinkle default_accept :* around tests

Step 17: replace Ash.Changeset.new/2 with Ash.Changeset.for_*

Step 18: calculation fixups

- Context is now a struct and arguments go under the arguments key
- Function based calculations receive a list of records
- Add a select to query-based loads
- select -> load

Step 19: pass the correct name to pass the policy in tests

Step 20: Ash.Query.new/2 is no more

Step 21: add AshGraphql.Resource.embedded? utility function

Use that instead of Ash.Type.embedded_type?(resource_or_type) since resources
are not types anymore

Step 22: handle struct + instance_of: Resource in unions

Resources are not type anymore so they need to be passed this way in unions

Step 23: ensure we only check GraphQL actions for pagination

All reads are now paginated by default, so this triggered a compilation error

Step 24: swap arguments for sort on calculations

Step 25: remove unused debug? option
2024-04-01 14:03:06 -04:00
.github chore: fix bug report template 2023-07-03 21:35:55 -04:00
config improvement!: port AshGraphql to Ash 3.0 (#123) 2024-04-01 14:03:06 -04:00
documentation improvement!: port AshGraphql to Ash 3.0 (#123) 2024-04-01 14:03:06 -04:00
lib improvement!: port AshGraphql to Ash 3.0 (#123) 2024-04-01 14:03:06 -04:00
logos chore: release version v0.1.0 2020-08-13 18:55:34 -04:00
test improvement!: port AshGraphql to Ash 3.0 (#123) 2024-04-01 14:03:06 -04:00
.check.exs improvement: generic action support 2023-09-15 13:45:12 -04:00
.credo.exs chore: format/credo 2023-11-13 23:23:27 -05:00
.formatter.exs improvement!: port AshGraphql to Ash 3.0 (#123) 2024-04-01 14:03:06 -04:00
.gitignore chore: commit tool-versions 2023-01-31 23:58:35 -05:00
.tool-versions fix: handle nested constraint derivation in union/map types 2024-02-04 10:36:23 -05:00
CHANGELOG.md chore: release version v0.28.0 2024-03-30 17:38:35 -04:00
FUNDING.yml fix: fix usage of new Ash.Query.filter/2 2020-10-09 21:10:22 -04:00
LICENSE chore: update license 2020-09-21 14:04:00 -04:00
mix.exs improvement!: port AshGraphql to Ash 3.0 (#123) 2024-04-01 14:03:06 -04:00
mix.lock improvement!: port AshGraphql to Ash 3.0 (#123) 2024-04-01 14:03:06 -04:00
README.md chore: Update README (#72) 2023-05-04 09:13:22 -04:00

AshGraphQL

Ash CI License: MIT Hex version badge

AshGraphQL is a GraphQL extension for the Ash framework. It gives you an efficient way to expose your application resources over a GraphQL API. You configure what you want to expose and AshGraphQL will generate an Absinthe schema which will resolve data straight from your Ash resources.

See the getting started guide for information on setting it up, and see the AshGraphql.Resource documentation for docs on its DSL. See the hexdocs for more information.