diff --git a/src/services/json-api-datastore.service.ts b/src/services/json-api-datastore.service.ts index 3c0493c3..3f729eb0 100644 --- a/src/services/json-api-datastore.service.ts +++ b/src/services/json-api-datastore.service.ts @@ -246,6 +246,16 @@ export class JsonApiDatastore { data: relationshipData }; } + } else if (data[key] === null) { + const entity = belongsToMetadata.find((entity: any) => entity.propertyName === key); + + if (entity) { + relationships = relationships || {}; + + relationships[entity.relationship] = { + data: null + }; + } } } } @@ -448,7 +458,7 @@ export class JsonApiDatastore { const modelsTypes: any = Reflect.getMetadata('JsonApiDatastoreConfig', this.constructor).models; for (const relationship in relationships) { - if (relationships.hasOwnProperty(relationship) && model.hasOwnProperty(relationship)) { + if (relationships.hasOwnProperty(relationship) && model.hasOwnProperty(relationship) && model[relationship]) { const relationshipModel: JsonApiModel = model[relationship]; const hasMany: any[] = Reflect.getMetadata('HasMany', relationshipModel); const propertyHasMany: any = find(hasMany, (property) => {