From 20e8b93c15a9d3e5070d8edff99b12bd1b3784a6 Mon Sep 17 00:00:00 2001 From: Frans Saris Date: Fri, 20 Sep 2019 16:01:31 +0200 Subject: [PATCH] [BUGFIX] #244 Fix removing belongsTo relations --- src/services/json-api-datastore.service.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) 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) => {