Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes order and waypoint polymorphic customer serialization so selected customer records serialize with their concrete subtype, contact or vendor, instead of the abstract Ember relationship model, customer.
A recent serializer change removed the fallback to the related record's own polymorphic type attribute. When an order was created with a selected customer model, the order serializer fell back to belongsTo.modelName, producing customer_type fleet-ops:customer. FleetOps does not have a Fleetbase FleetOps Models Customer model, so Laravel later failed resolving the order customer morph relation while building the created webhook payload.
Changes
Why
For customer selector results, the Ember model can be the abstract customer model while the payload includes the concrete subtype in customer_type, for example contact or vendor. The serializer needs to prefer that concrete subtype when present. Otherwise the backend receives fleet-ops:customer, converts it to Fleetbase FleetOps Models Customer, and crashes because the concrete FleetOps model is actually Contact or Vendor.
Verification