@venly/venly-core-sdk
Version:
Javascrip/Typescript SDK for Venly's Web3 Services
49 lines • 2.01 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.VyResponseHelper = void 0;
const core_1 = require("../core");
const json_1 = require("./json");
class VyResponseHelper {
static processHttpResponse(jsonData, httpResponse, requestData, resultType) {
if (httpResponse.ok)
return this.processSuccess(jsonData, httpResponse, requestData, resultType);
return this.processError(jsonData, httpResponse, requestData);
}
static processError(jsonData, httpResponse, requestData) {
var apiResponse = new core_1.VyApiResponse();
apiResponse.success = false;
apiResponse.statusCode = httpResponse.status;
apiResponse.rawResponse = jsonData;
//Enveloped?
if (jsonData.success != null) {
var errorJson = jsonData.errors;
apiResponse.errors = json_1.JsonConvert.deserialize(errorJson, core_1.VyApiResponseError);
}
else {
//Auth Error
apiResponse.errors = [
new core_1.VyApiResponseError({
code: jsonData.error,
message: jsonData.error_description
})
];
}
return apiResponse;
}
static processSuccess(jsonData, httpResponse, requestData, resultType) {
var apiResponse = new core_1.VyApiResponse();
apiResponse.success = true;
apiResponse.statusCode = httpResponse.status;
apiResponse.rawResponse = jsonData;
//Data
var dataJson = requestData.isEnveloped ? jsonData.result : jsonData;
apiResponse.data = json_1.JsonConvert.deserialize(dataJson, resultType);
//Pagination
if (jsonData.pagination != null) {
apiResponse.pagination = json_1.JsonConvert.deserializeObject(jsonData.pagination, core_1.VyPagination);
}
return apiResponse;
}
}
exports.VyResponseHelper = VyResponseHelper;
//# sourceMappingURL=VyResponseHelper.js.map