front/modules/commonModule.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 mysqclass = require('./mysqli').default
const commonSQL = require('../../common/sql').default
/**
 * @class class to handle common functions
 */
class commonModule {
    static async getConfigVariable() {
        const mysql = {}
        const escapeData = []
        const strQuery = await mysqclass.mysqli(mysql, 'sitesettings')
        const dataReturn = await global.mysql.query(strQuery, escapeData)
        return dataReturn
    }
    /**
     * get all bid increments
     * @returns {object} sql query
     */
    static async getallBidIncrements() {
        const mysql = {}
        const escapeData = []
        const strQuery = await mysqclass.mysqli(mysql, 'get_all_bid_increment')
        const dataReturn = await global.mysql.query(strQuery, escapeData)
        return dataReturn
    }
    /**
     * get bid increment default
     * @returns {object} sql query
     */
    static async getBidIncrementdefault() {
        const mysql = {}
        const escapeData = []
        const strQuery = await mysqclass.mysqli(mysql, 'get_bid_inc_default')
        const dataReturn = await global.mysql.query(strQuery, escapeData)
        return dataReturn
    }
    /**
     * commonTableEntries
     * @param {object} item items
     * @returns {object} sql query
     */
    static async commonTableEntries(item) {
        const mysql = {}
        const escapeData = []
        mysql.tableUsed = item.ext_name
        const strQuery = await mysqclass.mysqli(mysql, 'get_all_tableentries')
        const dataReturn = await global.mysql.query(strQuery, escapeData)
        return dataReturn
    }

    /**
     * Get Static Content
     * @param {number} id id of the static page which has to be fetched
     * @returns {object} sql response
     */
    static async getStaticContent(id) {
        const mysql = {}
        const escapeData = [id, id]
        const strQuery = await mysqclass.mysqli(mysql, 'get_static_page')
        const dataReturn = await global.mysql.query(strQuery, escapeData)
        return dataReturn
    }
    /**
     *inset entry
     * @param {object} req request object
     * @param {object} data data
     * @returns {object} sql query
     */
    static async insertentry(req, data) {
        const mysqli = {}
        let escapeData = []
        const tableUsed = req.body.table
        const postData = data
        const acceptedObjects = global.configColumns[tableUsed].array_columns
        const defaultKeys = []
        const defaultValues = []
        const valueInsert = commonSQL.InsertSQLFunction(
            postData,
            acceptedObjects,
            defaultKeys,
            defaultValues,
        )
        mysqli.keys = valueInsert.keys
        escapeData = valueInsert.escapeData
        mysqli.values = valueInsert.values
        mysqli.tables = tableUsed
        const strQuery = await mysqclass.mysqli(mysqli, 'insert_tables')
        const dataPromise = await global.mysql.query(strQuery, escapeData)
        return dataPromise
    }
    /**
     * update entry
     * @param {object} req request object
     * @param {object} data data
     * @returns {object} sql query
     */
    static async updateentry(req, data) {
        const mysqli = {}
        let escapeData = []
        const tableUsed = req.body.table
        const postData = data
        const acceptedObjects = global.configColumns[tableUsed].array_columns
        const defaultKeys = []
        const defaultValues = []
        const valueInsert = commonSQL.updateSQLFunction(
            postData,
            acceptedObjects,
            defaultKeys,
            defaultValues,
        )
        mysqli.keys = valueInsert.keys
        escapeData = valueInsert.escapeData
        mysqli.values = ` ${req.body.update_column} = "${req.body.update_id}" `
        mysqli.tables = tableUsed
        const strQuery = await mysqclass.mysqli(mysqli, 'update_tables')
        const dataPromise = await global.mysql.query(strQuery, escapeData)
        return dataPromise
    }
    /**
     *common select parent table
     * @param {object} data object
     * @param {number} proid product id
     * @param {string} baseTableUsed base table used
     * @param {number} baseid base id
     * @returns {object} sql query
     */
    static async commonselectparenttable(data, proid, baseTableUsed, baseid) {
        const mysqli = {}
        const proId = proid.split(',')
        const escapeData = [proId]
        mysqli.keys = data
        mysqli.values = `${baseid} IN (?)`
        mysqli.tables = baseTableUsed.ext_name
        mysqli.group_by = ''
        mysqli.order_by = ''
        mysqli.limit_by = ''
        const strQuery = await mysqclass.mysqli(mysqli, 'select_tables')
        const dataReturn = await global.mysql.query(strQuery, escapeData)
        return dataReturn
    }
}

module.exports.default = commonModule