UNPKG

@co2-storage/js-api

Version:
946 lines (835 loc) 24.2 kB
import { CommonHelpers } from './Common.js' export class FGHelpers { constructor() { this.commonHelpers = new CommonHelpers() } async signup(host, signedTokenRequest, refresh) { if(!signedTokenRequest) return new Promise((resolve, reject) => { reject({ error: "Invalid token request signature", result: null }) }) const signupUri = `${host}/co2-storage/api/v1/signup` const signupData = Object.assign(signedTokenRequest, {refresh: refresh}) const signupMethod = 'POST' const signupHeaders = { 'Accept': 'application/json', 'Content-Type': 'application/json' } const signupResponseType = null let signupResponse try { signupResponse = await this.commonHelpers.rest(signupUri, signupMethod, signupHeaders, signupResponseType, signupData) if(signupResponse.status > 299) { return new Promise((resolve, reject) => { reject({ error: signupResponse, result: null }) }) } } catch (error) { return new Promise((resolve, reject) => { reject({ error: error, result: null }) }) } return new Promise((resolve, reject) => { resolve({ error: null, result: signupResponse }) }) } async authenticate(host, token) { const authenticateUri = `${host}/co2-storage/api/v1/authenticate/${token}` const authenticateMethod = 'GET' const authenticateHeaders = { 'Accept': 'application/json' } const authenticateResponseType = null let authenticateResponse try { authenticateResponse = await this.commonHelpers.rest(authenticateUri, authenticateMethod, authenticateHeaders, authenticateResponseType) if(authenticateResponse.status > 299) { return new Promise((resolve, reject) => { reject({ error: authenticateResponse, result: null }) }) } } catch (error) { return new Promise((resolve, reject) => { reject({ error: error, result: null }) }) } return new Promise((resolve, reject) => { resolve({ error: null, result: authenticateResponse }) }) } async head(host, chainName) { const headUri = `${host}/co2-storage/api/v1/head${(chainName != undefined) ? '?chain_name=' + chainName : ''}` const headMethod = 'GET' const headHeaders = { 'Accept': 'application/json' } const headResponseType = null let headResponse try { headResponse = await this.commonHelpers.rest(headUri, headMethod, headHeaders, headResponseType) if(headResponse.status > 299) { return new Promise((resolve, reject) => { reject({ error: headResponse, result: null }) }) } } catch (error) { return new Promise((resolve, reject) => { reject({ error: error, result: null }) }) } return new Promise((resolve, reject) => { resolve({ error: null, result: headResponse }) }) } async updateHead(chainName, host, parent, head, account, token) { const updateHeadUri = `${host}/co2-storage/api/v1/update-head` const updateHeadData = { "chain_name": (chainName) ? chainName : null, "head": parent, "new_head": head, "account": account, "token": token } const updateHeadMethod = 'PUT' const updateHeadHeaders = { 'Accept': 'application/json', 'Content-Type': 'application/json' } const updateHeadResponseType = null let updateHeadResponse try { updateHeadResponse = await this.commonHelpers.rest(updateHeadUri, updateHeadMethod, updateHeadHeaders, updateHeadResponseType, updateHeadData) if(updateHeadResponse.status > 299) { return new Promise((resolve, reject) => { reject({ error: updateHeadResponse, result: null }) }) } } catch (error) { return new Promise((resolve, reject) => { reject({ error: error, result: null }) }) } return new Promise((resolve, reject) => { resolve({ error: null, result: updateHeadResponse }) }) } async estuaryKey(host, account, token) { token = token || process.env.FG_TOKEN if(token == undefined) return new Promise((resolve, reject) => { reject({ error: "Unauthenticated", result: null }) }) const estuaryKeyUri = `${host}/co2-storage/api/v1/estuary-key?account=${account}&token=${token}` const estuaryKeyMethod = 'GET' const estuaryKeyHeaders = { 'Accept': 'application/json' } const estuaryKeyResponseType = null let estuaryKeyResponse try { estuaryKeyResponse = await this.commonHelpers.rest(estuaryKeyUri, estuaryKeyMethod, estuaryKeyHeaders, estuaryKeyResponseType) if(estuaryKeyResponse.status > 299) { return new Promise((resolve, reject) => { reject({ error: estuaryKeyResponse, result: null }) }) } } catch (error) { return new Promise((resolve, reject) => { reject({ error: error, result: null }) }) } return new Promise((resolve, reject) => { resolve({ error: null, result: estuaryKeyResponse }) }) } async addEstuaryKey(host, account, key, validity, token) { token = token || process.env.FG_TOKEN if(token == undefined) return new Promise((resolve, reject) => { reject({ error: "Unauthenticated", result: null }) }) const addEstuaryKeyUri = `${host}/co2-storage/api/v1/add-estuary-key` const addEstuaryKeyData = { "account": account, "key": key, "validity": validity, "token": token } const addEstuaryKeyMethod = 'POST' const addEstuaryKeyHeaders = { 'Accept': 'application/json', 'Content-Type': 'application/json' } const addEstuaryKeyResponseType = null let addEstuaryKeyResponse try { addEstuaryKeyResponse = await this.commonHelpers.rest(addEstuaryKeyUri, addEstuaryKeyMethod, addEstuaryKeyHeaders, addEstuaryKeyResponseType, addEstuaryKeyData) if(addEstuaryKeyResponse.status > 299) { return new Promise((resolve, reject) => { reject({ error: addEstuaryKeyResponse, result: null }) }) } } catch (error) { return new Promise((resolve, reject) => { reject({ error: error, result: null }) }) } return new Promise((resolve, reject) => { resolve({ error: null, result: addEstuaryKeyResponse }) }) } async removeEstuaryKey(host, account, token) { token = token || process.env.FG_TOKEN if(token == undefined) return new Promise((resolve, reject) => { reject({ error: "Unauthenticated", result: null }) }) const removeEstuaryKeyUri = `${host}/co2-storage/api/v1/remove-estuary-key?account=${account}&token=${token}` const removeEstuaryKeyMethod = 'DELETE' const removeEstuaryKeyHeaders = { 'Accept': 'application/json' } const removeEstuaryKeyResponseType = null let removeEstuaryKeyResponse try { removeEstuaryKeyResponse = await this.commonHelpers.rest(removeEstuaryKeyUri, removeEstuaryKeyMethod, removeEstuaryKeyHeaders, removeEstuaryKeyResponseType) if(removeEstuaryKeyResponse.status > 299) { return new Promise((resolve, reject) => { reject({ error: removeEstuaryKeyResponse, result: null }) }) } } catch (error) { return new Promise((resolve, reject) => { reject({ error: error, result: null }) }) } return new Promise((resolve, reject) => { resolve({ error: null, result: removeEstuaryKeyResponse }) }) } async search(host, chainName, phrases, dataStructure, cid, parent, name, description, base, reference, contentCid, creator, createdFrom, createdTo, protocol, license, version, offset, limit, sortBy, sortDir, or) { chainName = (chainName) ? chainName : '' phrases = (phrases) ? phrases : '' dataStructure = (dataStructure) ? dataStructure : '' cid = (cid) ? cid : '' parent = (parent) ? parent : '' name = (name) ? name : '' description = (description) ? description : '' base = (base) ? base : '' reference = (reference) ? reference : '' contentCid = (contentCid) ? contentCid : '' creator = (creator) ? creator : '' createdFrom = (createdFrom) ? createdFrom : '' createdTo = (createdTo) ? createdTo : '' protocol = (protocol) ? protocol : '' license = (license) ? license : '' version = (version) ? version : '' offset = (offset) ? offset : '' limit = (limit) ? limit : '' sortBy = (sortBy) ? sortBy : '' sortDir = (sortDir) ? sortDir : '' or = (or) ? or : '' const searchUri = `${host}/co2-storage/api/v1/search?chain_name=${chainName}&phrases=${phrases}&data_structure=${dataStructure}&cid=${cid}&parent=${parent}&name=${name}&description=${description}&base=${base}&reference=${reference}&content_cid=${contentCid}&creator=${creator}&created_from=${createdFrom}&created_to=${createdTo}&protocol=${protocol}&license=${license}&version=${version}&offset=${offset}&limit=${limit}&sort_by=${sortBy}&sort_dir=${sortDir}&or=${or}` const searchMethod = 'GET' const searchHeaders = { 'Accept': 'application/json' } const searchResponseType = null let searchResponse try { searchResponse = await this.commonHelpers.rest(searchUri, searchMethod, searchHeaders, searchResponseType) if(searchResponse.status > 299) { return new Promise((resolve, reject) => { reject({ error: searchResponse, result: null }) }) } } catch (error) { return new Promise((resolve, reject) => { reject({ error: error, result: null }) }) } return new Promise((resolve, reject) => { resolve({ error: null, result: searchResponse }) }) } async queuePin(host, service, cid, name, account, token) { token = token || process.env.FG_TOKEN if(token == undefined) return new Promise((resolve, reject) => { reject({ error: "Unauthenticated", result: null }) }) const queuePinUri = `${host}/co2-storage/api/v1/queue-pin` const queuePinData = { "service": service, "cid": cid, "name": name, "account": account, "token": token } const queuePinMethod = 'POST' const queuePinHeaders = { 'Accept': 'application/json', 'Content-Type': 'application/json' } const queuePinResponseType = null let queuePinResponse try { queuePinResponse = await this.commonHelpers.rest(queuePinUri, queuePinMethod, queuePinHeaders, queuePinResponseType, queuePinData) if(queuePinResponse.status > 299) { return new Promise((resolve, reject) => { reject({ error: queuePinResponse, result: null }) }) } } catch (error) { return new Promise((resolve, reject) => { reject({ error: error, result: null }) }) } return new Promise((resolve, reject) => { resolve({ error: null, result: queuePinResponse }) }) } async removeUpdatedContent(host, cid, account, token) { token = token || process.env.FG_TOKEN if(token == undefined) return new Promise((resolve, reject) => { reject({ error: "Unauthenticated", result: null }) }) const removeUpdatedContentUri = `${host}/co2-storage/api/v1/remove-updated-content?cid=${cid}&account=${account}&token=${token}` const removeUpdatedContentMethod = 'DELETE' const removeUpdatedContentHeaders = { 'Accept': 'application/json' } const removeUpdatedContentResponseType = null let removeUpdatedContentResponse try { removeUpdatedContentResponse = await this.commonHelpers.rest(removeUpdatedContentUri, removeUpdatedContentMethod, removeUpdatedContentHeaders, removeUpdatedContentResponseType) if(removeUpdatedContentResponse.status > 299) { return new Promise((resolve, reject) => { reject({ error: removeUpdatedContentResponse, result: null }) }) } } catch (error) { return new Promise((resolve, reject) => { reject({ error: error, result: null }) }) } return new Promise((resolve, reject) => { resolve({ error: null, result: removeUpdatedContentResponse }) }) } async listDataChains(host, offset, limit) { offset = (offset) ? offset : '' limit = (limit) ? limit : '' const listDataChainsUri = `${host}/co2-storage/api/v1/list-data-chains?offset=${offset}&limit=${limit}` const listDataChainsMethod = 'GET' const listDataChainsHeaders = { 'Accept': 'application/json' } const listDataChainsResponseType = null let listDataChainsResponse try { listDataChainsResponse = await this.commonHelpers.rest(listDataChainsUri, listDataChainsMethod, listDataChainsHeaders, listDataChainsResponseType) if(listDataChainsResponse.status > 299) { return new Promise((resolve, reject) => { reject({ error: listDataChainsResponse, result: null }) }) } } catch (error) { return new Promise((resolve, reject) => { reject({ error: error, result: null }) }) } return new Promise((resolve, reject) => { resolve({ error: null, result: listDataChainsResponse }) }) } async runBacalhauJob(host, account, job, parameters, inputs, container, commands, swarm, token) { token = token || process.env.FG_TOKEN if(token == undefined) return new Promise((resolve, reject) => { reject({ error: "Unauthenticated", result: null }) }) const runBacalhauJobUri = `${host}/co2-storage/api/v1/run-bacalhau-job` const runBacalhauJobData = { "token": token, "type": job, "parameters": parameters, "inputs": inputs, "container": container, "commands": commands, "swarm": swarm } const runBacalhauJobMethod = 'POST' const runBacalhauJobHeaders = { 'Accept': 'application/json', 'Content-Type': 'application/json' } const runBacalhauJobResponseType = null let runBacalhauJobResponse try { runBacalhauJobResponse = await this.commonHelpers.rest(runBacalhauJobUri, runBacalhauJobMethod, runBacalhauJobHeaders, runBacalhauJobResponseType, runBacalhauJobData) if(runBacalhauJobResponse.status > 299) { return new Promise((resolve, reject) => { reject({ error: runBacalhauJobResponse, result: null }) }) } } catch (error) { return new Promise((resolve, reject) => { reject({ error: error, result: null }) }) } return new Promise((resolve, reject) => { resolve({ error: null, result: runBacalhauJobResponse }) }) } async bacalhauJobStatus(host, account, job, token) { token = token || process.env.FG_TOKEN if(token == undefined) return new Promise((resolve, reject) => { reject({ error: "Unauthenticated", result: null }) }) const bacalhauJobStatusUri = `${host}/co2-storage/api/v1/bacalhau-job-status?account=${account}&token=${token}&job=${job}` const bacalhauJobStatusMethod = 'GET' const bacalhauJobStatusHeaders = { 'Accept': 'application/json' } const bacalhauJobStatusResponseType = null let bacalhauJobStatusResponse try { bacalhauJobStatusResponse = await this.commonHelpers.rest(bacalhauJobStatusUri, bacalhauJobStatusMethod, bacalhauJobStatusHeaders, bacalhauJobStatusResponseType) if(bacalhauJobStatusResponse.status > 299) { return new Promise((resolve, reject) => { reject({ error: bacalhauJobStatusResponse, result: null }) }) } } catch (error) { return new Promise((resolve, reject) => { reject({ error: error, result: null }) }) } return new Promise((resolve, reject) => { resolve({ error: null, result: bacalhauJobStatusResponse }) }) } async addCborDag(host, dag, token) { token = token || process.env.FG_TOKEN if(token == undefined) return new Promise((resolve, reject) => { reject({ error: "Unauthenticated", result: null }) }) const addWalletBlockUri = `${host}/co2-storage/api/v1/add-cbor-dag` const addWalletBlockData = { "token": token, "dag": dag } const addWalletBlockMethod = 'POST' const addWalletBlockHeaders = { 'Accept': 'application/json', 'Content-Type': 'application/json' } const addWalletBlockResponseType = null let addWalletBlockResponse try { addWalletBlockResponse = await this.commonHelpers.rest(addWalletBlockUri, addWalletBlockMethod, addWalletBlockHeaders, addWalletBlockResponseType, addWalletBlockData) if(addWalletBlockResponse.status > 299) { return new Promise((resolve, reject) => { reject({ error: addWalletBlockResponse, result: null }) }) } } catch (error) { return new Promise((resolve, reject) => { reject({ error: error, result: null }) }) } return new Promise((resolve, reject) => { resolve({ error: null, result: addWalletBlockResponse }) }) } async updateProfileName(host, name, account, token) { const updateProfileNameUri = `${host}/co2-storage/api/v1/update-profile-name` const updateProfileNameData = { "name": name, "account": account, "token": token } const updateProfileNameMethod = 'PUT' const updateProfileNameHeaders = { 'Accept': 'application/json', 'Content-Type': 'application/json' } const updateProfileNameResponseType = null let updateProfileNameResponse try { updateProfileNameResponse = await this.commonHelpers.rest(updateProfileNameUri, updateProfileNameMethod, updateProfileNameHeaders, updateProfileNameResponseType, updateProfileNameData) if(updateProfileNameResponse.status > 299) { return new Promise((resolve, reject) => { reject({ error: updateProfileNameResponse, result: null }) }) } } catch (error) { return new Promise((resolve, reject) => { reject({ error: error, result: null }) }) } return new Promise((resolve, reject) => { resolve({ error: null, result: updateProfileNameResponse }) }) } async updateProfileDefaultDataLicense(host, defaultDataLicense, account, token) { const updateProfileDefaultDataLicenseUri = `${host}/co2-storage/api/v1/update-profile-default-data-license` const updateProfileDefaultDataLicenseData = { "default_data_license": defaultDataLicense, "account": account, "token": token } const updateProfileDefaultDataLicenseMethod = 'PUT' const updateProfileDefaultDataLicenseHeaders = { 'Accept': 'application/json', 'Content-Type': 'application/json' } const updateProfileDefaultDataLicenseResponseType = null let updateProfileDefaultDataLicenseResponse try { updateProfileDefaultDataLicenseResponse = await this.commonHelpers.rest(updateProfileDefaultDataLicenseUri, updateProfileDefaultDataLicenseMethod, updateProfileDefaultDataLicenseHeaders, updateProfileDefaultDataLicenseResponseType, updateProfileDefaultDataLicenseData) if(updateProfileDefaultDataLicenseResponse.status > 299) { return new Promise((resolve, reject) => { reject({ error: updateProfileDefaultDataLicenseResponse, result: null }) }) } } catch (error) { return new Promise((resolve, reject) => { reject({ error: error, result: null }) }) } return new Promise((resolve, reject) => { resolve({ error: null, result: updateProfileDefaultDataLicenseResponse }) }) } async accountDataSize(host, account, token) { token = token || process.env.FG_TOKEN if(token == undefined) return new Promise((resolve, reject) => { reject({ error: "Unauthenticated", result: null }) }) const accountDataSizeUri = `${host}/co2-storage/api/v1/account-data-size?account=${account}&token=${token}` const accountDataSizeMethod = 'GET' const accountDataSizeHeaders = { 'Accept': 'application/json' } const accountDataSizeResponseType = null let accountDataSizeResponse try { accountDataSizeResponse = await this.commonHelpers.rest(accountDataSizeUri, accountDataSizeMethod, accountDataSizeHeaders, accountDataSizeResponseType) if(accountDataSizeResponse.status > 299) { return new Promise((resolve, reject) => { reject({ error: accountDataSizeResponse, result: null }) }) } } catch (error) { return new Promise((resolve, reject) => { reject({ error: error, result: null }) }) } return new Promise((resolve, reject) => { resolve({ error: null, result: accountDataSizeResponse }) }) } async searchFunctions(host, phrases, protocol, version, name, description, cid, functionType, functionContainer, inputTypes, outputTypes, retired, creator, createdFrom, createdTo, offset, limit, sortBy, sortDir) { phrases = (phrases) ? phrases : '' protocol = (protocol) ? protocol : '' version = (version) ? version : '' name = (name) ? name : '' description = (description) ? description : '' cid = (cid) ? cid : '' functionType = (functionType) ? functionType : '' functionContainer = (functionContainer) ? functionContainer : '' inputTypes = (inputTypes) ? inputTypes.join(",") : '' outputTypes = (outputTypes) ? outputTypes.join(",") : '' retired = (retired) ? retired : '' creator = (creator) ? creator : '' createdFrom = (createdFrom) ? createdFrom : '' createdTo = (createdTo) ? createdTo : '' offset = (offset) ? offset : '' limit = (limit) ? limit : '' sortBy = (sortBy) ? sortBy : '' sortDir = (sortDir) ? sortDir : '' const searchUri = `${host}/co2-storage/api/v1/search-functions?phrases=${phrases}&protocol=${protocol}&version=${version}&name=${name}&description=${description}&cid=${cid}&function_type=${functionType}&function_container=${functionContainer}&input_types=${inputTypes}&output_types=${outputTypes}&retired=${retired}&creator=${creator}&created_from=${createdFrom}&created_to=${createdTo}&offset=${offset}&limit=${limit}&sort_by=${sortBy}&sort_dir=${sortDir}` const searchMethod = 'GET' const searchHeaders = { 'Accept': 'application/json' } const searchResponseType = null let searchResponse try { searchResponse = await this.commonHelpers.rest(searchUri, searchMethod, searchHeaders, searchResponseType) if(searchResponse.status > 299) { return new Promise((resolve, reject) => { reject({ error: searchResponse, result: null }) }) } } catch (error) { return new Promise((resolve, reject) => { reject({ error: error, result: null }) }) } return new Promise((resolve, reject) => { resolve({ error: null, result: searchResponse }) }) } async searchPipelines(host, phrases, protocol, version, name, description, cid, creator, createdFrom, createdTo, offset, limit, sortBy, sortDir) { phrases = (phrases) ? phrases : '' protocol = (protocol) ? protocol : '' version = (version) ? version : '' name = (name) ? name : '' description = (description) ? description : '' cid = (cid) ? cid : '' creator = (creator) ? creator : '' createdFrom = (createdFrom) ? createdFrom : '' createdTo = (createdTo) ? createdTo : '' offset = (offset) ? offset : '' limit = (limit) ? limit : '' sortBy = (sortBy) ? sortBy : '' sortDir = (sortDir) ? sortDir : '' const searchUri = `${host}/co2-storage/api/v1/search-pipelines?phrases=${phrases}&protocol=${protocol}&version=${version}&name=${name}&description=${description}&cid=${cid}&creator=${creator}&created_from=${createdFrom}&created_to=${createdTo}&offset=${offset}&limit=${limit}&sort_by=${sortBy}&sort_dir=${sortDir}` const searchMethod = 'GET' const searchHeaders = { 'Accept': 'application/json' } const searchResponseType = null let searchResponse try { searchResponse = await this.commonHelpers.rest(searchUri, searchMethod, searchHeaders, searchResponseType) if(searchResponse.status > 299) { return new Promise((resolve, reject) => { reject({ error: searchResponse, result: null }) }) } } catch (error) { return new Promise((resolve, reject) => { reject({ error: error, result: null }) }) } return new Promise((resolve, reject) => { resolve({ error: null, result: searchResponse }) }) } }