UNPKG

@it_kyryl/arbitrage_admin_schema

Version:

Schema for arbitrage admin panel

57 lines (56 loc) 1.76 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.BaseController = void 0; const prisma_1 = __importDefault(require("../clients/prisma")); const PrismaLog_repository_1 = __importDefault(require("../repository/database/Log/PrismaLog.repository")); class BaseController { dependency; logRepository = new PrismaLog_repository_1.default(prisma_1.default); constructor(dependency) { this.dependency = dependency; } async execute(input) { try { const useCasesOutput = await this.useCasesImplementation(input); const presenterOutput = this.dependency.presenter.present(useCasesOutput); return { error: false, data: presenterOutput }; } catch (e) { await this.handleError(e); return { error: true, message: e.message }; } } async handleError(e) { let request = null; let response = null; let stack = e.stack ?? null; let name = e.name ?? null; try { request = e.request ? JSON.stringify(e.request) : null; } catch { } try { response = e.response ? JSON.stringify(e.response) : null; } catch { } const logData = { isError: true, message: e.message ?? '', request, name, response, stack }; await this.logRepository.createLog(logData); } } exports.BaseController = BaseController;