-
-
Notifications
You must be signed in to change notification settings - Fork 888
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
set _api_write_item_iri only if result object is a subclass of a resource class #2810
Conversation
Could you please use descriptive commit messages and update the title of this issue so it can be searched/indexed properly in the future? Thanks! :) |
The fix is wrong. I think we should just check whether it's a resource item, and skip setting the attribute if it's not. Because we should not make assumptions that won't hold true. |
If you don't mind, maybe we could do this after #2797 is merged? I think it'll be easier. |
Hi @borNfreee, |
Hi @teohhanhui,
You know better, I guess ;) |
Wouldn't it be less restrictive to check if the E.g. when we dispatch a request for a DTO or any other unidentifiable resource and the DataPersister returns any other applicable ApiResource than given in // ... SNIP
if ($hasOutput) {
try {
$request->attributes->set('_api_write_item_iri', $this->iriConverter->getIriFromItem($controllerResult));
} catch (ResourceClassNotFoundException $e) {
// swallow
}
} Unfortunately the IriConverter bubbles only a simple |
Looks like this issue is related #2860 |
See #2860 (comment) I think this is not a bug. |
Replaced by #2910 |
Issue happens when
output
class for a specific operation is not related to a class that represents api resource.WriteListener
tries to set_api_write_item_iri
from a result object (defined inoutput
attribute of an operation) but fails as it's not possible.