Commit graph

112 commits

Author SHA1 Message Date
Zach Daniel
1f45a1481e docs: fix getting started guide steps ordering 2024-07-15 15:54:47 -04:00
Zach Daniel
01ca76da70 improvement: add igniter-backed installer 2024-07-15 14:25:40 -04:00
Zach Daniel
2a2af45230 improvement: add nullable_fields? for easily marking fields as nullable
test: update tests to use this to illustrate field policy behavior
2024-07-01 09:25:14 -04:00
Zach Daniel
36cfde3378 chore: release version v1.2.0 2024-06-17 09:17:41 -04:00
Barnabas Jovanovics
8089164d74
feat: argument_input_types (#176)
* feat: argument_input_types

* use mix task to update formatter.exs

* update CheatSheet
2024-06-10 13:32:37 -04:00
ian knauer
409c99b88d
Update getting-started-with-graphql.md (#173) 2024-06-05 00:46:01 -04:00
Zach Daniel
30c49972f8 chore: release version v1.1.1 2024-06-02 11:29:27 -04:00
Riccardo Binetti
62940c31ec
feat: relationship pagination (#166) 2024-05-26 09:50:54 -04:00
Zach Daniel
3be2f32896 chore: release version v1.1.0 2024-05-24 15:59:24 -04:00
Zach Daniel
a6ca7fea67 feat: support queries/mutations on the domain 2024-05-24 15:51:19 -04:00
Zach Daniel
50d30bf9b2 chore: release version v1.0.1 2024-05-23 14:33:48 -04:00
Zach Daniel
bced6021af chore: remove incorrect guide 2024-05-13 13:24:38 -04:00
Zach Daniel
880d400fdb chore: release version 1.0.0 2024-05-10 17:43:44 -04:00
Zach Daniel
8fbb2f4ee3 docs: revamp changelog 2024-05-08 18:56:25 -04:00
Alan Heywood
7386a5b627
improvement: make mutation result errors list non-nullable (#144)
* chore: regenerate cheat sheets

* improvement: make mutation result errors list non-nullable
2024-05-03 21:57:02 -04:00
Josh Price
d223372496
Update getting-started-with-graphql.md (#141)
Consistency pass
2024-05-01 16:13:32 -04:00
Zach Daniel
0e79680681 docs: documentation overhaul 2024-05-01 15:59:38 -04:00
Riccardo Binetti
833c1d5143
feat: allow passing custom descriptions to queries and mutations (#138)
Close #137
2024-04-29 15:01:26 -04:00
Zach Daniel
f81cbeb22f chore: release version v1.0.0-rc.5 2024-04-27 09:28:46 -04:00
Zach Daniel
89202fba24 chore: release version v1.0.0-rc.4 2024-04-26 03:39:27 -04:00
Zach Daniel
84b86e65be improvement: add graphql_define_type?/1 callback for graphql types 2024-04-24 09:21:26 -04:00
Zach Daniel
0594c63c2b docs: shuffle around module concat recommendation 2024-04-12 15:17:38 -04:00
Zach Daniel
e9b4d77e91 chore: fix docs link 2024-04-12 15:15:44 -04:00
Zach Daniel
05e5ca3e1a chore: add Module.concat to the docs 2024-04-12 15:12:48 -04:00
Zach Daniel
35f35e4468 chore: release version v1.0.0-rc.3 2024-04-11 13:13:28 -04:00
Zach Daniel
80534862a4 docs: update getting started guide 2024-04-11 11:48:09 -04:00
Zach Daniel
777544a881 chore: release version v1.0.0-rc.2 2024-04-11 10:21:12 -04:00
Rebecca Le
261862948b
docs: Add upgrade note about changing api -> domain (#124) 2024-04-05 10:51:56 -04:00
Zach Daniel
fdfec3b210 chore: remove backwards compatibility config for 3.0 2024-04-04 21:35:00 -04:00
Zach Daniel
e364ff4115 chore: release version v1.0.0-rc.1 2024-04-02 12:31:17 -04:00
Zach Daniel
8f6c728232 chore: release version v1.0.0-rc.0 2024-04-01 16:02:59 -04:00
Zach Daniel
180d05545c improvement!: auto? managed_relationships by default
imporovement!: remove deprecated configuration
2024-04-01 16:02:30 -04:00
Zach Daniel
91e163ddfd chore: format markdown 2024-04-01 15:29:19 -04:00
Zach Daniel
349086fbb8 improvement!: No longer automagically derive types 2024-04-01 15:27:43 -04:00
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
Zach Daniel
9f0ed5ed7e chore: release version v0.28.0 2024-03-30 17:38:35 -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
Dmitry Maganov
234f2d6d61
fix: add show_fields to spark_locals_without_parens in formatter (#122) 2024-03-28 10:54:28 -04:00
Riccardo Binetti
98baf6f0be
feat: allow providing descriptions for enum values (#117)
* chore: update ash to use Ash.Type.Enum descriptions

Contextually, remove an unreachable clause that caused dyalizer to fail,
see https://github.com/ash-project/ash/pull/873 for the commit that made
it unreachable

* feat: allow providing descriptions for enum values

If the module exports `graphql_describe_enum_value/1`, use that. Otherwise,
fallback to the Ash.Type.Enum value descriptions introduced in
https://github.com/ash-project/ash/pull/940.

Close #116
2024-03-25 23:43:59 -04:00
Riccardo Binetti
1c47c79081
chore: fix CI failures (#118)
* chore: regenerate formatter and cheatsheets for paginate_with

* chore: fix credo errors

Use pattern matching to remove an if level and invert the logic on the
if Credo was complaining about
2024-03-22 12:59:21 -04:00
Zach Daniel
f895d2910b chore: release version v0.27.1 2024-03-11 12:23:16 -04:00
Zach Daniel
d2343e5c54 chore: credo/remove inspects 2024-03-11 10:48:44 -04:00
Zach Daniel
4c1f8a2d1a chore: release version v0.27.0 2024-02-12 19:47:06 -05:00
Riccardo Binetti
66d2f44443
feat: add Relay ID translation in mutation and queries (#109)
Adds a new option for queries and mutations that defines which arguments or
attributes will use a global Relay ID and their type. This allows automatically
decoding them before hitting their action.

This paves the way to automatic translation derived from the arguments, which
will be implemented subsequently.

---------

Co-authored-by: Zach Daniel <zachary.s.daniel@gmail.com>
2024-02-06 09:46:09 -05:00
Zach Daniel
099540c79e fix: handle nested constraint derivation in union/map types 2024-02-04 10:36:23 -05:00
Riccardo Binetti
8fff0d361d
improvement: make mutation arguments non-null (#111)
* improvement: make mutation arguments non-null

As discussed in #105 and #110, put this behind an opt-in configuration to avoid
breaking existing code.
The ID in update mutations is always non-null if non-null mutation arguments are
allowed, while input is non-null if it's allowed _and_ there is at least a
non-null field in the input.

Document the newly added config variable in the getting started guide.

* chore: enable non-null mutation arguments in tests
2024-01-31 17:52:01 -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
10d3d940cb chore: simplify docs generation 2024-01-12 14:53:43 -05:00
Zach Daniel
840230c110 chore: release version v0.26.9 2024-01-12 14:34:33 -05:00
Zach Daniel
896d5c8df3 chore: release version v0.26.8 2023-12-04 18:29:53 -05:00