Commit b107cb0
authored
improvement: Add prepend? opt to hooks and Ash.Subject transaction hooks (#2221)
- Adds `prepend?` opt for all hooks except for `Ash.Query.after_action` since it uses `@read_action_after_action_hooks_in_order?`
* improvement(hooks): Add transaction hooks to Ash.Subject
- Clean up type specs
- Add before/after,around transaction hooks to Ash.Subject
* improvement: Ash.Subject delegation and improvements
- Update all functions to delegate to the subject type module function
- Align type specs with subject type module types
- Update `get_argument/3` to only return the default value when `:error` is returned from `fetch_argument/2`
- Add `Ash.ActionInput.delete_argument/3`
- Add `Ash.Changeset.fetch_attribute/2`
- Add `Ash.Changeset.fetch_data/2`
- Add `Ash.Changeset.fetch_argument_or_attribute/2`
- Update `Ash.Query.fetch_argument/2` to first call `Ash.Query.new(query)` like other functions to ensure the subject is a query.
- Remove `set_private_argument/3` tests because there is a bug where `new/1` doesn't add the `arguments`, but `set_argument/3` is using dot syntax to access the arguments. So, there's no way to use `set_private_argument/3` without getting the warning message. I'll submit another PR to fix this"
-1 parent c5e17c9 commit b107cb0
File tree
5 files changed
+807
-388
lines changed- lib/ash
- changeset
- query
- test
5 files changed
+807
-388
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
507 | 507 | | |
508 | 508 | | |
509 | 509 | | |
510 | | - | |
| 510 | + | |
511 | 511 | | |
512 | 512 | | |
513 | 513 | | |
| |||
553 | 553 | | |
554 | 554 | | |
555 | 555 | | |
| 556 | + | |
| 557 | + | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
| 561 | + | |
| 562 | + | |
| 563 | + | |
| 564 | + | |
| 565 | + | |
| 566 | + | |
| 567 | + | |
| 568 | + | |
| 569 | + | |
| 570 | + | |
| 571 | + | |
| 572 | + | |
| 573 | + | |
| 574 | + | |
| 575 | + | |
556 | 576 | | |
557 | 577 | | |
558 | 578 | | |
| |||
998 | 1018 | | |
999 | 1019 | | |
1000 | 1020 | | |
1001 | | - | |
| 1021 | + | |
| 1022 | + | |
1002 | 1023 | | |
1003 | | - | |
1004 | | - | |
| 1024 | + | |
| 1025 | + | |
| 1026 | + | |
| 1027 | + | |
| 1028 | + | |
| 1029 | + | |
1005 | 1030 | | |
1006 | 1031 | | |
1007 | 1032 | | |
| |||
1025 | 1050 | | |
1026 | 1051 | | |
1027 | 1052 | | |
1028 | | - | |
1029 | | - | |
1030 | | - | |
| 1053 | + | |
| 1054 | + | |
| 1055 | + | |
| 1056 | + | |
| 1057 | + | |
| 1058 | + | |
| 1059 | + | |
| 1060 | + | |
| 1061 | + | |
| 1062 | + | |
| 1063 | + | |
1031 | 1064 | | |
1032 | 1065 | | |
1033 | 1066 | | |
| |||
1051 | 1084 | | |
1052 | 1085 | | |
1053 | 1086 | | |
1054 | | - | |
1055 | | - | |
1056 | | - | |
| 1087 | + | |
| 1088 | + | |
| 1089 | + | |
| 1090 | + | |
| 1091 | + | |
| 1092 | + | |
| 1093 | + | |
| 1094 | + | |
| 1095 | + | |
| 1096 | + | |
| 1097 | + | |
1057 | 1098 | | |
1058 | 1099 | | |
1059 | 1100 | | |
| |||
1081 | 1122 | | |
1082 | 1123 | | |
1083 | 1124 | | |
1084 | | - | |
1085 | | - | |
1086 | | - | |
| 1125 | + | |
| 1126 | + | |
| 1127 | + | |
| 1128 | + | |
| 1129 | + | |
| 1130 | + | |
| 1131 | + | |
| 1132 | + | |
| 1133 | + | |
| 1134 | + | |
| 1135 | + | |
1087 | 1136 | | |
1088 | 1137 | | |
1089 | 1138 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4828 | 4828 | | |
4829 | 4829 | | |
4830 | 4830 | | |
| 4831 | + | |
| 4832 | + | |
| 4833 | + | |
| 4834 | + | |
| 4835 | + | |
| 4836 | + | |
| 4837 | + | |
| 4838 | + | |
| 4839 | + | |
| 4840 | + | |
| 4841 | + | |
| 4842 | + | |
| 4843 | + | |
| 4844 | + | |
| 4845 | + | |
| 4846 | + | |
| 4847 | + | |
| 4848 | + | |
| 4849 | + | |
| 4850 | + | |
| 4851 | + | |
| 4852 | + | |
4831 | 4853 | | |
4832 | 4854 | | |
4833 | 4855 | | |
| |||
4837 | 4859 | | |
4838 | 4860 | | |
4839 | 4861 | | |
| 4862 | + | |
| 4863 | + | |
| 4864 | + | |
| 4865 | + | |
| 4866 | + | |
| 4867 | + | |
| 4868 | + | |
| 4869 | + | |
| 4870 | + | |
| 4871 | + | |
| 4872 | + | |
| 4873 | + | |
| 4874 | + | |
| 4875 | + | |
| 4876 | + | |
| 4877 | + | |
| 4878 | + | |
| 4879 | + | |
| 4880 | + | |
4840 | 4881 | | |
4841 | 4882 | | |
4842 | 4883 | | |
| |||
4858 | 4899 | | |
4859 | 4900 | | |
4860 | 4901 | | |
| 4902 | + | |
| 4903 | + | |
| 4904 | + | |
| 4905 | + | |
| 4906 | + | |
| 4907 | + | |
| 4908 | + | |
| 4909 | + | |
| 4910 | + | |
| 4911 | + | |
| 4912 | + | |
| 4913 | + | |
| 4914 | + | |
| 4915 | + | |
| 4916 | + | |
| 4917 | + | |
4861 | 4918 | | |
4862 | 4919 | | |
4863 | 4920 | | |
| |||
6546 | 6603 | | |
6547 | 6604 | | |
6548 | 6605 | | |
6549 | | - | |
6550 | | - | |
6551 | | - | |
| 6606 | + | |
| 6607 | + | |
| 6608 | + | |
6552 | 6609 | | |
6553 | 6610 | | |
6554 | 6611 | | |
| |||
6622 | 6679 | | |
6623 | 6680 | | |
6624 | 6681 | | |
6625 | | - | |
6626 | | - | |
6627 | | - | |
| 6682 | + | |
| 6683 | + | |
| 6684 | + | |
6628 | 6685 | | |
6629 | 6686 | | |
6630 | 6687 | | |
| |||
6724 | 6781 | | |
6725 | 6782 | | |
6726 | 6783 | | |
6727 | | - | |
6728 | | - | |
6729 | | - | |
| 6784 | + | |
| 6785 | + | |
| 6786 | + | |
6730 | 6787 | | |
6731 | 6788 | | |
6732 | 6789 | | |
| |||
6784 | 6841 | | |
6785 | 6842 | | |
6786 | 6843 | | |
6787 | | - | |
6788 | | - | |
| 6844 | + | |
| 6845 | + | |
| 6846 | + | |
| 6847 | + | |
| 6848 | + | |
| 6849 | + | |
6789 | 6850 | | |
6790 | | - | |
| 6851 | + | |
| 6852 | + | |
| 6853 | + | |
| 6854 | + | |
| 6855 | + | |
| 6856 | + | |
6791 | 6857 | | |
6792 | 6858 | | |
6793 | 6859 | | |
| |||
6829 | 6895 | | |
6830 | 6896 | | |
6831 | 6897 | | |
6832 | | - | |
6833 | | - | |
| 6898 | + | |
| 6899 | + | |
| 6900 | + | |
| 6901 | + | |
| 6902 | + | |
| 6903 | + | |
6834 | 6904 | | |
6835 | | - | |
| 6905 | + | |
| 6906 | + | |
| 6907 | + | |
| 6908 | + | |
| 6909 | + | |
| 6910 | + | |
6836 | 6911 | | |
6837 | 6912 | | |
6838 | 6913 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1325 | 1325 | | |
1326 | 1326 | | |
1327 | 1327 | | |
1328 | | - | |
1329 | | - | |
| 1328 | + | |
| 1329 | + | |
| 1330 | + | |
| 1331 | + | |
| 1332 | + | |
| 1333 | + | |
1330 | 1334 | | |
1331 | | - | |
| 1335 | + | |
| 1336 | + | |
| 1337 | + | |
| 1338 | + | |
| 1339 | + | |
| 1340 | + | |
1332 | 1341 | | |
1333 | 1342 | | |
1334 | 1343 | | |
| |||
1352 | 1361 | | |
1353 | 1362 | | |
1354 | 1363 | | |
1355 | | - | |
1356 | | - | |
| 1364 | + | |
| 1365 | + | |
| 1366 | + | |
| 1367 | + | |
| 1368 | + | |
| 1369 | + | |
1357 | 1370 | | |
1358 | | - | |
| 1371 | + | |
| 1372 | + | |
| 1373 | + | |
| 1374 | + | |
| 1375 | + | |
| 1376 | + | |
1359 | 1377 | | |
1360 | 1378 | | |
1361 | 1379 | | |
| |||
1403 | 1421 | | |
1404 | 1422 | | |
1405 | 1423 | | |
1406 | | - | |
1407 | | - | |
| 1424 | + | |
| 1425 | + | |
| 1426 | + | |
| 1427 | + | |
| 1428 | + | |
| 1429 | + | |
1408 | 1430 | | |
1409 | | - | |
| 1431 | + | |
| 1432 | + | |
| 1433 | + | |
| 1434 | + | |
| 1435 | + | |
| 1436 | + | |
1410 | 1437 | | |
1411 | 1438 | | |
1412 | 1439 | | |
| |||
1529 | 1556 | | |
1530 | 1557 | | |
1531 | 1558 | | |
1532 | | - | |
1533 | | - | |
1534 | | - | |
1535 | | - | |
1536 | | - | |
| 1559 | + | |
| 1560 | + | |
| 1561 | + | |
| 1562 | + | |
| 1563 | + | |
1537 | 1564 | | |
1538 | 1565 | | |
1539 | 1566 | | |
| |||
2769 | 2796 | | |
2770 | 2797 | | |
2771 | 2798 | | |
2772 | | - | |
2773 | | - | |
2774 | | - | |
| 2799 | + | |
| 2800 | + | |
| 2801 | + | |
| 2802 | + | |
| 2803 | + | |
| 2804 | + | |
2775 | 2805 | | |
2776 | 2806 | | |
2777 | 2807 | | |
| |||
2804 | 2834 | | |
2805 | 2835 | | |
2806 | 2836 | | |
2807 | | - | |
2808 | | - | |
| 2837 | + | |
| 2838 | + | |
| 2839 | + | |
| 2840 | + | |
2809 | 2841 | | |
2810 | 2842 | | |
2811 | 2843 | | |
| |||
0 commit comments