Commit graph

2484 commits

Author SHA1 Message Date
Dmitry Maganov
3ee24da7eb
improvement: pass context to anonymous validate functions (#1070) 2024-04-29 12:53:45 -04:00
Jechol Lee
ae3f632157
Fix is_belongs_to_rel_being_managed? to match list with more than 2 elements (#1072) 2024-04-29 12:49:26 -04:00
Zach Daniel
ca7b0824d7 fix: properly intercept thrown errors in Ash.bulk_create 2024-04-29 09:12:03 -04:00
Zach Daniel
a24fdcfe59 docs: fix code interface example 2024-04-29 07:49:25 -04:00
Jechol Lee
856ac698b7
fix: Changeset.present? to be false when belongs_to is set to nil (#1067)
* Changeset.present? to be false when belongs_to is set to nil

* match empty list

* match empty list 2
2024-04-29 07:38:06 -04:00
Jechol Lee
caf1c5ee2a
Improvement: Changeset.attributes_present? to attribute_present? (#1066) 2024-04-29 06:51:14 -04:00
Zach Daniel
5ef8de03f3 fix: fix simple_equality in attribute type 2024-04-28 00:41:57 -04:00
Zach Daniel
2f1a0fec71 fix: set resource option in bulk interfaces 2024-04-27 23:56:11 -04:00
Zach Daniel
69f844dc69 chore: fix typo 2024-04-27 23:35:12 -04:00
Zach Daniel
fa6c2ade6d fix: check resource match below checking query input 2024-04-27 23:33:04 -04:00
Zach Daniel
26225fc7f5 fix: only use Map.new for inputs if input is keyword in code interface 2024-04-27 23:21:34 -04:00
Zach Daniel
65c6f66b91 fix: properly set action type on changeset 2024-04-27 11:20:03 -04:00
Zach Daniel
8c4e9c44d6 fix: set changed? context on bulk actions 2024-04-27 10:43:53 -04:00
Zach Daniel
3f977ff98d improvement: simplifications and clarifications around bulk callback behavior 2024-04-27 10:14:31 -04:00
Zach Daniel
75b63917c7 improvement: don't add autogenerated_id to embeds by default
one list *very mild* breaking change
2024-04-27 00:53:22 -04:00
Zach Daniel
69295daf78 improvement: allow skipping primary keys on embedded resources 2024-04-27 00:41:12 -04:00
Zach Daniel
41f68ca4a4 improvement: support changeset filters in ets 2024-04-27 00:33:00 -04:00
Zach Daniel
03b1579d9c fix: properly handle atomic upgrade when policies can't be strict checked 2024-04-26 23:53:54 -04:00
Jinkyou Son
1acbce4ebb
improvement: Treat asterisk as a single arguemnt in accept (#1062) 2024-04-26 03:26:15 -04:00
Zach Daniel
2d0b73af96 chore: set authorization context ahead of query build 2024-04-26 03:15:46 -04:00
Zach Daniel
726c6c3f0f fix: various fixes around bulk action upgrades, atomics 2024-04-26 03:13:22 -04:00
Zach Daniel
41c951d2e5 chore: fix missing clause andhydrate atomic refs 2024-04-25 23:46:11 -04:00
Zach Daniel
ad076735ae chore: fix batch size detection while streaming 2024-04-25 22:56:41 -04:00
Zach Daniel
c8e93877ea improvement: support atomics, update_query, destroy_query in ETS data layer 2024-04-25 22:18:54 -04:00
Barnabas Jovanovics
00ee13143b
fix: handle resource being passed as query code_interface.ex (#1057)
* handle resource being passed as query code_interface.ex

This bit me today because I had code  like this 

```elixir
                Resource
                |> filter_board_codes(board_codes)
                |> filter_min_price(min_price)
                |> filter_max_price(max_price)
                |> filter_refundable_only(refundable_only)
```

and all the `filter_*` functions looked like this

```elixir
def filter_something(query, nil), do: query

def filter_something(query, something) do
  query
  |> Ash.Query.filter(....)
end
```

* Update lib/ash/code_interface.ex

* add another case

---------

Co-authored-by: Zach Daniel <zach@zachdaniel.dev>
2024-04-25 10:37:44 -04:00
Barnabas Jovanovics
02c10c9216
fix: do not use Enum.map_join (#1058)
values are only a flat list of values, and map_join would need a function as the third argument if you specify a `joiner`
2024-04-25 07:53:52 -04:00
Pierre Le Gall
65e26cbc16
feat: Ash.create and Ash.update oneliner (#1055)
* feat: Ash.create and Ash.update oneliner

See #1015.

* fix: opts dispatch for create and update

* chore: shorten arguments by args
2024-04-24 15:28:26 -04:00
Zach Daniel
f146258159 improvement: remove after_atomic and instead support after_batch
supporting `after_batch` allows things like `archive_related` in `ash_archival`
to dispatch batches of cascading archives
2024-04-24 11:56:36 -04:00
Jechol Lee
56b10be097
fix: use Splode.ErrorClass for error classes (#1054) 2024-04-24 06:14:55 -04:00
Jechol Lee
44c38277e5
improvement: Add attributes_present, attributes_absent. (#1046)
* Add attribute_present, attribute_absent.

* Refactor

* plural name: attributes_present/absent

* Fix conflict
2024-04-23 22:01:35 -04:00
Zach Daniel
dad4d5effc fix: ensure that errors for nested forms are transformed 2024-04-23 14:03:40 -04:00
Jechol Lee
184dfb3642
fix: Set tenant for managed relationship changeset (#1044) 2024-04-23 10:40:19 -04:00
Zach Daniel
5ff767a1aa fix: don't carry over all changes during atomic upgrade
Doing this was causing us to carry over changes that were produced
as part of running the changes in the original changeset build

fixes #1042
2024-04-22 19:01:05 -04:00
Frank Dugan III
35961a793d
feat: leverage resource domain for eager/pre checking (#1040)
closes #1022
2024-04-22 17:15:27 -04:00
Zach Daniel
7e86b971a4 chore: fix migrate task file name 2024-04-22 12:27:43 -04:00
Zach Daniel
34470d4494 improvement: make extension discovery faster 2024-04-21 11:16:33 -04:00
Zach Daniel
8317e6fca9 fix: properly pin Enum.join in atomic for enum types
fixes #1033
2024-04-20 15:50:11 +01:00
Zach Daniel
d49f991021 fix: ensure actor is set when building queries in filter 2024-04-20 15:46:49 +01:00
Zach Daniel
c7991ec8a7 fix: don't eager evaluate type because it breaks data layers 2024-04-19 16:09:42 +01:00
Rebecca Le
7c75e5c102
refactor: Move opt schema definitions for built-in changes and validations to their specific modules (#1036)
* refactor: Move Spark opts definitions for built-in changes to the relevant change modules

This allows the change modules to be read and grokked standalone, without
needing to refer back to the `Builtins` module just for the opts

* refactor: Move Spark opts definitions for built-in validations to the relevant validation modules

This allows the change modules to be read and grokked standalone, without
needing to refer back to the `Builtins` module just for the opts
2024-04-19 15:43:35 +01:00
Zach Daniel
94f319a5f4 chore: invert code interface for simpler checking 2024-04-19 14:19:49 +01:00
Zach Daniel
89f15103c8 fix: ensure __union_tag__ is set when calling sub-union types 2024-04-19 13:41:05 +01:00
Zach Daniel
a2ac66093c fix: handle more &Mod.fun/n variations in fragments 2024-04-17 16:12:55 +01:00
Zach Daniel
28136ec43f chore: format 2024-04-17 15:08:29 +01:00
Zach Daniel
45b66f539b chore: remove atomic
fix: ensure validations are considered atomic
2024-04-17 15:07:15 +01:00
Zach Daniel
8e1fd3b833 improvement: better eager expression parsing and atomic error anticipation 2024-04-17 02:34:33 +01:00
Zach Daniel
ccb06b1628 fix: ensure tenant and actor are properly set in Ash.can?
fixes #1027
2024-04-17 00:14:31 +01:00
Zach Daniel
f960e69437 chore: remove IO.inspect 2024-04-16 21:49:59 +01:00
Zach Daniel
70cd40065b fix: ensure changeset filter is parsed for templates 2024-04-16 21:03:25 +01:00
Zach Daniel
65675ef337 fix: properly parse additional changeset expression 2024-04-16 20:45:43 +01:00