Commit graph

585 commits

Author SHA1 Message Date
Zach Daniel
30e443c021 fix: don't raise unnecessary side load error 2021-05-07 16:31:06 -04:00
Zach Daniel
1412052ff6 improvement: fix data-based side loads 2021-05-07 11:57:59 -04:00
Zach Daniel
cb19e66fb5 fix: IsNil function to IsNil operator 2021-05-07 01:51:54 -04:00
Zach Daniel
cd023bf0a1 fix: function clause match error in not expression 2021-05-07 01:37:44 -04:00
Zach Daniel
f8604717bd fix: limit 1 on to one side load queries 2021-05-07 01:07:01 -04:00
Zach Daniel
46fb08f085 improvement: support sorted relationships 2021-05-07 00:28:51 -04:00
Zach Daniel
fed41b5060 fix: don't consider contextual relationships as reverse relationships 2021-05-06 13:39:04 -04:00
Zach Daniel
ae5b67fcdb fix: support not in query expressions 2021-05-05 16:05:32 -04:00
Zach Daniel
8d15cabd2a fix: include aggregates in count request for aggregate filters 2021-05-04 12:27:25 -04:00
Zach Daniel
d767ba513e fix: use base_query for aritifical limit/offset when loading 2021-05-04 09:27:33 -04:00
Zach Daniel
593b111069 improvement: add read_action option
feat: rework lateral joins for many to many performance boost
2021-05-03 16:21:29 -04:00
Zach Daniel
d16d2f35ce improvement: inner later join for many to many relationships 2021-04-29 17:04:57 -04:00
Zach Daniel
3de71bc7f1 chore: fix test + compile 2021-04-28 17:43:02 -04:00
Zach Daniel
9da95e6d75 improvement: support relationship filters 2021-04-28 17:39:30 -04:00
Zach Daniel
312d19878b improvement: add has filter predicate 2021-04-27 13:45:23 -04:00
Zach Daniel
e11f399fc0 improvement: add :list aggregate kind 2021-04-26 16:01:39 -04:00
Zach Daniel
9df3803492 fix: don't include NotLoaded in manage_relationship 2021-04-25 18:35:19 -04:00
Zach Daniel
53ceb5b753 fix: compile time fixes
improvement: add `require_attributes` to create/update/destroy
2021-04-23 11:41:13 -04:00
Zach Daniel
dd82fcc53b improvement: add first class support for enum types 2021-04-21 13:32:25 -04:00
Zach Daniel
64876c6e19 fix: don't consider nils for pkey matching 2021-04-21 13:32:25 -04:00
Zach Daniel
d099bc87ee chore: format code 2021-04-18 19:51:56 -04:00
Jason Axelson
85d9e8f86c
docs: use full module name (#230)
This will make the Query docs easier to follow
2021-04-18 19:46:21 -04:00
Jason Axelson
f6fa5a98dd
improvement: Add detailed parameter checking for Api read functions (#229) 2021-04-18 19:45:38 -04:00
Jason Axelson
a4262965ea
chore: Enable Credo's Readability.StrictModuleLayout (#228)
Enforce layout of module parts
2021-04-18 19:41:49 -04:00
Zach Daniel
060dadeff1 fix: clearer errors when resource fails to compile 2021-04-18 16:20:05 -04:00
Zach Daniel
a75bfd4203 improvement: add list access to context 2021-04-17 19:34:28 -04:00
Zach Daniel
33ac53faa5 fix: don't preload multiplicatively 2021-04-17 18:22:20 -04:00
Vadim Tsvetkov
0d13cd8b3d
fix: Decimal casting issues on ash_postgres (#227) 2021-04-17 15:00:43 -04:00
Zach Daniel
b028dad1cd improvement: add Resource.input/1 2021-04-17 13:50:55 -04:00
Zach Daniel
bd7f4f9532 fix: use items for single constraints 2021-04-16 14:16:45 -04:00
Zach Daniel
ad2772034c fix: don't overwrite select in side_load 2021-04-15 14:57:49 -04:00
Zach Daniel
5425660752 fix: load relationships for management properly
fix: `fetch_key` bug in embedded types
fix: handle_indexed_maps for embedded types
2021-04-14 23:38:51 -04:00
Zach Daniel
a6b880ce86 fix: handle no key provided to NotFound
chore: add tests for `get!`
2021-04-14 14:18:05 -04:00
Zach Daniel
c3c0abb239 docs: update documentation 2021-04-13 17:44:48 -04:00
Zach Daniel
2f634ae36a improvement: special provisions for casting to embedded type (e.g uuid)
fix: embedded cast_stored must cast all key/values
fix: ci_string constraints when `nil`
fix: manage_relationship change turns embedded resources to maps
fix: fixes for common types parsing from embedded, e.g utc_datetime_usec
2021-04-13 17:41:16 -04:00
Zach Daniel
e20ffe9636 fix: get! should raise on nil not {:ok, nil} 2021-04-13 16:28:01 -04:00
Zach Daniel
0ee074c176 fix: allow_nil -> allow_nil_input 2021-04-13 16:22:13 -04:00
Zach Daniel
e353ea49c3 fix: allow api.load/2 to load calculations
improvement: add `allow_nil_input` to create actions for api layers
improvement: add `load/1` builtin change
feat: change `get?: true` interface functions to raise on `nil`
2021-04-13 15:49:42 -04:00
Zach Daniel
567df21422 fix: always select necessary load fields for nested loads 2021-04-12 16:51:31 -04:00
Zach Daniel
3e29b4e00d fix: always select necessary fields for side loading 2021-04-10 16:58:37 -04:00
Zach Daniel
c21e310996 fix: logic bug in selecting specific fields 2021-04-09 00:47:22 -04:00
Zach Daniel
250186a0ea chore: update docs 2021-04-09 00:10:01 -04:00
Zach Daniel
ec57f363ed improvement: support the datalayer selecting fields in reads 2021-04-09 00:10:01 -04:00
Zach Daniel
f454f98f3f docs: add docs on managing relationships 2021-04-05 13:45:39 -04:00
Zach Daniel
425a1ce59e chore: fix description 2021-04-04 16:01:37 -04:00
Michael St Clair
6805d431ac
improvement: add sum aggregate (#221) 2021-04-04 16:00:53 -04:00
Michael St Clair
fec77dd92f
allow specifying that calculation can't be nil (#220) 2021-04-04 03:11:43 -04:00
Zach Daniel
db26a1cc61 fix: update struct_field logic for latest ecto 2021-04-03 14:35:04 -04:00
Zach Daniel
7faf73097a fix: apply proper interface operation when opts aren't passed 2021-04-02 10:21:10 -04:00
Zach Daniel
92344029d3 improvement: before_action? on validate, validate inline 2021-04-01 11:53:52 -04:00
Jason Axelson
274fc9ea88
chore: Misc doc updates (#208)
Co-authored-by: Zach Daniel <zachary.s.daniel@gmail.com>
2021-03-31 17:20:59 -04:00
Zach Daniel
d6ee71ce53 feat: support Ash.Query.distinct/2
feat: add `build/2` query preparation
fix: manage_relationships *before* after_action callbacks
2021-03-31 17:13:20 -04:00
Jason Axelson
fc705ad0a5
Documentation improvements and labeled examples (#216)
Improve documentation for calculations
Add ability to "label" examples by passing a tuple instead of just a string.
Fix some minor typos
2021-03-31 16:24:06 -04:00
Zach Daniel
29b2c821fe fix: don't overwrite managed belongs_to relationships 2021-03-29 14:48:42 -04:00
Zach Daniel
1d412c97cd fix: handle on_lookup + on_no_match for belongs_to 2021-03-29 14:04:53 -04:00
Zach Daniel
11d658d077 fix: fix required relationships and add test 2021-03-28 13:44:21 -04:00
Zach Daniel
e65d47d386 fix: fix required relationships 2021-03-28 13:44:21 -04:00
Zach Daniel
523f7bbc0d fix: various managed_relationship fixes 2021-03-28 13:44:21 -04:00
Zach Daniel
2f9fafcbc7 feat: add manage relationship types
improvement: don't accept relationships on actions anymore

improvement: require arguments

This probably broke a lot of people's setups, but it was a
necessary change. Better to get this stuff out while we're
still beta
2021-03-25 11:33:32 -04:00
Zach Daniel
aeb1cad518 fix: add tenant metadata before after action hooks 2021-03-24 00:54:36 -04:00
Zach Daniel
8eba8d6b22 fix: support tenant option in read interface 2021-03-24 00:24:42 -04:00
Darren Black
571eba3558
Resolve type aliases (#207) 2021-03-23 22:48:36 -04:00
Zach Daniel
5eec3d93b3 chore: release version v1.36.19 2021-03-22 17:37:44 -04:00
Zach Daniel
6c1108d834 fix: always return changeset when runner failed 2021-03-22 17:37:20 -04:00
Zach Daniel
44d574862b improvement: docs + dialyzer + error improvements 2021-03-22 02:34:52 -04:00
Zach Daniel
41a91b8aa6 fix: don't require values when managing relationships 2021-03-21 23:00:17 -04:00
Zach Daniel
801778abbd fix: Revert "fix: force_change_attributes before passing to action"
This reverts commit 4a0b2035b9.
2021-03-21 22:17:41 -04:00
Zach Daniel
4a0b2035b9 fix: force_change_attributes before passing to action 2021-03-21 22:11:04 -04:00
Zach Daniel
4e8bd5bfbc fix: exception on invalid query arguments 2021-03-21 14:19:45 -04:00
Zach Daniel
ac72c623d9 fix: allow casting strings as uuids (for embedded types) 2021-03-21 11:31:25 -04:00
Zach Daniel
ab31320e73 improvement: retain actor context from changeset 2021-03-21 11:31:01 -04:00
Jason Axelson
6c31956b56
improvement: Add float type (#204)
Also update `Ash.Type` documentation to use the float module as an
example of a custom type.
2021-03-21 00:09:27 -04:00
Zach Daniel
b155a5fb81 improvement: raise informative errors on bad inputs to for_* 2021-03-20 17:17:23 -04:00
Zach Daniel
b98650aeb7 fix: avoid exception in Changeset.new/2 for bad attribute 2021-03-20 17:16:57 -04:00
Zach Daniel
f1a6fb7418 fix: use ecto's uuid type under the hood 2021-03-20 16:27:11 -04:00
Zach Daniel
e206167f27 improvement: make Ash.Error a public module 2021-03-19 18:23:48 -04:00
Zach Daniel
e0a368365c improvement: docs/default value for params 2021-03-19 17:07:22 -04:00
Zach Daniel
6cfa91cc63 chore: fix lint 2021-03-18 23:37:34 -04:00
Zach Daniel
c2d121c0fe fix: set source_field when replacing belongs_to relationship 2021-03-18 23:33:56 -04:00
Zach Daniel
60da316f58 fix: don't consider false as absent value 2021-03-18 23:33:09 -04:00
Zach Daniel
0ef51ce9e6 improvement: trim whitespace in uuid 2021-03-18 23:32:56 -04:00
Zach Daniel
ba6b4202f9 fix: set argument name in manage_relationship 2021-03-18 23:32:12 -04:00
Zach Daniel
f3c85da268 improvement: improve the behavior of defaults
functional defaults are added at action time, others are added directly
into the changeset
2021-03-17 22:34:49 -04:00
Zach Daniel
a1c5f1d06f fix: validate required attributes *after* before_action hooks 2021-03-16 23:09:36 -04:00
Zach Daniel
3e7b798e34 improvement: discard certain empty values for embed input 2021-03-16 21:41:19 -04:00
Zach Daniel
1b972b9598 fix: force_change attrs *after* for_create/update 2021-03-15 15:55:26 -04:00
Zach Daniel
e60acf4167 fix: pattern match errors in manage_relationships
fix: clean up some error cases
fix: only default accept to `public` attributes
2021-03-15 15:47:33 -04:00
Zach Daniel
f6026c6895 fix: allow_nil?: false + default interaction 2021-03-14 23:06:18 -04:00
Zach Daniel
a33e0b97b9 docs: fix redundancy in API docs 2021-03-14 18:45:10 -04:00
Zach Daniel
7eea6576a0 docs: fix dangling docs references 2021-03-14 18:29:30 -04:00
Zach Daniel
0109696d54 fix: remove the as option 2021-03-14 17:50:11 -04:00
Zach Daniel
4df4e9a070 docs: remove interface docs 2021-03-14 17:48:39 -04:00
Jason Axelson
be56174a3d
docs: Fix some documentation warnings (#196)
i.e. warnings that appear when you run `mix docs`

Although this PR doesn't fix the majority of them, since the majority
are errors from referring to `@moduledoc false` modules in docs and typespecs.
2021-03-14 17:27:12 -04:00
Jason Axelson
3ba6b593b1
docs: Updates to the docs with a focus on the getting started docs (#195) 2021-03-14 17:14:53 -04:00
zimt28
a219bc0c6c
improvement: Add timestamps() attribute (#198) 2021-03-14 17:09:38 -04:00
Zach Daniel
5992fc00f7 docs: remove Ash from docs 2021-03-13 16:07:40 -05:00
zimt28
8ae003e382
docs: Update dsl.ex (#193) 2021-03-13 09:29:21 -05:00
zimt28
87390946bf
Fix documentation TOC (#194) 2021-03-13 09:26:57 -05:00
Zach Daniel
db47a15cf7 fix: properly validate allow_nil?: false on update
fix: properly validate `allow_nil?: false` private attributes
2021-03-13 09:25:13 -05:00
Zach Daniel
3c2ffd8662 fix: set argument default on cast 2021-03-12 22:22:27 -05:00