You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have User, Institute, and Activity model with morph many relationship as follow:
User morph many actions
User morph many activities
Institute morph many activities
and inverse morph many relationship as follow:
Activity morph to causer
Activity morph to subject
The purpose of activity model is to logging activities (create, update, soft delete, restore, or force delete) of another model also the causer of the activity itself. In simple terms we can assume that:
User causes actions as a causer of an Activity
User activities are recorded as a subject of an Activity
Institute activities are recorded as a subject of an Activity
I'm using JSON:API as API framework, in order to makes JSON:API response compatible with Vuex ORM data I'm using json-api-response-converter as response transformer package.
I don't know why at data transformation it works well, but when at data retrieval it gives id, type, and model morph to with null value.
When we check the console log of data transformation L:20, the subject is exists on activity 7672 also both causer and subject are exists on activity 7934.
At the same time when we check the console log of data retrieval console log L:36, the subject is null from activity 7672 also both causer and subject are null from activity 7934.
Expected behavior
Persisted data with related polymorphic on vuex store entities is conformed to transformed data with related polymorphic.
Versions
Vuex ORM Axios: 0.9.3
Vuex ORM: 0.36.3
json-api-response-converter: 1.6.0
The text was updated successfully, but these errors were encountered:
While this isn't an issue with the axios plugin per-se, it seems to point to either Vuex ORM or json-api-response-converter.
Currently a morphTo relation expects the id and type to exist in the given record since it doesn't need to attach foreign keys to the related model. Given your transformed data doesn't provide that, the necessary relations are not generated. For example, the following payload will generate the relations for a morphTo:
I'm not sure if this is Vuex ORM just not generating the missing foreign keys (something @kiaking could shed light on perhaps?)... But As a workaround, you could attach the would-be foreign keys to the Activity model in the transformer:
Thanks for responding my issue @cuebit, the reason why I'm asked here instead of on vuex-orm package, is because of the dataTransformer timing so that I can provides data with expected morph to format.
This case is using User as causer and Institute as subject, anyway how can I guess the type of related data if I have registered 44 models on vuex-orm database?
Another point to mention is JSON:API prefers kebab-case on resource's type, but vuex-orm prefers snake-case on model's entity. Should I make a morph map to solve this case?
Describe the bug
I have User, Institute, and Activity model with morph many relationship as follow:
and inverse morph many relationship as follow:
The purpose of activity model is to logging activities (create, update, soft delete, restore, or force delete) of another model also the causer of the activity itself. In simple terms we can assume that:
I'm using JSON:API as API framework, in order to makes JSON:API response compatible with Vuex ORM data I'm using json-api-response-converter as response transformer package.
I don't know why at data transformation it works well, but when at data retrieval it gives id, type, and model morph to with null value.
Steps to reproduce the bug
Visit the reproduction link
When we check the console log of data transformation L:20, the subject is exists on activity 7672 also both causer and subject are exists on activity 7934.
At the same time when we check the console log of data retrieval console log L:36, the subject is null from activity 7672 also both causer and subject are null from activity 7934.
Expected behavior
Persisted data with related polymorphic on vuex store entities is conformed to transformed data with related polymorphic.
Versions
The text was updated successfully, but these errors were encountered: