@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
JavaScript
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 };