Commit graph

187 commits

Author SHA1 Message Date
Zach Daniel
53ceb5b753 fix: compile time fixes
improvement: add `require_attributes` to create/update/destroy
2021-04-23 11:41:13 -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
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
Zach Daniel
29b2c821fe fix: don't overwrite managed belongs_to relationships 2021-03-29 14:48:42 -04:00
Zach Daniel
11d658d077 fix: fix required relationships and add test 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
a1c5f1d06f fix: validate required attributes *after* before_action hooks 2021-03-16 23:09:36 -04:00
Zach Daniel
f6026c6895 fix: allow_nil?: false + default interaction 2021-03-14 23:06:18 -04: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
72b5a57a25 feat: functional interface on the Api module
feat: resource aliases
improvement: require completely unique action names
2021-03-08 00:59:32 -05:00
Zach Daniel
e90fdad34a feat: support Ash.Query.select/3 and Ash.Changeset.select/3 2021-03-07 14:09:51 -05:00
zimt28
e10b273ce4
Ecto.UUID -> Ash.UUID (#188) 2021-02-23 12:27:49 -05:00
Zach Daniel
d42c778a0d improvement: many compile time fixes via code splitting
feat: refactored manage_relationship options/behavior
2021-02-22 20:44:03 -05:00
Zach Daniel
dd26beb79b chore: add more authorization tests
chore: improve authorization test helper

improvement: support `{:filter, _}` authorization results for changesets
2021-01-28 14:49:08 -05:00
Zach Daniel
f6f5d194bf feat: freeform expressions
feat: validatiosn in actions

feat: query arguments

feat: add `Ash.Query.for_read/3`

feat: return changeset with API errors

feat: add case insensitive string `CiString`/`:ci_string`

feat: support `context/1` and `arg/1` in filter templates

feat: support targeting notifications with the `for` option

feat: add `ago/2` query function

feat: add basic arithmetic operators (+, *, -, /)

feat: `sensitive?` option for attributes

feat: `sensitive?` option for arguments

feat: `private` arguments, which can’t be set using `for_<action>`

feat: add `prevent_change` which will erase changes just before the changeset is committed

feat: add `match?` validation that supports a custom error message

feat: add `interval` type to support `ago/2` function

feat: add `url_encoded_binary` type

feat: add `function` type

improvement: `changing?` is now a validation

improvement: add `Transformer.get_persisted/3`

improvement: add `api` field to `Notification`

improvement: standardize errors, add `to_error_class`

improvement: use `Comp` everywhere

Improvement: use action on changeset if set by `for_<action_type>`

improvement: `action_failed?` field on change sets

improvement: remove ability for data layers to add operators (for now at least)

Improvement: Changeset.apply_attributes/2 now returns an error tuple

Improvement: add a bunch of new/informative errors

improvement: runtime filter now uses left join logic (a naive implementation of it)

improvement: support more filter templates in resources

Improvement: basic/naive type system for operators/functions

Fix: properly expand module aliases for options w/o compile time dependency

chore(engine): track changeset changes for the request with `manage_changeset?: true`
2021-01-21 15:22:50 -05:00
zimt28
31cb4f4be3
improvement: Improve attribute defaults (#164) 2021-01-12 15:40:55 -05:00
Zach Daniel
6a26a583de
feat: Add Embedded Resources (#170) 2021-01-12 15:05:56 -05:00
zimt28
4404da93ce
fix: Correct error message (#163) 2021-01-09 11:36:01 -05:00
Zach Daniel
17046a02a1 chore: update tests 2021-01-07 22:35:10 -05:00
Zach Daniel
9e5250a920 chore: test binary type 2021-01-06 22:46:53 -05:00
Zach Daniel
d600c55509
feat: support :first aggregate (#153)
feat: support more sort orders
2020-12-28 19:18:01 -05:00
Zach Daniel
281fced422 fix: uuid/id pkeys should allow_nil 2020-12-26 18:30:51 -05:00
Kyle Nguyen
0f47d808e3
fix: do not require private attributes in create api (#143) 2020-11-08 11:49:03 -05:00
Zach Daniel
c493c1616b
feat: add uuid_primary_key/2 and integer_primary_key/2 2020-11-07 00:31:13 -05:00
Zach Daniel
2333d01ddf
feat: multitenancy! and tons of various fixes (#139) 2020-10-28 01:14:17 -04:00
Zach Daniel
1bf2058233
fix: various fixes and improvements 2020-10-20 18:50:11 -04:00
A.shalaby
9020d3b36d
feat: Optimize relashionship records replacement (#135)
Co-authored-by: Zach Daniel <zachary.s.daniel@gmail.com>
2020-10-19 19:10:05 -04:00
Zach Daniel
eb25d5b826
feat: add notifiers (#133) 2020-10-15 00:54:02 -04:00
Zach Daniel
f8fadc67e6
feat: Add pagination (#131) 2020-10-11 23:55:47 -04:00
Zach Daniel
d928ca5f6e
feat: expression based filter 2020-10-08 01:22:55 -04:00
Zach Daniel
243c9f05a2
feat: required belongs_to relationships (#107)
fix: various delegate data layer improvements

fix: engine halting issues

feat: support filter templates on read actions

feat: builtin concat calculation
2020-09-01 23:34:55 -04:00
Zach Daniel
9a3962d47a
feat: add changes to actions (#106) 2020-08-30 03:15:16 -04:00
Zach Daniel
a58367414d
feat: add accept option to create/update actions (#105) 2020-08-28 02:58:03 -04:00
Zach Daniel
9f9935dead
feat: add Ash.NotLoaded back, simpler defaults 2020-08-27 18:36:28 -04:00
Zach Daniel
036e0c2a88
feat: add one_of validation 2020-08-27 00:30:09 -04:00
Zach Daniel
3373d72899
feat: support inner lateral joins (#100)
Specifically, this allows us to behave correctly when loading
relationships w/ a limit or offset
2020-08-26 00:16:08 -04:00
Zach Daniel
385ec0b423
feat: add identities, to enhance get calls (#99) 2020-08-25 02:06:01 -04:00
Zach Daniel
be74d1e7eb
feat: add named aggregates 2020-08-08 16:17:52 -04:00
Zach Daniel
9d51ec6300
feat: allow editing join association attributes 2020-07-16 19:17:01 -04:00
Zach Daniel
b549337dc2
fix: use proper errors everywhere 2020-07-15 17:06:27 -04:00
Zach Daniel
28982f03fd
feat: various small refactors + validations 2020-07-15 01:38:42 -04:00
Zach Daniel
2cf41b966e
feat: refactor changes into changesets 2020-07-12 02:25:53 -04:00
Zach Daniel
253b1c2e7a
feat: lots of docs, simplify query generation 2020-07-09 02:55:09 -04:00
Zach Daniel
b5120a42b5
feat: list types 2020-06-30 23:57:24 -04:00
Zach Daniel
8438795f96
fix: require that resources have primary keys 2020-06-30 00:31:07 -04:00
Zach Daniel
b5c3f7acc4
fix: fix tests, add tests for gt/lt filters 2020-06-28 23:36:38 -04:00
Zach Daniel
c89acce635
fix: remove reverse relationships 2020-06-22 00:34:44 -04:00
Zach Daniel
e6e9f88710
fix: many filter/side load fixes/improvements 2020-06-21 23:26:47 -04:00
Zach Daniel
1033677259
feat: boolean filter refactor (#78)
feat: predicate behaviour
2020-06-18 22:59:30 -04:00
Zach Daniel
6dc699d8a6
feat: rebuild DSL inner workings for extensibility (#70) 2020-06-14 02:39:11 -04:00
Zach Daniel
5f2019027d
improvement: add date support (#68) 2020-06-12 22:39:20 -04:00
Zach Daniel
1cc143e7fa
test: adjust tests for removal of name/type (and defaults) 2020-06-04 23:34:44 -04:00
Zach Daniel
7c987b32bb
chore: wrap up remaining lint errors 2020-06-02 01:47:25 -04:00
Zach Daniel
b5c2fe6cf6
chore: remove ashton in favor of nimble_options 2020-06-01 01:14:23 -04:00
Zach Daniel
1cc096e621
improvement: huge query/filter overhaul 2020-05-13 11:54:44 -04:00
Zach Daniel
596a8e3d75
improvement: remove pagination, add query struct (unused) 2020-05-09 22:23:23 -04:00
Zach Daniel
7a28c7b9bd
feat: add timestamps/0 to attributes 2020-05-01 10:22:31 -04:00
Zach Daniel
2dea5d6d33
WIP on new error system. Only a few tests left to fix 2020-05-01 02:21:46 -04:00
Zach Daniel
24d1bd03c4
WIP 2020-04-19 23:15:52 -04:00
Zach Daniel
ed2b24d590
WIP 2020-01-14 14:00:38 -05:00
Zach Daniel
a831af570d
WIP 2020-01-13 13:16:24 -05:00
Zach Daniel
5f2c134060
WIP 2020-01-01 04:51:56 -05:00
Zach Daniel
add170ccc3
fixing tests/errors 2019-12-24 01:29:01 -05:00
Zach Daniel
41faa751c1
finish up relationship update tests 2019-12-23 15:51:01 -05:00
Zach Daniel
50941958e6
WIP, action tests 2019-12-23 13:17:22 -05:00
Zach Daniel
e0cc81c2e7
finally starting to stablize a bit. Still need to finish pg datalayer and
authorization. Realized that `get` `update` and `destroy` logic isn't
going to be as easy as filter based logic. Still not sure how to
handle it really.
2019-12-22 04:06:33 -05:00
Zach Daniel
a93c1b60cb
WIP, making filters work, for the most part 2019-12-22 03:17:29 -05:00
Zach Daniel
4e2e013f96
adding some tests, working on relationship stateful changes 2019-12-20 00:30:27 -05:00
Zach Daniel
fc259c9012
WIP 2019-12-19 23:19:34 -05:00
Zach Daniel
2f85a1385f
wildin out man 2019-12-15 18:20:44 -06:00
Zach Daniel
201e068235
whirlwind 2019-12-12 01:19:22 -05:00
Zach Daniel
d29afca057
WIP 2019-12-10 00:08:59 -05:00
Zach Daniel
6ba4afa1d6
WIP 2019-12-09 02:07:23 -05:00
Zach Daniel
b776d06c2d
WIP 2019-12-09 01:44:07 -05:00
Zach Daniel
ee05955af8
WIP 2019-12-08 14:02:09 -05:00
Zach Daniel
a2e007697a
working on defaults, updating error messages 2019-12-08 01:21:09 -05:00
Zach Daniel
0cd0748ead
WIP 2019-12-07 16:33:31 -05:00
Zach Daniel
e90023f75d
remove deafults in actions 2019-12-06 02:06:34 -05:00
Zach Daniel
248a5d667d
WIP 2019-12-05 13:45:02 -05:00
Zach Daniel
1c5a7e228c
add ash types and test one of them 2019-12-05 11:50:30 -05:00
Zach Daniel
030c389225
WIP on cleanup/documentation 2019-12-05 02:18:13 -05:00
Zach Daniel
b2feeac52d
WIP 2019-12-03 01:47:49 -05:00
Zach Daniel
af40b830fc
WIP 2019-12-01 23:04:16 -05:00
Zach Daniel
d9ed8e7bbc
WIP 2019-11-29 14:40:19 -05:00
Zach Daniel
ad313c5ff3
WIP 2019-11-29 01:54:11 -05:00
Zach Daniel
4cabb8a838
add an ets data layer, and start on some testing 2019-11-28 00:24:29 -05:00