137 lines
3.4 KiB
JavaScript
137 lines
3.4 KiB
JavaScript
/*
|
|
|
|
To be the common data model for data return from api
|
|
|
|
*/
|
|
import { Base } from './Base';
|
|
|
|
export class APIReturnHandler extends Base {
|
|
|
|
constructor( options = {} ) {
|
|
_.defaults( options, {
|
|
result_data: null,
|
|
delegate: null
|
|
} );
|
|
|
|
super( options );
|
|
}
|
|
|
|
isValid() {
|
|
if ( Global.isSet( this.get( 'result_data' ).api_retval ) && this.get( 'result_data' ).api_retval === false ) {
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
getDetails() {
|
|
if ( Global.isSet( this.get( 'result_data' ).api_details ) && Global.isSet( this.get( 'result_data' ).api_details.details ) ) {
|
|
return this.get( 'result_data' ).api_details.details;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
getPagerData() {
|
|
if ( Global.isSet( this.get( 'result_data' ).api_details ) && Global.isSet( this.get( 'result_data' ).api_details.pager ) ) {
|
|
return this.get( 'result_data' ).api_details.pager;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
getResult() {
|
|
|
|
var result;
|
|
if ( Global.isSet( this.get( 'result_data' ).api_retval ) ) {
|
|
result = this.get( 'result_data' ).api_retval;
|
|
} else {
|
|
result = this.get( 'result_data' );
|
|
}
|
|
|
|
if ( typeof result === 'undefined' ) {
|
|
result = null;
|
|
} else if ( $.type( result ) === 'array' && result.length === 0 ) {
|
|
result = {};
|
|
}
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
getCode() {
|
|
if ( Global.isSet( this.get( 'result_data' ).api_details ) && Global.isSet( this.get( 'result_data' ).api_details.code ) ) {
|
|
return this.get( 'result_data' ).api_details.code;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
getDescription() {
|
|
if ( Global.isSet( this.get( 'result_data' ).api_details ) && Global.isSet( this.get( 'result_data' ).api_details.description ) ) {
|
|
return this.get( 'result_data' ).api_details.description;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
getRecordDetails() {
|
|
if ( Global.isSet( this.get( 'result_data' ).api_details ) && Global.isSet( this.get( 'result_data' ).api_details.record_details ) ) {
|
|
return this.get( 'result_data' ).api_details.record_details;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
getTotalRecords() {
|
|
if ( Global.isSet( this.get( 'result_data' ).api_details ) && Global.isSet( this.get( 'result_data' ).api_details.record_details ) &&
|
|
Global.isSet( this.get( 'result_data' ).api_details.record_details.total_records ) ) {
|
|
return this.get( 'result_data' ).api_details.record_details.total_records;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
getValidRecords() {
|
|
if ( Global.isSet( this.get( 'result_data' ).api_details ) && Global.isSet( this.get( 'result_data' ).api_details.record_details ) &&
|
|
Global.isSet( this.get( 'result_data' ).api_details.record_details.valid_records ) ) {
|
|
return this.get( 'result_data' ).api_details.record_details.valid_records;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
getInValidRecords() {
|
|
if ( Global.isSet( this.get( 'result_data' ).api_details ) && Global.isSet( this.get( 'result_data' ).api_details.record_details ) &&
|
|
Global.isSet( this.get( 'result_data' ).api_details.record_details.invalid_records ) ) {
|
|
return this.get( 'result_data' ).api_details.record_details.invalid_records;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
getAttributeInAPIDetails( attrName ) {
|
|
let result_data = this.get( 'result_data' );
|
|
|
|
if ( result_data && result_data.api_details ) {
|
|
return result_data.api_details[attrName];
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
getDetailsAsString() {
|
|
var errorInfo = '';
|
|
|
|
$.each( this.getDetails(), function( index, errorItem ) {
|
|
|
|
for ( var i in errorItem ) {
|
|
errorInfo += errorItem[i][0] + '\r';
|
|
}
|
|
} );
|
|
|
|
return errorInfo;
|
|
}
|
|
|
|
}
|