Commit graph

744 commits

Author SHA1 Message Date
Zach Daniel
e40806e021 improvement: cover more potential cases in filter parsing 2021-12-19 15:39:31 -05:00
Zach Daniel
2986838a19 fix: support new versions of ecto's struct fields
fix: fixes for elixir_sense plugin
2021-12-19 00:12:10 -05:00
Zach Daniel
6c5198eea4
improvement: add elixir_sense extension, to be merged when ready (#275) 2021-12-13 18:17:34 -05:00
Zach Daniel
88168de320 improvement: add Ash.DataLayer.Simple.set_data/2
docs: add data-layer-less resource guide
2021-12-07 21:39:07 -05:00
Zach Daniel
3ee5b059b0 improvement: complete mutually_exclusive_and_collectively_exhaustive logic 2021-12-07 15:08:50 -05:00
Zach Daniel
4448a4eeb7 improvement: catch more equivalencey cases around is_nil in sat solver 2021-12-06 16:50:33 -05:00
Zach Daniel
e1cd19950e fix: undo an unnecessary contains change 2021-12-06 00:33:25 -05:00
Zach Daniel
9fdb56587c fix: WIP attempt to resolve ci_string typing errors 2021-12-06 00:25:07 -05:00
Zach Daniel
d9ce401bb4 fix: case clause error in Query.equivalent_to? 2021-12-01 14:59:23 -05:00
Zach Daniel
48d88151ba fix: missing rename on refactor 2021-12-01 14:04:14 -05:00
Zach Daniel
6fcff37659 fix: typo in unquote 2021-12-01 14:03:48 -05:00
Zach Daniel
a5b130e5f4 improvement: expose small filter helpers 2021-12-01 14:02:44 -05:00
Zach Daniel
a46b5268d1 fix: mark contains as a predicate
improvement: make to_simple_filter fail better, add failure option
2021-11-29 14:06:31 -05:00
Zach Daniel
df306ef2ad improvement: add Transformer.eval/3 (for special use cases only) 2021-11-26 14:59:37 -05:00
Zach Daniel
83b2d13910 improvement: track defaults being set 2021-11-24 19:09:39 -05:00
Zach Daniel
2dbdc06536 improvement: add Ash.Query.equivalent_to/2
docs: small documentation tweaks
2021-11-16 22:46:14 -05:00
Zach Daniel
b6094b1e9c improvement: add subset_of? and superset_of? query macros 2021-11-16 19:17:57 -05:00
Zach Daniel
b26e272bb4 fix: run calculations inline by default 2021-11-13 14:43:51 -05:00
Michael St Clair
f9b7223d91
fix: use Date.add when using LessThanOrEqual with date value (#281) 2021-11-13 14:11:32 -05:00
Zach Daniel
7cb4401d8e improvement: support do/else blocks in if
improvement: support `cond`
2021-11-13 13:48:25 -05:00
Zach Daniel
f124e9bf7c fix: cast nil input on strings
docs: add line on multitenancy
2021-11-11 14:27:57 -05:00
Zach Daniel
034ed97efe fix: simplify and improve allow_nil checking 2021-11-09 03:26:50 -05:00
Zach Daniel
f16ffb3782 improvement!: breaking!: explicitly setting a value to nil on create no longer falls back to the default value
This behavior is more expected than silently switching back to the default, but it does have the potential
to cause issues for those relying on the old behavior. To get the *old* behavior, you'd want to add a change
that does something like `if is_nil(Ash.Changeset.get_attribute(changeset, :attribute)) do` to check if
it should set the value, and then uses `Ash.Changeset.change_attribute/2` to make the change
2021-11-09 00:39:19 -05:00
Zach Daniel
1d68df5cd3 improvement: add set_new_attribute/2 2021-11-09 00:01:59 -05:00
Zach Daniel
23dfebc59f chore: add code interface docs 2021-11-07 01:24:45 -04:00
Zach Daniel
629708eecc improvement: still filter in cases w/o a lateral join on load
fix: don't ask the data layer to sort if no sort is applied
2021-11-03 17:21:29 -04:00
kernel-io
3b06998df5
fix: set tenant at start of query build (#278) 2021-11-02 16:59:55 -04:00
Zach Daniel
ca631d27da improvement: only_when_valid? on changes
fix: set storage_type to `:uuid` for Ash.Type.UUID
2021-11-01 04:39:13 -04:00
Zach Daniel
68d7d10877 fix: remove IO.inspect 2021-10-29 19:53:24 -04:00
Zach Daniel
cd70686a4e fix: add changes from last release that I forgot 2021-10-29 18:39:13 -04:00
Zach Daniel
ea73432ff1 improvement: compile time optimizations via configuration
improvement: breaking change! if you were previously relying on the undocumented
ability to configure resources using application config, you will no longer configure
them as `config :ash, DslEntity`, but rather you will set an otp_app on the entity,
e.g `use Ash.Resource, otp_app: :otp_app`, and then you'll configure that via
`config :otp_app, MyApp.Resource, ...`
2021-10-29 17:21:05 -04:00
kernel-io
4113595f69
fix: correctly handle errors in validate_required_belongs_to (#276) 2021-10-28 17:38:14 -04:00
Zach Daniel
9613ab812c fix: set actor when loading to manage belongs_to
improvement: set `action` into data layer context
2021-10-28 16:11:11 -04:00
Zach Daniel
dc25e9d7e4 fix: cast to string before concatenating 2021-10-26 11:54:44 -04:00
Zach Daniel
13cffc852c fix: always lateral join for many to many relationships
improvement: add `default` option for aggregates
2021-10-25 18:48:35 -04:00
Zach Daniel
05d8eb1741 improvement: add allow_async? to calculations, default to false
improvement: add elixir evaluation step to expression calculations
2021-10-25 17:53:51 -04:00
Zach Daniel
e17daf6b02 improvement: global resource preparations
fix: unset `load` when running calculation queries
2021-10-25 16:59:11 -04:00
Zach Daniel
358a1b5cae fix: breaking change! disambiguating functions in keyword filter syntax
it was possible to call functions in the form of `[function_name: [...args]]`,
but if you had relationships that overlapped w/ the function name that would cause problems.
To disambiguate, function arguments must now be provided as a tuple, e.g
`[function_name: {...args}]`.
2021-10-24 14:19:38 -04:00
Zach Daniel
e765eb5e10 fix: use correct typespec for Ash.Sort.parse_input/2 2021-10-23 02:51:49 -04:00
Zach Daniel
8683ca46c9 chore: set default for get? 2021-10-21 22:13:10 -04:00
Zach Daniel
0e66801ebe improvement: add get? metadata 2021-10-21 22:12:28 -04:00
Zach Daniel
f0ab170b5d chore: remove IO.inspect 2021-10-21 18:11:35 -04:00
Zach Daniel
1805c21075 improvement: custom error paths for managed relationships 2021-10-21 18:09:13 -04:00
Zach Daniel
d8f6aaedf2 fix: honor get_by and get_by_identity on bang (!) interfaces 2021-10-20 01:43:31 -04:00
Zach Daniel
5e6442c3e4 improvement: add get_by and get_by_identity to code interface
improvement: compile time validations for managed relationships
2021-10-19 21:39:30 -04:00
Zach Daniel
a4fef11c6e fix: don't require primary actions if disabled 2021-10-19 05:25:33 -04:00
Zach Daniel
3bad25c1e0 improvement: add primary_actions? option 2021-10-19 04:42:35 -04:00
Zach Daniel
38b357ade9 fix: don't validate allow_nil in attribute casting 2021-10-15 17:13:01 -04:00
Zach Daniel
1f2f9802a3 fix: fix code interface on resources
improvement: breaking change! api level code interface *removed*, contact me on discord if you want a way to avoid changing to resource-based interface, but otherwise
switch to the resource based one by specifying `define_for YourApp.YourApi` in the `code_interface` block of each resource.
improvement: use proper equality checking in places where we were using simple elixir equality checking
2021-10-13 18:42:42 -04:00
Zach Daniel
863ed1520f fix: honor base query still when removing filters 2021-10-11 20:06:13 -04:00