@@ -12,24 +12,14 @@ import JSDataHttp = require('js-data-http');
1212import Helper = require( './JsonApiSerializer' ) ;
1313export import JsonApi = require ( './JsonApi' ) ;
1414
15- //class Headers {
16- // common: { [name: string]: string };
17-
18- // constructor() {
19- // this.common = {};
20- // }
21- //}
22-
2315const HttpNoContent : Number = 204 ;
2416
2517export class JsonApiAdapter implements JSData . IDSAdapter {
2618
27- //TODO Add typings, see: https://github.com/js-data/js-data/blob/master/src/utils.js
2819 private DSUtils : JSData . DSUtil ;
2920 private adapter : JSData . DSHttpAdapterExtended ;
3021 private adapterGetPath : Function ;
3122 adapterHTTP : Function ;
32- // adapterPOST: Function;
3323
3424 get defaults ( ) : JsonApiAdapter . DSJsonApiAdapterOptions {
3525 return this . adapter . defaults ;
@@ -42,7 +32,7 @@ export class JsonApiAdapter implements JSData.IDSAdapter {
4232 var httpAdapter : typeof DSHttpAdapter = JSDataHttp ;
4333 this . DSUtils = JSDataLib [ 'DSUtils' ] ;
4434
45- //TODO : Set defaults on options
35+ //No longer use options
4636 this . serialize = this . SerializeJsonResponse ;
4737 this . deserialize = this . DeSerializeJsonResponse ;
4838
@@ -54,23 +44,23 @@ export class JsonApiAdapter implements JSData.IDSAdapter {
5444 // defaults.error = (a, b) => console[typeof console.error === 'function' ? 'error' : 'log'](a, b)
5545 //}
5646
57- //options = options || {};
58- //this.DSUtils.deepMixIn(options, defaults);
47+ // Create base adapter
5948 this . adapter = < JSData . DSHttpAdapterExtended > ( new httpAdapter ( options ) ) ;
6049
6150 // Override default get path implementation
6251 this . adapterGetPath = this . adapter . getPath ;
6352 this . adapterHTTP = this . adapter . HTTP ;
64- //this.adapterPOST = this.adapterPOST;
6553
6654
55+ // Override Get Path
6756 this . adapter . getPath = ( method : string , resourceConfig : JSData . DSResourceDefinition < any > , id : Object , options : JSData . DSConfiguration ) : string => {
6857 return this . getPath ( method , resourceConfig , id , options ) ;
6958 } ;
59+
60+ // Override HTTP
7061 this . adapter . HTTP = ( options : Object ) : JSData . JSDataPromise < JSData . DSHttpAdapterPromiseResolveType > => {
7162 return this . HTTP ( options ) ;
7263 } ;
73- //this.adapter.POST = this.POST;
7464 }
7565
7666 SerializeJsonResponse ( resourceConfig : JSData . DSResourceDefinition < any > , attrs : Object ) : any {
@@ -81,7 +71,7 @@ export class JsonApiAdapter implements JSData.IDSAdapter {
8171 DeSerializeJsonResponse ( resourceConfig : JSData . DSResourceDefinition < any > , response : JSData . DSHttpAdapterPromiseResolveType ) : any {
8272 //Only process JSON Api responses!!
8373 if ( Helper . JsonApiHelper . ContainsJsonApiContentTypeHeader ( response . headers ) ) {
84- // TODO : Decode Json API Error response
74+ // Decode Json API Error response
8575 if ( response . data . errors ) {
8676 response . data = Helper . JsonApiHelper . FromJsonApiError ( response . data ) ;
8777 } else {
@@ -203,18 +193,18 @@ export class JsonApiAdapter implements JSData.IDSAdapter {
203193 * @desc Configure serialization and deserialization for the request using
204194 * either axios or $http configuration options
205195 * @param {object } options axios or $http config options
206- * @returns {object } options copy of options with serializers configured
196+ * @returns {object } options copy of options with serializers configured for jsonapi
207197 * @memberOf JsonApiAdapter
208198 */
209199 configureSerializers ( options : JSData . DSConfiguration ) : any {
210200 options = this . DSUtils . copy ( options ) || { } ;
211201 options [ 'headers' ] = options [ 'headers' ] || { } ;
212202
213- //Jsoin Api requires accept header
203+ //Json Api requires accept header
214204 Helper . JsonApiHelper . AddJsonApiAcceptHeader ( options [ 'headers' ] ) ;
215205 Helper . JsonApiHelper . AddJsonApiContentTypeHeader ( options [ 'headers' ] ) ;
216206
217- // Ensure that we always call the JsonApi serializer first then any other serializers
207+ // Ensure that we always call the JsonApi serializer first then any other serializers
218208 var serialize = options [ 'serialize' ] || this . defaults . serialize ;
219209 if ( serialize ) {
220210 options [ 'serialize' ] = ( resourceConfig : JSData . DSResourceDefinition < any > , attrs : Object ) => {
@@ -226,7 +216,7 @@ export class JsonApiAdapter implements JSData.IDSAdapter {
226216 } ;
227217 }
228218
229- // Ensure that we always call the JsonApi deserializer first then any other deserializers
219+ // Ensure that we always call the JsonApi deserializer first then any other deserializers
230220 var deserialize = options [ 'deserialize' ] || this . defaults . deserialize ;
231221 if ( deserialize ) {
232222 options [ 'deserialize' ] = ( resourceConfig : JSData . DSResourceDefinition < any > , data : JSData . DSHttpAdapterPromiseResolveType ) => {
@@ -242,6 +232,13 @@ export class JsonApiAdapter implements JSData.IDSAdapter {
242232 }
243233
244234 // DSHttpAdapter uses axios or $http, so options are axios config objects or $http config options.
235+
236+ /**
237+ * @name HTTP
238+ * @desc Performs an HTTP request and receives resposne
239+ * @param options
240+ * @memberOf JsonApiAdapter
241+ */
245242 public HTTP ( options ?: Object ) : JSData . JSDataPromise < JSData . DSHttpAdapterPromiseResolveType > {
246243 return this . adapterHTTP . apply ( this . adapter , [ options ] )
247244 . then ( ( response : JSData . DSHttpAdapterPromiseResolveType ) => {
@@ -282,7 +279,7 @@ export class JsonApiAdapter implements JSData.IDSAdapter {
282279 //}
283280
284281
285- //IDSAdapter
282+ // IDSAdapter
286283 public create ( config : JSData . DSResourceDefinition < any > , attrs : Object , options ?: JSData . DSConfiguration ) : JSData . JSDataPromise < any > {
287284 let localOptions = this . configureSerializers ( options ) ;
288285
0 commit comments