@co2-storage/js-api
Version:
JS API for co2.storage
409 lines (362 loc) • 10.2 kB
JavaScript
import { CommonHelpers } from './Common.js'
export class EstuaryHelpers {
constructor() {
this.commonHelpers = new CommonHelpers()
}
async getEstuaryCollections(host) {
const getAccountsUri = `${host}/collections/`
const getAccountsMethod = 'GET'
const getAccountsHeaders = {
'Authorization': `Bearer ${process.env.ESTUARY_API_KEY}`,
'Accept': 'application/json'
}
const getAccountsResponseType = null
let getAccountsResponse
try {
getAccountsResponse = await this.commonHelpers.rest(getAccountsUri, getAccountsMethod, getAccountsHeaders, getAccountsResponseType)
if(getAccountsResponse.status != 200) {
return new Promise((resolve, reject) => {
reject({
error: getAccountsResponse,
result: null
})
})
}
} catch (error) {
return new Promise((resolve, reject) => {
reject({
error: error,
result: null
})
})
}
return new Promise((resolve, reject) => {
resolve({
error: null,
result: getAccountsResponse
})
})
}
async createEstuaryCollection(host, name, description) {
const createAccountsCollectionUri = `${host}/collections/`
const createAccountsCollectionData = {
"name": name,
"description": description
}
const createAccountsCollectionMethod = 'POST'
const createAccountsCollectionHeaders = {
'Authorization': `Bearer ${process.env.ESTUARY_API_KEY}`,
'Accept': 'application/json',
'Content-Type': 'application/json'
}
const createAccountsCollectionResponseType = null
let createAccountsCollectionResponse
try {
createAccountsCollectionResponse = await this.commonHelpers.rest(createAccountsCollectionUri, createAccountsCollectionMethod,
createAccountsCollectionHeaders, createAccountsCollectionResponseType, createAccountsCollectionData)
if(createAccountsCollectionResponse.status > 299) {
return new Promise((resolve, reject) => {
reject({
error: createAccountsCollectionResponse,
result: null
})
})
}
} catch (error) {
return new Promise((resolve, reject) => {
reject({
error: error,
result: null
})
})
}
return new Promise((resolve, reject) => {
resolve({
error: null,
result: createAccountsCollectionResponse
})
})
}
async getEstuaryCollectionContents(host, collectionUUID) {
const collectionContentsUri = `${host}/collections/${collectionUUID}`
const collectionContentsMethod = 'GET'
const collectionContentsHeaders = {
'Authorization': `Bearer ${process.env.ESTUARY_API_KEY}`,
'Accept': 'application/json',
'Content-Type': 'application/json'
}
const collectionContentsResponseType = null
let collectionContentsResponse
try {
collectionContentsResponse = await this.commonHelpers.rest(collectionContentsUri, collectionContentsMethod,
collectionContentsHeaders, collectionContentsResponseType)
if(collectionContentsResponse.status != 200) {
return new Promise((resolve, reject) => {
reject({
error: collectionContentsResponse,
result: null
})
})
}
} catch (error) {
return new Promise((resolve, reject) => {
reject({
error: error,
result: null
})
})
}
return new Promise((resolve, reject) => {
resolve({
error: null,
result: collectionContentsResponse
})
})
}
async deleteEstuaryCollection(host, collectionUUID) {
const deleteAccountsCollectionUri = `${host}/collections/${collectionUUID}`
const deleteAccountsCollectionMethod = 'DELETE'
const deleteAccountsCollectionHeaders = {
'Authorization': `Bearer ${process.env.ESTUARY_API_KEY}`,
'Accept': 'application/json',
'Content-Type': 'application/json'
}
const deleteAccountsCollectionResponseType = null
let deleteAccountsCollectionResponse
try {
deleteAccountsCollectionResponse = await this.commonHelpers.rest(deleteAccountsCollectionUri, deleteAccountsCollectionMethod,
deleteAccountsCollectionHeaders, deleteAccountsCollectionResponseType)
if(deleteAccountsCollectionResponse.status > 299) {
return new Promise((resolve, reject) => {
reject({
error: deleteAccountsCollectionResponse,
result: null
})
})
}
} catch (error) {
return new Promise((resolve, reject) => {
reject({
error: error,
result: null
})
})
}
return new Promise((resolve, reject) => {
resolve({
error: null,
result: deleteAccountsCollectionResponse
})
})
}
async createEstuaryApiKey(host, permissions, expiry) {
const createApiKeyUri = `${host}/user/api-keys?perms=${permissions}&expiry=${expiry}`
const createApiKeyData = {
"perms": permissions,
"expiry": expiry
}
const createApiKeyMethod = 'POST'
const createApiKeyHeaders = {
'Authorization': `Bearer ${process.env.ESTUARY_API_KEY}`,
'Accept': 'application/json',
'Content-Type': 'application/json'
}
const createApiKeyResponseType = null
let createApiKeyResponse
try {
createApiKeyResponse = await this.commonHelpers.rest(createApiKeyUri, createApiKeyMethod,
createApiKeyHeaders, createApiKeyResponseType, createApiKeyData)
if(createApiKeyResponse.status > 299) {
return new Promise((resolve, reject) => {
reject({
error: createApiKeyResponse,
result: null
})
})
}
} catch (error) {
return new Promise((resolve, reject) => {
reject({
error: error,
result: null
})
})
}
return new Promise((resolve, reject) => {
resolve({
error: null,
result: createApiKeyResponse
})
})
}
async deleteEstuaryApiKey(host, key) {
const deleteEstuaryApiKeyUri = `${host}/user/api-keys/${key}`
const deleteEstuaryApiKeyMethod = 'DELETE'
const deleteEstuaryApiKeyHeaders = {
'Authorization': `Bearer ${process.env.ESTUARY_API_KEY}`,
'Accept': 'application/json',
'Content-Type': 'application/json'
}
const deleteEstuaryApiKeyResponseType = null
let deleteEstuaryApiKeyResponse
try {
deleteEstuaryApiKeyResponse = await this.commonHelpers.rest(deleteEstuaryApiKeyUri, deleteEstuaryApiKeyMethod,
deleteEstuaryApiKeyHeaders, deleteEstuaryApiKeyResponseType)
if(deleteEstuaryApiKeyResponse.status > 299) {
return new Promise((resolve, reject) => {
reject({
error: deleteEstuaryApiKeyResponse,
result: null
})
})
}
} catch (error) {
return new Promise((resolve, reject) => {
reject({
error: error,
result: null
})
})
}
return new Promise((resolve, reject) => {
resolve({
error: null,
result: deleteEstuaryApiKeyResponse
})
})
}
async pinEstuary(host, name, cid) {
const pinUri = `${host}/pinning/pins`
const pinData = {
"name": name,
"cid": cid
}
const pinMethod = 'POST'
const pinHeaders = {
'Authorization': `Bearer ${process.env.ESTUARY_API_KEY}`,
'Accept': 'application/json',
'Content-Type': 'application/json'
}
const pinResponseType = null
let pinResponse
try {
pinResponse = await this.commonHelpers.rest(pinUri, pinMethod,
pinHeaders, pinResponseType, pinData)
if(pinResponse.status > 299) {
return new Promise((resolve, reject) => {
reject({
error: pinResponse,
result: null
})
})
}
} catch (error) {
return new Promise((resolve, reject) => {
reject({
error: error,
result: null
})
})
}
return new Promise((resolve, reject) => {
resolve({
error: null,
result: pinResponse
})
})
}
async addCidToEstuaryCollection(host, collectionUUID, cid, name, path) {
const addCidToCollectionUri = `${host}/content/add-ipfs`
const addCidToCollectionData = {
"filename": name,
"root": cid,
"coluuid": collectionUUID,
"dir": (path != undefined) ? path : "/"
}
const addCidToCollectionMethod = 'POST'
const addCidToCollectionHeaders = {
'Authorization': `Bearer ${process.env.ESTUARY_API_KEY}`,
'Accept': 'application/json',
'Content-Type': 'application/json'
}
const addCidToCollectionResponseType = null
let addCidToCollectionResponse
try {
addCidToCollectionResponse = await this.commonHelpers.rest(addCidToCollectionUri, addCidToCollectionMethod,
addCidToCollectionHeaders, addCidToCollectionResponseType, addCidToCollectionData)
if(addCidToCollectionResponse.status > 299) {
return new Promise((resolve, reject) => {
reject({
error: addCidToCollectionResponse,
result: null
})
})
}
} catch (error) {
return new Promise((resolve, reject) => {
reject({
error: error,
result: null
})
})
}
return new Promise((resolve, reject) => {
resolve({
error: null,
result: addCidToCollectionResponse
})
})
}
async listEstuaryPins(host) {
const listPinsUri = `${host}/pinning/pins`
const listPinsMethod = 'GET'
const listPinsHeaders = {
'Authorization': `Bearer ${process.env.ESTUARY_API_KEY}`,
'Accept': 'application/json',
'Content-Type': 'application/json'
}
const listPinsResponseType = null
const listPinsResponse = await this.commonHelpers.rest(listPinsUri, listPinsMethod,
listPinsHeaders, listPinsResponseType)
if(listPinsResponse.status != 200) {
return new Promise((resolve, reject) => {
reject({
error: listPinsResponse,
result: null
})
})
}
return new Promise((resolve, reject) => {
resolve({
error: null,
result: listPinsResponse.data.results
})
})
}
async removeEstuaryPin(host, pinId) {
const removePinUri = `${host}/pinning/pins/${pinId}`
const removePinMethod = 'DELETE'
const removePinHeaders = {
'Authorization': `Bearer ${process.env.ESTUARY_API_KEY}`,
'Accept': 'application/json',
'Content-Type': 'application/json'
}
const removePinResponseType = null
const removePinResponse = await this.commonHelpers.rest(removePinUri, removePinMethod,
removePinHeaders, removePinResponseType)
if(removePinResponse.status > 299) {
return new Promise((resolve, reject) => {
reject({
error: removePinResponse,
result: null
})
})
}
return new Promise((resolve, reject) => {
resolve({
error: null,
result: removePinResponse
})
})
}
}