-
Notifications
You must be signed in to change notification settings - Fork 394
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support for auditSync and auditDetach on Auditable custom Pivot class #954
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
are you able to correct your spaces to match the rest of the code and add some tests for the functionality you've added?
For the spaces sure, for the tests I'll need to add a couple of models to reproduce. |
I added some tests that cover sync, attach and detach with an Auditable custom Pivot class. The other tests are failing without the code change and are passing now. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
some final spaces and maybe wake up github actions
I think |
@willpower232 Sorry for the inconvenience, I'm not sure what should I do to make this pull request go through. |
The bug was caused by the way the detach method creates the query to delete the pivot class (creating a new instance and not retrieving the one in the database). Attaching is not affected by it (there is no instance to retrieve), applying the changes would just remove the "created" audit on the pivot class, which is against the idea of having an auditable pivot class. A full solution would be to rework how the detach method builds the query instead of wrapping with withoutAuditing, but frankly I don't know the codebase enough to make such an impactful change for what is an edge usecase. |
I was confused as to why github actions wasn't working but it seems to be behaving now, I'll re read the PR shortly |
Thanks a lot @txdFrancesco for this explanation. Would be super nice if this could be supported in the future. @MortenDHansen is there something in the works for V14? f49ab23 looks promising, or at least it's a smart refactor to move that logic into a separate |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
seems fine to me, not sure when is good to merge this @erikn69 perhaps just needs a pint/phpstan run after merging your other PR?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@txdFrancesco are you able to update the PR now that the factories are modernised?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should be done, test are passing on my machine. @willpower232 can you approve the action workflow? here it says it needs approval from a mantainer
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looking good to me, thanks for the quick response
@erikn69 time for merging and v14?
@willpower232 the tests were not run on this change, I won't have time to review this for at least a couple of weeks, if you reviewed it and it won't cause problems feel free to merge it and make the release for v14, you would also have to put the note for the event breaking change (I couldn't find why it works differently in certain scenarios) |
Allow the use of auditSync and auditDetach on BelongsToMany relations where the pivot class is an Auditable class.
This is useful in cases where the relation model is itself a Laravel model and may be updated (and thus audited) indipendently from the related models, without requring dedicated code around every ->auditSync call on the related models.