Commit graph

221 commits

Author SHA1 Message Date
Riccardo Binetti
afa4ae66a0
improvement: return a map from decode_relay_id/1 (#107)
Slight API improvement over #106.

This makes it more ergonomic to partially match on the return value (and it also
makes it more explicit by explicitly labeling the two parts).

Also add tests for relay id encoding/decoding.
2024-01-25 10:47:15 -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
e95c95282a fix: properly generate type for Ash.Type.DateTime 2023-11-28 17:32:31 -05:00
Zach Daniel
cb87e6f4f6 chore: format/credo 2023-11-13 23:23:27 -05:00
Zach Daniel
e66a3ef4b8 fix: properly generate first aggregates with correct destination type 2023-11-13 23:02:57 -05:00
Zach Daniel
2cf5b60f63 improvement: support latest ash aggregate constraints 2023-11-13 16:53:21 -05:00
Barnabas Jovanovics
34fd313901
improvement: make the node in relay edges non-null (#95)
* make the node in relay edges non-null

* make the edge non-null too

* fix edge type
2023-10-03 13:48:27 -04:00
Zach Daniel
58a038e609 fix: generic action mutations need to use the input object 2023-10-02 19:44:19 -04:00
Zach Daniel
cdb8cf7b7f fix: don't access .pagination on generic action 2023-10-02 14:47:31 -04:00
Tun Cham Roeun
4c86d31885
improvement: Add a top-level NOT filter, along with AND and OR filters. (#94) 2023-10-01 09:51:42 -04:00
Zach Daniel
ca2e5342ac fix: fix primary key delimiter verificatoin step
docs: improve docs on unions
2023-09-28 17:31:27 -04:00
Zach Daniel
fc3423b45a improvement: optimize union type resolver compile time logic 2023-09-20 09:21:44 -04:00
Zach Daniel
842e433f9f fix: don't include related fields in managed relationship inputs 2023-09-19 12:49:05 -04:00
Zach Daniel
49c6534d73 improvement: generic action support
docs: better docs
2023-09-15 13:45:12 -04:00
Zach Daniel
339a78ec98 fix: handle nested array types 2023-09-13 14:55:17 -04:00
Zach Daniel
1d69d8ef33 fix: support aggregates over calculations 2023-08-29 21:32:22 -04:00
Barnabas Jovanovics
da1d1e889c
fix: wrap type in non-null reference if allow_nil? is set to false (#90)
* fix: wrap type in non-null reference if allow_nil? is set to false

* fix: get allow_nil? from the correct place
2023-08-22 14:43:27 -04:00
Zach Daniel
700cc1adee fix: don't add filter input for non-filterable resources 2023-07-31 22:07:03 -04:00
Jeremy Grant
de149c63a5
fix(array unions): for arrays of embedded types unions when graphql_unnested_unions is used, without it they return empty values (#87) 2023-07-28 21:36:12 -04:00
Zach Daniel
bb96354470 improvement: support ForbiddenField 2023-06-23 10:10:39 -04:00
Zach Daniel
74211ef3f4 fix: properly fetch aliased all attributes 2023-06-12 13:19:07 -04:00
Zach Daniel
05be948204 improvement: revamp data loading to be a single load statement 2023-06-09 00:45:39 -04:00
Zach Daniel
309c35d405 fix: choose a better default delimiter 2023-05-18 00:16:58 -04:00
Zach Daniel
db23b32552 fix: various problems with resolving unions in relationship changes 2023-05-17 22:41:24 -04:00
Zach Daniel
6701b57afe fix: properly wrap union resolvers in a list 2023-05-17 16:20:16 -04:00
Zach Daniel
6e444da1e7 improvement: add composite pkey default delimiter 2023-05-17 14:01:20 -04:00
Zach Daniel
d80016abd7 fix: don't generate enum types when no graphql type exists 2023-05-16 12:42:10 -04:00
Zach Daniel
02dc6e0f0a chore: fix build/sobelow 2023-05-15 10:07:37 -04:00
Barnabas Jovanovics
48392115e0
feat: create types for maps with constraints (#68) 2023-05-15 09:39:32 -04:00
Zach Daniel
e0ce5c5e65 fix: don't hide fields not called :id 2023-05-08 10:57:42 -04:00
bcksl
8223797dd6
feat: add filterable_fields to limit generated filters (#69) 2023-04-28 10:04:30 -04:00
Zach Daniel
79a7145c44 improvement: support hiding fields 2023-04-26 23:40:41 -04:00
bcksl
8e6f9b7bd5
improvement: pass description through to Absinthe in more cases (#63) 2023-04-23 07:03:54 -06:00
Zach Daniel
e91001e83f improvement: better union type handling
still need to document this, but adding support for
`graphql_unnested_unions/1` on `NewType` defined unions.

This allows for lifting up union type values to not be nested under `value`
2023-04-21 01:12:20 -06:00
Zach Daniel
e83835cab9 improvement: don't define union input types for calcs/aggregates 2023-04-20 13:30:13 -06:00
Zach Daniel
d4ee7c5ac2 fix: include resource name in managed_relationship types 2023-04-16 18:15:25 -04:00
Zach Daniel
e78a9f7926 improvement: add auto? true option for managed_relationships 2023-04-16 16:52:37 -04:00
Zach Daniel
13910dd0f1 fix: handle certain types in calculations 2023-04-14 10:46:18 -04:00
Zach Daniel
6b7ea9048f fix: unique enum types by name 2023-04-03 11:20:34 -04:00
Mariusz Morawski
513e14f1d6
improvement: Add missing definition for Ash.Type.Time type (#64) 2023-04-03 11:10:55 -04:00
Zach Daniel
c711fa2e9d improvement: add tests & improve behavior of update managed relationships 2023-03-21 23:43:43 -04:00
Zach Daniel
fc1433170e improvement: include primary key when managed relationship can update 2023-03-21 23:20:15 -04:00
Zach Daniel
e4dda5a3d9 improvement: don't add types for resources w/o a GQL type
docs: add config to getting started
2023-03-21 23:06:58 -04:00
Zach Daniel
425aee20fe chore: fix sobelow 2023-03-21 21:27:07 -04:00
Zach Daniel
1bea680af3 feat: change type name generation for managed relationships.
The current type name generation could result in clashes.
We now show a warning explaining how to fix these.
2023-03-21 21:17:53 -04:00
Zach Daniel
b8b5b61786 improvement: supply arguments to relationships on loading 2023-03-17 14:56:06 -04:00
Zach Daniel
d86f6601fb fix: properly filter enum types 2023-03-13 19:13:35 -04:00
Zach Daniel
3cc3c32f45 improvement: add support for Ash.Type.NewType 2023-03-13 18:32:36 -04:00
George Anderson
c0dcd211e7
fix: Typo in name causing Error (#60) 2023-03-03 17:54:45 -05:00
Zach Daniel
9d007a8401 chore: format 2023-02-24 10:00:39 -05:00
Barnabas Jovanovics
e6aadc1221
fix: always return a list from pkey_fields (#59) 2023-02-24 10:00:00 -05:00
Zach Daniel
7083a8363b improvement: build inputs for the underlying get action 2023-02-22 16:25:21 -05:00
Zach Daniel
443e5fd680 improvement: add action_middleware option 2023-02-22 12:19:50 -05:00
Zach Daniel
4c26944f73 fix: don't traverse nested types for auto enums 2023-02-21 08:51:35 -05:00
Zach Daniel
f1d4c1a3cb improvement: better tagged union handling 2023-02-16 23:33:54 -05:00
Zach Daniel
800b7eb25d fix: properly use the nested type name for union inputs 2023-02-15 19:39:41 -05:00
Zach Daniel
b0fc800079 fix: generate proper type name for union inputs 2023-02-15 13:58:53 -05:00
Zach Daniel
ef5559ed51 fix: infinite recursion in filterability checking 2023-02-15 13:37:55 -05:00
Zach Daniel
80ee34de81 fix: pass down attribute for union type generation 2023-02-15 12:03:57 -05:00
Zach Daniel
cf8267123e improvement: support new union types in ash 2023-02-15 08:20:35 -05:00
Zach Daniel
d83dacae54 improvement: make filter & sort generation optional 2023-02-08 15:16:40 -05:00
Zach Daniel
18e5f86fde improvement: add more? (as has_next_page) to pagination info 2023-02-08 11:16:48 -05:00
Zach Daniel
f0836f18b6 improvement: support metadata on read actions
metadata on read actions is merged with the rest of the fields on the query, so must have a name unique from the attributes/calculations/aggregates.

The system will warn you if there is metadata on the underlying action that is being ignored, and will tell you how to fix it.
2023-01-28 12:32:21 -05:00
Alan Heywood
d9e17ed42b
fix: map uuid action arguments to ID type (#52) 2023-01-18 19:07:53 -05:00
Zach Daniel
c0f5f596cb improvement: better error on empty input objects for managed relationships
closes #50
2023-01-09 19:55:35 -05:00
Zach Daniel
a58f3c998e fix: properly generate enum for atom attributes w/ one_of constraint again
closes #49
2023-01-03 10:13:17 -05:00
Zach Daniel
c62d1d50ea docs: fix docs example 2022-12-29 23:38:42 -05:00
Zach Daniel
325ce9c6be improvement: better error message on no type match 2022-12-29 23:36:55 -05:00
Zach Daniel
f259016455 improvement: support naive_datetime out of the box 2022-12-29 23:27:48 -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
c5662e90ba improvement: validate that relay? queries use keyset?: true actions
improvement: only add `count` to pages when one relevant query is countable
2022-10-21 07:38:33 -04:00
Zach Daniel
3be18011ea chore: fix CI from last commit 2022-10-20 17:57:37 -04:00
Zach Daniel
07e0c6170c improvement: split keyset_page_of and page_of types
improvement: add `start_keyset` and `end_keyset` to `keyset_page_of` type
improvement: add `count` to relay fields if there exists a countable relay query
2022-10-20 17:57:27 -04:00
Zach Daniel
75ba47215d improvement: change calculation input type name 2022-10-13 00:53:23 -04:00
Zach Daniel
9cc9da0f2e improvement: support calculation sort input
closes #31
2022-10-12 21:15:42 -04:00
Zach Daniel
3a11d988ab improvement: support encode_primary_key? false, and set single managed relationship primary keys do :id type when its true
closes #28
2022-10-12 19:02:04 -04:00
Zach Daniel
8d79fd7d2a fix: non relay keyset pagination was broken when relay was introduced 2022-10-12 12:11:51 -04:00
Zach Daniel
056e457522 improvement: support only exposing a subset of public relationships 2022-10-11 15:37:19 -04:00
Zach Daniel
a873dfd685 fix: support determining a type for resource calculations 2022-10-03 12:00:28 -04:00
Zach Daniel
57f6315a9a chore: raise on missing mutation 2022-09-29 15:38:38 -04:00
Zach Daniel
43c636253a fix: raise error on missing query action 2022-09-29 15:29:21 -04:00
Zach Daniel
92631f91b6 improvement: add options for remapping field/argument names
fix: use the dataloader for loading calculations, to allow for aliases
2022-09-26 00:12:10 -04:00
Zach Daniel
9095a5ae45 improvement: add attribute_types and attribute_input_types
improvement: require configuration of datetime types
2022-09-22 13:31:40 -04:00
Zach Daniel
d859026ddb fix: only create sort input if type is set 2022-09-21 16:28:20 -04:00
Maxim Martynov
e40e7c573c
improvement: Implement GraphQL Relay support (#36) 2022-09-20 23:07:30 -04:00
Zach Daniel
b2b9e22f7c fix: don't generate duplicate types 2022-09-14 16:50:35 -04:00
Zach Daniel
378892e387 improvement: support latest ash 2022-09-14 12:46:12 -04:00
Zach Daniel
f4cb9213b3 update to latest ash 2022-08-30 19:08:16 -06:00
Zach Daniel
a10f61b9b4 improvement: update to latest ash 2022-08-10 17:34:13 -04:00
Zach Daniel
29909742e2 chore: don't explicitly set type when looking up actions 2022-05-28 21:30:34 -04:00
Zach Daniel
0a241cb26e fix: update to latest ash and use new interval type 2022-05-23 16:33:27 -04:00
Frank Dugan III
62c2e4fecb
fix: Types with no constraints crash (#34) 2022-05-20 12:32:06 -04:00
Michael St Clair
6fb99a3ab0
improvement: setup generate_object? setting on resource (#32) 2022-05-09 21:53:01 -04:00
Zach Daniel
4fb3c7d8c6 fix: bug on enum_definitions/3 call 2022-04-26 12:15:48 -04:00
Zach Daniel
8ed9938201 improvement: fix lint/credo/versions 2022-04-26 11:35:09 -04:00
Zach Daniel
5d35cf092e fix: ignore embedded resources accidentally placed in API 2022-03-25 13:17:35 -04:00
Zach Daniel
34bc363cf5 Revert "improvement: only do auto enums when doing resource types"
This reverts commit 64ef3efb52.
2022-03-24 18:53:46 -04:00
Zach Daniel
64ef3efb52 improvement: only do auto enums when doing resource types 2022-03-24 18:47:56 -04:00
Zach Daniel
191b9b2d80 fix: properly generate types for interval type 2022-01-31 15:06:06 -05:00