Commit graph

456 commits

Author SHA1 Message Date
Zach Daniel
be57b909b5 fix: honor query limit when streaming 2023-06-10 13:09:45 -04:00
Zach Daniel
25acc2d793 improvement: better keyset pagination behavior on first and last pages 2023-06-09 15:08:49 -04:00
Zach Daniel
6320dad188 fix: various fixes to data loading
improvement: `Ash.Query.accessing/2` to get a list of fields being accessed
improvement: builting `LoadAttribute` and `LoadRelationship` calculations
2023-06-09 00:16:27 -04:00
Zach Daniel
907aec5e82 improvement: support loading through types
Will document this in a separate PR. The broad strokes are this:

1. to load through an attribtue, `load(attribute: [:nested: :stuff])`
2. to load through a calculation, `load(calculation: {:%{...input}, nested: :stuff})`
3. union types support loading through them, and is done first by keying by the type name, i.e: `load(union: [type_name: [nested: :stuff])`.
4. union types support specifying a load statement for all types with `load(union: [*: [nested: :stuff]])`
2023-06-07 21:54:17 -04:00
Adam Harris
87045f3984
chore: add failing test to illustrate calculation issue 2023-06-07 10:13:08 -04:00
Zach Daniel
8e7815388e improvement: handle nils in memory the same way sql would have 2023-06-05 16:50:27 -04:00
Barnabas Jovanovics
5477102104
fix: also do not autogenerate values for optional fields that have a generator (#599) 2023-06-05 08:57:22 -04:00
Barnabas Jovanovics
1185b615f8
fix: Only create values for attributes that did not get a generator (#595) 2023-06-02 08:18:02 -04:00
Dmitry Maganov
adb6cefac1
fix: remove field name from string length error message (#594)
* fix: remove field name from string length error message

* fix: remove old unused `Error.Changes.UnknownError`

* fix: do not capitalize ash error messages

* fix: change error kind code for `Ash.Error.Forbidden.Policy`
2023-06-01 02:29:19 -04:00
Zach Daniel
5af9dc6696 fix: properly honor the return_errors? option 2023-05-25 09:46:27 -04:00
James Harton
7326ca330e
improvement(Ash.Type.Module): Add :module type. (#578) 2023-05-15 07:26:52 -04:00
Zach Daniel
f04ffd5ebd improvement: support bulk upserts 2023-05-02 21:56:15 -04:00
Zach Daniel
523452cb94 docs: basic actions -> generic actions 2023-05-02 20:00:18 -04:00
Zach Daniel
1e61ae2d3c improvement: finishing initial touches on bulk actions 2023-05-02 17:24:24 -04:00
Zach Daniel
0ced9c7639 fix: assorted bulk create fixes 2023-05-02 14:04:08 -04:00
Zach Daniel
80f696417d improvement: bulk create actions
This is not currently supported by any data layer other than ETS
2023-05-02 13:19:00 -04:00
Zach Daniel
2843224f06 fix: handle invalid input in basic actions 2023-05-02 02:07:53 -04:00
Zach Daniel
49949ff58f improvement: initial support for basic actions 2023-05-02 01:54:53 -04:00
Zach Daniel
fbd2b2f50c fix: set flow argument defaults 2023-04-27 13:42:18 -04:00
Zach Daniel
fbc341b3a0 feat: add Api.stream!/1 2023-04-26 17:12:21 -04:00
Zach Daniel
38ec164e3e improvement: include resource validations by default
improvement: validate explicit api configurations, with good error messages
2023-04-25 21:31:01 -06:00
Frank Dugan III
2e5f045f72
feat: add fields/1 and public_fields/1 to Ash.Resource.Info (#569) 2023-04-20 12:27:13 -06:00
Zach Daniel
ba5a7e2cb7 improvement: automatically gather up notifications 2023-04-12 17:35:17 -04:00
Zach Daniel
29096c27ae fix: properly return errors on invalid calculation arguments 2023-04-08 03:39:41 -04:00
Barnabas Jovanovics
b5e0cbb3cc
improvement: add constraints to maps (#556) 2023-04-07 09:53:41 -04:00
Zach Daniel
a20ee0abf7 chore: fix tests/stacktrace setting 2023-04-06 10:23:17 -04:00
Zach Daniel
80616781d6 Revert "chore: fix tests"
This reverts commit 67305a6ec8.
2023-04-06 09:38:21 -04:00
Zach Daniel
67305a6ec8 chore: fix tests 2023-04-06 09:32:10 -04:00
Zach Daniel
92208d8f84 chore: fix tests and add_expression_part 2023-04-05 20:49:28 -04:00
Zach Daniel
1ecde072f0 chore: consider strings in ref 2023-04-05 18:37:42 -04:00
Zach Daniel
a6e3ff233e fix: various ash flow return value fixes 2023-04-04 15:36:08 -04:00
Tommaso Patrizi
ad0a0ee8f7
test: tests for custom steps returning nil even when there is a right result (#552)
Co-authored-by: Tommaso Patrizi <tommasop@gmail.com>
2023-04-04 13:33:07 -04:00
Mariusz Morawski
a0287f96a0
fix: Fix set_new_attribute by adding missing option to set_attribute (#553) 2023-04-04 10:35:30 -04:00
Alan Heywood
698cbd1f4c
improvement: Add :field option to relate_actor change (#546) 2023-04-02 21:50:32 -04:00
Zach Daniel
a9db35e79f fix: properly handle nested calculation selects 2023-03-31 12:36:20 -04:00
Zach Daniel
7f1ee67dde improvement: update spark to fix deeply nested DSLs 2023-03-31 11:54:44 -04:00
Zach Daniel
648572386a improvement: properly set related resource 2023-03-30 08:27:37 -04:00
Zach Daniel
43d0233ae9 chore: fix test 2023-03-29 21:46:30 -04:00
Zach Daniel
1db7025b41 test: add a test for calc -> calc -> attribute chain
chore: simplify some code
2023-03-29 21:34:50 -04:00
Alan Heywood
6e76a91215
improvement: add :subfield option to relates_to_actor_via (#540) 2023-03-29 12:11:23 -04:00
Zach Daniel
b4163127f9 improvement: add accessing_from/2 builtin check 2023-03-29 09:19:49 -04:00
Zach Daniel
24d802cd4b fix: use values when already loading aggregates 2023-03-29 08:02:10 -04:00
Zach Daniel
ad347ca38b improvement: rewrite calculation loader
Calculation loading is complex because different calculations can
depend on differently parameterized things. FOr example:

```elixir
def load(_, _, _), do: [foo: %{arg: 1}]
def load(_, _, _), do: [foo: %{arg: 2}]
```

The previous naive implementation would simply merge all of the calculation loads, which naturally would not work. Now we ensure that we load each requirement in isolation.
2023-03-28 20:34:15 -04:00
Zach Daniel
ed45a72ea6 improvement: add skip_global_validations? option for actions 2023-03-21 13:33:48 -04:00
Zach Daniel
65f21e76be fix: datetime_add was actually datetime_subtract in elixir 2023-03-21 09:37:10 -04:00
James Harton
171967d6de
improvement: Add get_by option to read actions. (#530) 2023-03-21 18:03:06 +13:00
Zach Daniel
8b722e6460 fix: various fixes in aggregate authorization behavior
improvement: add `:read_action` and `:authorize?` configurations for resource aggregates
2023-03-17 12:02:37 -04:00
James Harton
a8346907c1
improvement: Add before_action/1 and after_action/1 to Ash.Resource.Preparations.Builtins. (#526) 2023-03-13 19:20:41 -04:00
Zach Daniel
5e5511aa60 chore: fix tests 2023-03-13 18:41:38 -04:00
Zach Daniel
a559a0cd3f improvement: add Ash.Type.NewType 2023-03-13 17:44:27 -04:00