UNPKG

@apihawk/gear-sdk

Version:

The ApiHawk GEAR SDK

97 lines (96 loc) 3.6 kB
"use strict"; 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;