UNPKG

@ethersphere/bee-js

Version:
77 lines 2.02 kB
import { Types } from 'cafe-utility'; import { http } from "../utils/http.js"; import { Reference } from "../utils/typed-bytes.js"; const PINNING_ENDPOINT = 'pins'; /** * Pin data with given reference * * @param requestOptions Options for making requests * @param reference Bee data reference */ export async function pin(requestOptions, reference) { await http(requestOptions, { method: 'post', responseType: 'json', url: `${PINNING_ENDPOINT}/${reference}` }); } /** * Unpin data with given reference * * @param requestOptions Options for making requests * @param reference Bee data reference */ export async function unpin(requestOptions, reference) { await http(requestOptions, { method: 'delete', responseType: 'json', url: `${PINNING_ENDPOINT}/${reference}` }); } /** * Get pin status for specific address. * * @param requestOptions Options for making requests * @param reference * @throws Error if given address is not pinned */ export async function getPin(requestOptions, reference) { const response = await http(requestOptions, { method: 'get', responseType: 'json', url: `${PINNING_ENDPOINT}/${reference}` }); const body = Types.asObject(response.data, { name: 'response.data' }); return { reference: new Reference(Types.asString(body.reference, { name: 'reference' })) }; } /** * Get list of all pins * * @param requestOptions Options for making requests */ export async function getAllPins(requestOptions) { const response = await http(requestOptions, { method: 'get', responseType: 'json', url: `${PINNING_ENDPOINT}` }); const body = Types.asObject(response.data, { name: 'response.data' }); // TODO: https://github.com/ethersphere/bee/issues/4964 if (body.references === null) { return []; } const references = Types.asArray(body.references, { name: 'references' }).map(x => Types.asString(x, { name: 'reference' })); return references.map(x => new Reference(x)); }