front/modules/shipping/shipengine.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
/**
 * @class class to handle deposit functions
 */
class shipEngineModule {
    /**
     * 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 userId = data?.user_id || ''
        const projectId = data?.project_id || ''
        const escapeData = [
            userId,
            projectId,
            type,
            JSON.stringify(options.data),
            dateFormat(new Date(), 'yyyy-mm-dd HH:MM:ss'),
        ]
        const strQuery = await mysqclass.mysqli(mysql, 'ship_engine_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, 'ship_engine_log_update')
        const dataReturn = await global.mysql.query(strQuery, escapeData)
        return dataReturn
    }
    /**
     * update shipping id
     * @param {object} shippingData
     * @param {number} cartID cart
     * @param {number} addressID address id
     */
    static async updateShippingID(shippingData, cartID, addressID) {
        const mysql = {}
        const escapeData = [shippingData.rate_id, shippingData.total, cartID, addressID]
        const strQuery = await mysqclass.mysqli(mysql, 'ship_engine_update_selected_shipping_id')
        const dataReturn = await global.mysql.query(strQuery, escapeData)
        return dataReturn
    }
    /**
     * insert shipping response
     * @param {number} cartID cart id
     * @param {number} addressID address id
     * @param {object} response resopnse
     *
     */
    static async insertShippingResponse(cartID, addressID, response) {
        const mysql = {}
        const escapeData = [cartID, addressID, JSON.stringify(response)]
        const strQuery = await mysqclass.mysqli(mysql, 'ship_engine_insert_selected_shipping_id')
        const dataReturn = await global.mysql.query(strQuery, escapeData)
        return dataReturn
    }
    /**
     * update confirmation resposne
     * @param {number} shipID shipping id
     * @param {number} trackingID tracking id
     * @param {object} response response
     */
    static async updateConfirmationResponse(shipID, trackingID, response) {
        const mysql = {}
        const escapeData = [trackingID, JSON.stringify(response), shipID]
        const strQuery = await mysqclass.mysqli(
            mysql,
            'ship_engine_insert_confirmation_shipping_id',
        )
        const dataReturn = await global.mysql.query(strQuery, escapeData)
        return dataReturn
    }
    /**
     *get shipping id details
     * @param {number} cartID cart id
     * @param {number} addressId address id
     */
    static async getShippingIDDetails(cartID, addressId) {
        const mysql = {}
        const escapeData = [cartID, addressId]
        const strQuery = await mysqclass.mysqli(mysql, 'ship_engine_get_selected_shipping_id')
        console.log('shippingData', strQuery, escapeData)
        const dataReturn = await global.mysql.query(strQuery, escapeData)
        return dataReturn
    }
    /**
     * get shipping tracking details
     * @param {number} cartID cart id
     */
    static async getShippingTrackingDetails(cartID) {
        const mysql = {}
        const escapeData = [cartID]
        const strQuery = await mysqclass.mysqli(mysql, 'ship_engine_get_tracking_shipping_id')
        const dataReturn = await global.mysql.query(strQuery, escapeData)
        return dataReturn
    }
}

module.exports.default = shipEngineModule