UNPKG

@underpostnet/underpost

Version:
98 lines (91 loc) 2.6 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 = 'user'; const UserMock = { default: { username: 'guest', email: `guest@${location.hostname}`, role: 'guest', }, }; const UserService = { post: (options = { id: '', body: {} }) => new Promise((resolve, reject) => fetch(getApiBaseUrl({ id: options.id, endpoint }), { method: 'POST', headers: headersFactory(), 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); }), ), get: (options = { id: '' }) => new Promise((resolve, reject) => fetch(getApiBaseUrl({ id: options.id, endpoint }), { method: 'GET', headers: headersFactory(), }) .then(async (res) => { return await res.json(); }) .then((res) => { logger.info(res); return resolve(res); }) .catch((error) => { logger.error(error); return reject(error); }), ), delete: (options = { id: '', body: {} }) => new Promise((resolve, reject) => fetch(getApiBaseUrl({ id: options.id, endpoint }), { method: 'DELETE', headers: headersFactory(), 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); }), ), put: (options = { id: '', body: {}, headerId: '' }) => new Promise((resolve, reject) => fetch(getApiBaseUrl({ id: options.id, endpoint }), { method: 'PUT', headers: headersFactory(options.headerId), 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); }), ), }; export { UserService, UserMock };