UNPKG

@dwn-protocol/id-sdk

Version:

SDK for accessing the features and capabilities

122 lines (97 loc) 2.73 kB
import type { IDAgent } from '../agent/index.js'; export class Services { private agent: IDAgent; private connectedDid: string; constructor(options: { agent: IDAgent, connectedDid: string }) { this.agent = options.agent; this.connectedDid = options.connectedDid; } async get(payload) { try { const headers = new Headers(); for (let header of payload.headers) { headers.append(header.name, header.value); } const response = await fetch(payload.uri, { method : 'GET', mode : 'cors', cache : 'no-cache', headers : headers, }); if (!response.ok) { return { status: response.status }; } const json = await response.json(); return json; } catch (e) { return { status: 400, error: e }; } } async post(payload) { try { const headers = new Headers(); for (let header of payload.headers) { headers.append(header.name, header.value); } const response = await fetch(payload.uri, { method : 'POST', mode : 'cors', cache : 'no-cache', headers : headers, body : JSON.stringify(payload.body), }); if (!response.ok) { return { status: response.status }; } const json = await response.json(); return json; } catch (e) { return { status: 400, error: e }; } } async put(payload) { try { const headers = new Headers(); for (let header of payload.headers) { headers.append(header.name, header.value); } const response = await fetch(payload.uri, { method : 'PUT', mode : 'cors', cache : 'no-cache', headers : headers, body : JSON.stringify(payload.body), }); if (!response.ok) { return { status: response.status }; } const json = await response.json(); return json; } catch (e) { return { status: 400 }; } } async proxy(payload) { try { const headers = new Headers(); for (let header of payload.headers) { headers.append(header.name, header.value); } const proxyRequest: any = { method : payload.method, mode : 'cors', cache : 'no-cache', headers : headers, }; payload?.body ? proxyRequest.body = JSON.stringify(payload) : undefined; const response = await fetch(payload.proxy, proxyRequest); if (!response.ok) { return { status: response.status, payload }; } const json = await response.json(); return json; } catch (e) { return { status: 400, error: e }; } } }