Commit graph

37 commits

Author SHA1 Message Date
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
Riccardo Binetti
9674614b62
feat: allow resources without types (#121)
* fix: regenerate spark formatter and cheatsheet

Make CI pass again

* feat: allow resources without types

Ensure they only expose generic action queries. Add checks to ensure that either
`type :resource_type` or `generate_object? false` is passed if it's needed.

Close #119
2024-03-28 11:16:32 -04:00
Riccardo Binetti
6b09e7309e
improvement: make the items of fields and errors non-null (#112)
Last point left from the discussion on #105
2024-01-31 17:52:33 -05:00
Riccardo Binetti
365b3aedc6
feat: Relay refetching support (#106)
* feat: add support for relay global IDs

* improvement: use the GraphQL type when projecting fields

This allows picking also up fields coming from fragments in queries returning an
interface

* feat: add relay node query

Allow retrieving a resource implementing the Node interface given its Relay
global id.
2024-01-24 14:59:12 -05:00
Zach Daniel
a33e4f5b77 improvement: support define_relay_types?: false 2023-10-15 21:12:13 -04:00
Zach Daniel
49c6534d73 improvement: generic action support
docs: better docs
2023-09-15 13:45:12 -04:00
Barnabas Jovanovics
bce89e985c
feat: add more sort order values (#91) 2023-08-28 10:42:39 -04:00
Zach Daniel
443e5fd680 improvement: add action_middleware option 2023-02-22 12:19:50 -05:00
Zach Daniel
1b3f43391d improvement: support ash tracers and telemetry in graphql 2022-11-22 13:27:53 -05:00
Zach Daniel
c650126819 fix: resolve issues compiling resources with no type
fix: adding an empty query block is apparently problematic?
2022-10-31 13:07:57 -04:00
Zach Daniel
9ff395711e improvement: handle keyset & offset pagination when combined on an action (by preferring keyset)
improvement: use new `depend_on_resources/` from Ash to remove the need for registry in schema
fix: various pagination fixes
2022-10-21 08:51:31 -04:00
Zach Daniel
9a3136fd5d improvement: remove stacktraces? option
improvement: add error handler
improvement: translatable error messages
docs: handle errors guide
2022-10-12 00:51:01 -04:00
Maxim Martynov
e40e7c573c
improvement: Implement GraphQL Relay support (#36) 2022-09-20 23:07:30 -04:00
Zach Daniel
f4cb9213b3 update to latest ash 2022-08-30 19:08:16 -06:00
Zach Daniel
a8aa57e0f5 fix: add relay node type properly 2022-04-04 16:55:22 -04:00
Zach Daniel
5d35cf092e fix: ignore embedded resources accidentally placed in API 2022-03-25 13:17:35 -04:00
Zach Daniel
f9b1b75edc feat: more configurable error behavior
added `root_level_errors?` and `show_raised_errors?`
2021-09-09 11:49:36 -04:00
Zach Daniel
91a457ed2e improvement: more non null constraints 2021-09-03 13:30:47 -04:00
Zach Daniel
d8a3e1b155 improvement: add groundwork for relay support 2021-08-03 18:56:08 -04:00
Zach Daniel
dffe4de9f5 improvement: update to latest rc
improvement: add `short_message` and `vars` to errors
2021-06-28 13:33:01 -04:00
Zach Daniel
0cc81ce9f6 improvement: support expression calculations 2021-06-04 15:07:12 -04:00
Zach Daniel
8945851fd1 improvement: add stacktraces? option 2021-05-14 12:25:43 -04:00
Zach Daniel
019697578b feat: derived input objects for managed_relationships
fix: various input fixes (sorts)
improvement: support new style enums
2021-04-23 18:45:31 -04:00
Zach Daniel
9cde7df795 fix: fully remove relationship changes 2021-04-05 13:08:39 -04:00
Zach Daniel
919a4edeac chore: format/dialyzer 2021-03-12 09:39:59 -05:00
Zach Daniel
885b1d886e chore: modernize example action names
fix: don't fail on empty mutations list
improvement: support more builtin types
2021-03-12 09:04:38 -05:00
Zach Daniel
b988c4c08c improvement: support debug? at the api level 2021-02-23 12:28:19 -05:00
Zach Daniel
33ce6b952d WIP 2021-02-18 10:16:00 -05:00
Zach Daniel
9984b19c39 chore: format 2020-12-27 02:05:19 -05:00
Zach Daniel
90b969af2e improvement: update to latest ash 2020-12-27 01:49:35 -05:00
Zach Daniel
66b2162d10 fix: always add global types 2020-11-30 19:04:59 -05:00
Zach Daniel
d5cf6ee3a0
feat: overhaul, better type support, pagination 2020-11-05 20:59:06 -05:00
Zach Daniel
7adb8c0f22
feat: rewrite with dataloader 2020-09-23 20:54:57 -04:00
Zach Daniel
1090d2f654
fix: use InputObjectDefinition for relationship change 2020-08-26 13:56:08 -04:00
Zach Daniel
cd16030324
feat: initial POC release 2020-08-13 17:39:59 -04:00
Zach Daniel
7563cbf971
fix; move pagination into graphql layer 2020-05-30 04:57:39 -04:00
Zach Daniel
705bbdd4ec
First stab at a schema 2020-05-01 18:35:12 -04:00