Commit graph

229 commits

Author SHA1 Message Date
Barnabas Jovanovics
eb96ef8c10 returned my first result from a subscription 2024-08-26 11:40:52 +02:00
Barnabas Jovanovics
64737aa505 add subscription field to schema 2024-08-26 11:40:52 +02:00
Barnabas Jovanovics
52dfa22afd wip 2024-08-26 11:40:52 +02:00
Zach Daniel
3d1babb9f1 improvement: add schema codegen features & guide 2024-08-16 14:36:49 -04:00
Zach Daniel
f349a5aeaa improvement: support new struct types in type generation 2024-08-09 17:42:24 -04:00
Zach Daniel
190a7a1f75 improvement: support new struct fields constraint 2024-08-09 17:30:06 -04:00
Zach Daniel
dd5060f59a fix: match on action in error message properly 2024-08-06 20:47:14 -04:00
Zach Daniel
7845fe89d4 fix: use .has_expression?/0 instead of function_exported?/3 2024-08-02 12:16:21 -04:00
Jonatan Männchen
c67b9f5ab6
feat: Ash.Type.File compatibility (#202)
resolves #201
most of the code is adapted from 104b8c199c
2024-07-30 11:14:37 -04:00
Zach Daniel
a659ff4693 improvement: add extension installation code 2024-07-18 13:30:29 -04:00
Barnabas Jovanovics
d47ab78747
fix: use checked constraints (#187) 2024-07-01 09:25:38 -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
53b3fbd699 chore: small reorg of functions 2024-07-01 08:39:56 -04:00
Zach Daniel
0292ef1db8 improvement: only define managed_relationship mutations when necessary 2024-06-18 08:59:10 -04:00
Zach Daniel
eac844186a fix: properly interpolate action in conflict messages 2024-06-17 20:00:54 -04:00
Zach Daniel
e51bad36d5 chore: format 2024-06-17 09:21:13 -04:00
Barnabas Jovanovics
77f09b2422
fix: add resource query to action struct (#178) 2024-06-11 11:55:00 -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
Zach Daniel
b399d06a86 chore: use parens to remove warning in 1.17
closes #175
2024-06-10 09:10:34 -04:00
Zach Daniel
2aab03b0cc fix: better type handling around empty types 2024-06-04 09:24:31 -04:00
Zach Daniel
60f3fd8f99 fix: don't generate empty input objects for embeds 2024-06-04 00:49:17 -04:00
Riccardo Binetti
62940c31ec
feat: relationship pagination (#166) 2024-05-26 09:50:54 -04:00
Zach Daniel
a6ca7fea67 feat: support queries/mutations on the domain 2024-05-24 15:51:19 -04:00
Riccardo Binetti
31d29e178f
improvement: deduplicate map types across domains (#164)
Allow having common NewType maps that are used in multiple domains and are
correctly deduplicated
2024-05-23 12:11:28 -04:00
Riccardo Binetti
2bc7b78aa6
fix: don't deduplicate argument types by argument name (#162)
As mentioned in the upgrade guide, the point of dropping auto generation of
types was avoiding conflicts when two arguments had the same name but different
types. Now that we require explicit generation, we can actually support that
usecase for, e.g., arguments with the same name but different types in
create/update mutations.
2024-05-23 08:58:25 -04:00
Barnabas Jovanovics
90df75015e
handle empty primary key (#160) 2024-05-21 08:14:23 -04:00
Zach Daniel
896d76420b fix: accepted attributes don't have to be public? 2024-05-11 18:25:23 -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
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
84b86e65be improvement: add graphql_define_type?/1 callback for graphql types 2024-04-24 09:21:26 -04:00
Zach Daniel
4c0ed1160c chore: fix credo warning 2024-04-24 09:00:56 -04:00
Zach Daniel
e60c0def27 fix: don't process maps with no fields 2024-04-24 08:49:53 -04:00
dependabot[bot]
df04981d49
chore(deps): bump ash from 3.0.0-rc.6 to 3.0.0-rc.18 (#127)
* chore(deps): bump ash from 3.0.0-rc.6 to 3.0.0-rc.18

Bumps [ash](https://github.com/ash-project/ash) from 3.0.0-rc.6 to 3.0.0-rc.18.
- [Changelog](https://github.com/ash-project/ash/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ash-project/ash/compare/v3.0.0-rc.6...v3.0.0-rc.18)

---
updated-dependencies:
- dependency-name: ash
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore: Fix dialyzer error.

`action.accept` can no longer ever be `nil`.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: James Harton <james@harton.nz>
2024-04-22 09:31:33 +12:00
Zach Daniel
1c4cf1969c fix: properly honor new pagination config everywhere
fixes #130
2024-04-20 16:18:52 +01:00
Zach Daniel
1331bdd4ce improvement: support generic actions with no return type 2024-04-11 13:11:37 -04:00
Zach Daniel
10fa6b2ff7 chore: format 2024-04-04 21:45:33 -04:00
Zach Daniel
2552f07689 fix: accept input object for destroy mutations 2024-04-03 10:19:13 -04:00
Zach Daniel
d692c931c2 chore: format 2024-04-01 16:16:05 -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
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
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
1f2358ef68
improvement: add show_fields option as explicit fields whitelist (#120) 2024-03-27 14:54:58 -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
ae94fcde54 improvement: make pagination more explicitly configurable 2024-03-13 12:10:30 -04:00
Zach Daniel
d2343e5c54 chore: credo/remove inspects 2024-03-11 10:48:44 -04:00
Zach Daniel
90dc20822d improvement: add hide_inputs to queries and mutations 2024-03-11 10:46:42 -04:00
Zach Daniel
99d2d66538 chore: change is_node_type/1 to node_type?/1 per credo 2024-02-11 14:44:31 -05:00
Zach Daniel
328618fa94 fix: handle unions containing maps and vice versa 2024-02-11 14:10:20 -05:00