UNPKG

@underpostnet/underpost

Version:

Underpost Platform — end-to-end CI/CD and application-delivery toolchain CLI. Covers bare metal, Kubernetes, K3s, kubeadm, LXD, container/image orchestration, secrets, databases, cron jobs, monitoring, SSH, runners, PWA + Workbox delivery, and release orc

135 lines (134 loc) 4.04 kB
import { Auth } from '../../components/core/Auth.js'; import { loggerFactory } from '../../components/core/Logger.js'; import { getApiBaseUrl, headersFactory, payloadFactory } from '../core/core.service.js'; const logger = loggerFactory(import.meta); logger.info('Load service'); const endpoint = 'document'; class DocumentService { static post = (options = { id: '', body: {} }) => new Promise((resolve, reject) => fetch(getApiBaseUrl({ id: options.id, endpoint }), { method: 'POST', headers: headersFactory(), credentials: 'include', body: payloadFactory(options.body), }) .then(async (res) => { return await res.json(); }) .then((res) => { logger.info(res); return resolve(res); }) .catch((error) => { logger.error(error); return reject(error); }), ); static get = (options = { id: '' }) => new Promise((resolve, reject) => { const url = new URL(getApiBaseUrl({ id: options.id, endpoint })); if (options.params) { Object.keys(options.params).forEach((key) => url.searchParams.append(key, options.params[key])); } fetch(url, { method: 'GET', headers: headersFactory(), credentials: 'include', }) .then(async (res) => { return await res.json(); }) .then((res) => { logger.info(res); return resolve(res); }) .catch((error) => { logger.error(error); return reject(error); }); }); static delete = (options = { id: '', body: {} }) => new Promise((resolve, reject) => fetch(getApiBaseUrl({ id: options.id, endpoint }), { method: 'DELETE', headers: headersFactory(), credentials: 'include', body: payloadFactory(options.body), }) .then(async (res) => { return await res.json(); }) .then((res) => { logger.info(res); return resolve(res); }) .catch((error) => { logger.error(error); return reject(error); }), ); static put = (options = { id: '', body: {} }) => new Promise((resolve, reject) => fetch(getApiBaseUrl({ id: options.id, endpoint }), { method: 'PUT', headers: headersFactory(), credentials: 'include', body: payloadFactory(options.body), }) .then(async (res) => { return await res.json(); }) .then((res) => { logger.info(res); return resolve(res); }) .catch((error) => { logger.error(error); return reject(error); }), ); static patch = (options = { id: '', action: '' }) => new Promise((resolve, reject) => fetch(getApiBaseUrl({ id: `${options.id}/${options.action}`, endpoint }), { method: 'PATCH', headers: headersFactory(), credentials: 'include', }) .then(async (res) => { return await res.json(); }) .then((res) => { logger.info(res); return resolve(res); }) .catch((error) => { logger.error(error); return reject(error); }), ); static high = (options = { params: {} }) => new Promise((resolve, reject) => { const url = new URL(getApiBaseUrl({ id: 'public/high', endpoint })); if (options.params) { Object.keys(options.params).forEach((key) => url.searchParams.append(key, options.params[key])); } fetch(url, { method: 'GET', headers: headersFactory(), credentials: 'include', }) .then(async (res) => { return await res.json(); }) .then((res) => { logger.info(res); return resolve(res); }) .catch((error) => { logger.error(error); return reject(error); }); }); } export { DocumentService };