@apihawk/billia-sdk
Version:
The ApiHawk Billia SDK
84 lines (83 loc) • 3.35 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const billia_sdk_service_base_1 = require("../lib/billia-sdk-service-base");
const to_rest_resource_1 = require("./common/to-rest-resource");
class BilliaSDKDocument extends billia_sdk_service_base_1.BilliaSDKServiceBase {
/**
* Get documents metadata with pagination.
*/
getDocumentsMetadata(session, query, options) {
return __awaiter(this, void 0, void 0, function* () {
const q = query || {};
const filterData = {};
if (q.sort_by && q.sort_order) {
switch (q.sort_by) {
case 'document_id':
filterData.order = [{ field: 'document_id', sort: q.sort_order }];
break;
case 'date':
filterData.order = [{ field: 'created_at', sort: q.sort_order }];
break;
}
}
filterData.page = q.page || 1;
filterData.page_size = q.page_size || 25;
if (options && options.resource) {
filterData.where = [
{
field: 'resource',
where: 'and',
type: 'equalTo',
value: options.resource
}
];
}
if (options && options.resource_id) {
filterData.where = [
...(filterData.where || []),
{
field: 'identifier',
where: 'and',
type: 'equalTo',
value: options.resource_id
}
];
}
const response = yield this.api.call({
url: '/document/to-resource',
method: 'GET',
headers: {
Accept: 'application/hal+json'
},
query: filterData,
session
});
const documents = to_rest_resource_1.toRestResource(response, 'document_to_resource');
return documents;
});
}
/**
* Fetches a document metadata record by ID.
*/
getDocumentMetadataById(session, documentId) {
return __awaiter(this, void 0, void 0, function* () {
return this.api.call({
url: `/document/to-resource/${documentId}`,
method: 'GET',
headers: {
Accept: 'application/hal+json'
},
session
});
});
}
}
exports.BilliaSDKDocument = BilliaSDKDocument;