@apillon/sdk
Version:
▶◀ Apillon SDK for NodeJS ▶◀
44 lines • 1.9 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Computing = void 0;
const apillon_1 = require("../../lib/apillon");
const apillon_api_1 = require("../../lib/apillon-api");
const common_1 = require("../../lib/common");
const computing_contract_1 = require("./computing-contract");
class Computing extends apillon_1.ApillonModule {
constructor() {
super(...arguments);
/**
* API url for computing.
*/
this.API_PREFIX = '/computing/contracts';
}
/**
* Lists all computing contracts.
* @param {IContractListFilters} params Filter for listing collections.
* @returns Array of ComputingContract objects.
*/
async listContracts(params) {
const url = (0, common_1.constructUrlWithQueryParams)(this.API_PREFIX, params);
const data = await apillon_api_1.ApillonApi.get(url);
return Object.assign(Object.assign({}, data), { items: data.items.map((contract) => new computing_contract_1.ComputingContract(contract.contractUuid, contract, this.config)) });
}
/**
* Creates a new computing contract based on the provided data.
* @param {ICreateComputingContract} data Data for creating the contract.
* @returns {ComputingContract} Newly created computing contract.
*/
async createContract(data) {
const contract = await apillon_api_1.ApillonApi.post(this.API_PREFIX, Object.assign(Object.assign({}, data), { contractType: 1 }));
return new computing_contract_1.ComputingContract(contract.contractUuid, contract, this.config);
}
/**
* @param uuid Unique contract identifier.
* @returns An empty instance of ComputingContract.
*/
contract(uuid) {
return new computing_contract_1.ComputingContract(uuid, null, this.config);
}
}
exports.Computing = Computing;
//# sourceMappingURL=computing.js.map