From 84c95291b4b374f99d9b5e6d49a0c4fd358c150c Mon Sep 17 00:00:00 2001 From: Jacob Bullock Date: Tue, 5 Jun 2018 15:45:59 -0700 Subject: [PATCH 1/3] simple accessor to get meta data passed into models --- src/models/json-api.model.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/models/json-api.model.ts b/src/models/json-api.model.ts index e2ca8145..b8fe584f 100644 --- a/src/models/json-api.model.ts +++ b/src/models/json-api.model.ts @@ -8,12 +8,14 @@ import { AttributeMetadata } from '../constants/symbols'; export class JsonApiModel { id: string; + meta: any; [key: string]: any; // tslint:disable-next-line:variable-name constructor(private _datastore: JsonApiDatastore, data?: any) { if (data) { this.id = data.id; + this.meta = data.meta; Object.assign(this, data.attributes); } } From d8b62a6dcbccf258a670fc38967513edc1adaa46 Mon Sep 17 00:00:00 2001 From: Jacob Bullock Date: Wed, 27 Jun 2018 10:03:53 -0700 Subject: [PATCH 2/3] making data param accessible to the class and adding helper methods to pull values from it --- src/models/json-api.model.ts | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/models/json-api.model.ts b/src/models/json-api.model.ts index b8fe584f..f47dcef2 100644 --- a/src/models/json-api.model.ts +++ b/src/models/json-api.model.ts @@ -7,19 +7,27 @@ import * as _ from 'lodash'; import { AttributeMetadata } from '../constants/symbols'; export class JsonApiModel { - id: string; - meta: any; [key: string]: any; // tslint:disable-next-line:variable-name - constructor(private _datastore: JsonApiDatastore, data?: any) { + constructor(private _datastore: JsonApiDatastore, protected data?: any) { if (data) { - this.id = data.id; - this.meta = data.meta; Object.assign(this, data.attributes); } } + get id(): string { + return this.data.id; + } + + get meta(): any { + return this.data.meta; + } + + get relationships(): any { + return this.data.relationships; + } + syncRelationships(data: any, included: any, level: number): void { if (data) { this.parseHasMany(data, included, level); From efb909211a5e52d631b9eeb0b7d65c8e11df6aa4 Mon Sep 17 00:00:00 2001 From: Jacob Bullock Date: Wed, 27 Jun 2018 10:06:04 -0700 Subject: [PATCH 3/3] reverting id back to a param so it can be set from the datastore --- src/models/json-api.model.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/models/json-api.model.ts b/src/models/json-api.model.ts index f47dcef2..8e32f3e2 100644 --- a/src/models/json-api.model.ts +++ b/src/models/json-api.model.ts @@ -7,19 +7,17 @@ import * as _ from 'lodash'; import { AttributeMetadata } from '../constants/symbols'; export class JsonApiModel { + id: string; [key: string]: any; // tslint:disable-next-line:variable-name constructor(private _datastore: JsonApiDatastore, protected data?: any) { if (data) { + this.id = data.id; Object.assign(this, data.attributes); } } - get id(): string { - return this.data.id; - } - get meta(): any { return this.data.meta; }