@apihawk/gear-sdk
Version:
The ApiHawk GEAR SDK
97 lines (96 loc) • 3.6 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const billia_sdk_1 = require("@apihawk/billia-sdk");
const qs = require("qs");
const to_rest_resource_1 = require("./common/to-rest-resource");
class GearSDKJobs extends billia_sdk_1.BilliaSDKServiceBase {
/**
* List jobs
* @param {number} page
* @param {number} pageSize
* @param {{job_id?: number | number[]; worker_name?: string; job_hash?: string; descriptor?: string; columns?: string[]}} query
* @returns {Promise<IRestPaginatedResource<IGearJob>>}
*/
listJobs(page = 1, pageSize = 25, query) {
return __awaiter(this, void 0, void 0, function* () {
const filter = {
page,
page_size: pageSize,
where: []
};
if (query && query.columns) {
filter.columns = query.columns;
}
if (query && query.job_id) {
if (Array.isArray(query.job_id)) {
filter.where.push({
field: 'job_id',
where: 'and',
type: 'in',
values: query.job_id
});
}
else {
filter.where.push({
field: 'job_id',
where: 'and',
type: 'equalTo',
value: query.job_id
});
}
}
if (query && query.worker_name) {
filter.where.push({
field: 'worker_name',
where: 'and',
type: 'equalTo',
value: query.worker_name
});
}
if (query && query.descriptor) {
filter.where.push({
field: 'descriptor',
where: 'and',
type: 'equalTo',
value: query.descriptor
});
}
if (query && query.job_hash) {
filter.where.push({
field: 'job_hash',
where: 'and',
type: 'equalTo',
value: query.job_hash
});
}
const result = yield this.api.call({
url: `/job?${qs.stringify(filter)}`,
method: 'GET'
});
return to_rest_resource_1.default(result, 'job');
});
}
/**
* Get job
* @param {number} jobId
* @returns {Promise<IGearJob>}
*/
getJob(jobId) {
return __awaiter(this, void 0, void 0, function* () {
return yield this.api.call({
url: `/job/${jobId}`,
method: 'GET'
});
});
}
}
exports.GearSDKJobs = GearSDKJobs;