front/modules/payment/northcapital.js

/* ============================================================================ *\
|| ########################################################################## ||
|| # Auction Software Marketplace          Release: 0.6   Build 0.7         # ||
|| # ---------------------------------------------------------------------- # ||
|| # License # 35YAHCNR9344X6O666C123AB                                     # ||
|| # ---------------------------------------------------------------------- # ||
|| # Copyright ©2014–2021 Develop Scripts LLC. All Rights Reserved          # ||
|| # This file may not be redistributed in whole or significant part.       # ||
|| # ------------- AUCTION SOFTWARE IS NOT FREE SOFTWARE ------------------ # ||
|| # http://www.auctionsoftwaremarketplace.com|support@auctionsoftware.com  # ||
|| # ---------------------------------------------------------------------- # ||
|| ########################################################################## ||
\* ============================================================================ */

const dateFormat = require('dateformat')
const md5 = require('md5')
const _ = require('underscore')
const commonSQL = require('../../../common/sql').default

const mysqclass = require('../mysqli').default
/**
 * @class class to handle deposit functions
 */

class northcapitalPaymentModule {
    /**
     * insert log
     *
     * @param {string} nameID email ID to check in the database.
     * @returns {object} sql response
     */
    static async insertLog(data, options, type) {
        const mysql = {}
        const escapeData = [
            data.user_id,
            data.project_id,
            type,
            JSON.stringify(options.data),
            dateFormat(new Date(), 'yyyy-mm-dd HH:MM:ss'),
        ]
        const strQuery = await mysqclass.mysqli(mysql, 'northcapital_log_insert')
        const dataReturn = await global.mysql.query(strQuery, escapeData)
        return dataReturn
    }
    /**
     * update log
     *
     * @param {string} data log data
     * @returns {object} sql response
     */
    static async updateLog(data) {
        const mysql = {}
        const escapeData = [
            JSON.stringify(data.response),
            data.status,
            dateFormat(new Date(), 'yyyy-mm-dd HH:MM:ss'),
            data.id,
        ]
        const strQuery = await mysqclass.mysqli(mysql, 'northcapital_log_update')
        const dataReturn = await global.mysql.query(strQuery, escapeData)
        return dataReturn
    }
    /**
     * insert entiry response
     *
     * @param {object} userId user id
     * @param {object} partyID party id
     * @returns {object} response object
     */
    static async insertEntityResponse(userId, partyId) {
        const mysql = {}
        const escapeData = [userId, partyId, dateFormat(new Date(), 'yyyy-mm-dd HH:MM:ss')]
        const strQuery = await mysqclass.mysqli(mysql, 'northcapital_insert_party_id')
        const dataReturn = await global.mysql.query(strQuery, escapeData)
        return dataReturn
    }
    /**
     * insert party response
     *
     * @param {object} userId user id
     * @param {object} partyID party id
     * @returns {object} response object
     */
    static async insertPartyResponse(userId, partyId) {
        const mysql = {}
        const escapeData = [userId, partyId]
        const strQuery = await mysqclass.mysqli(mysql, 'northcapital_insert_party_id')
        const dataReturn = await global.mysql.query(strQuery, escapeData)
        return dataReturn
    }
    /**
     * update North capital response
     *
     * @param {object} body data to update
     * @param {object} userId user id
     * @returns {object} response object
     */
    static async updateNorthCapitalResponse(body, userId) {
        const mysql = {}
        const postData = body
        const acceptedObjects = global.configColumns.third_payment_north.array_columns
        let escapeData = []
        const defaultKeys = []
        const defaultValues = []
        const valueInsert = commonSQL.updateSQLFunction(
            postData,
            acceptedObjects,
            defaultKeys,
            defaultValues,
        )
        mysql.keys = valueInsert.keys
        escapeData = valueInsert.escapeData
        mysql.user_id = userId
        const strQuery = await mysqclass.mysqli(mysql, 'northcapital_update')
        const dataReturn = await global.mysql.query(strQuery, escapeData)
        return dataReturn
    }
    /**
     * get user northcapital details
     *
     * @param {object} body data to update
     * @param {object} userId user id
     * @returns {object} response object
     */
    static async getUserNorthDetails(userId) {
        const mysql = {}
        const escapeData = [userId]
        const strQuery = await mysqclass.mysqli(mysql, 'northcapital_get_user_details')
        const dataReturn = await global.mysql.query(strQuery, escapeData)
        return dataReturn
    }
    /**
     * get northcapital project details
     *
     * @param {object} body data to update
     * @param {object} userId user id
     * @returns {object} response object
     */
    static async getOfferingNorthDetails(projectId) {
        const mysql = {}
        const escapeData = [projectId]
        const strQuery = await mysqclass.mysqli(mysql, 'northcapital_get_project_details')
        const dataReturn = await global.mysql.query(strQuery, escapeData)
        return dataReturn
    }

    // static async newDocument(file, folder, type, userId) {
    //     const mysql = {}
    //     const dateNow = dateFormat(new Date(), 'yyyy-mm-dd HH:MM:ss')
    //     const escapeData = [file, folder, type, userId, dateNow]
    //     const strQuery = await mysqclass.mysqli(mysql, 'northcapital_doc_insert')
    //     const dataReturn = await global.mysql.query(strQuery, escapeData)
    //     return dataReturn
    // }
}

module.exports.default = northcapitalPaymentModule