front/modules/shipping/arta.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 artaShippingModule {
    static async insertLog(data, options, type) {
        const mysql = {}
        const escapeData = [
            data?.user_id || null,
            data?.project_id || null,
            type,
            JSON.stringify(options.data),
            dateFormat(new Date(), 'yyyy-mm-dd HH:MM:ss'),
        ]
        const strQuery = await mysqclass.mysqli(mysql, 'arta_log_insert')
        const dataReturn = await global.mysql.query(strQuery, escapeData)
        return dataReturn
    }
    /**
     * get project id from cart id
     *
     * @param {number} projectId request object
     * @param {shipping.arta.metadataTransport} method
     */
    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, 'arta_log_update')
        const dataReturn = await global.mysql.query(strQuery, escapeData)
        return dataReturn
    }
    /**
     * update shipping id
     * @param {object} shippingData shipping data
     * @param {number} cartID cart id
     * @param {number} addressID address id
     * @returns {object} sql query
     */
    static async updateShippingID(shippingData, cartID, addressID) {
        const mysql = {}
        const escapeData = [shippingData.id, shippingData.total, cartID, addressID]
        const strQuery = await mysqclass.mysqli(mysql, 'arta_update_selected_shipping_id')
        const dataReturn = await global.mysql.query(strQuery, escapeData)
        return dataReturn
    }
    /**
     * update shipping id
     * @param {number} cartID cart id
     * @param {number} addressID address id
     * @param {object} response shipping data
     * @returns {object} sql query
     */
    static async insertShippingResponse(cartID, addressID, response) {
        const mysql = {}
        const escapeData = [cartID, addressID, JSON.stringify(response)]
        const strQuery = await mysqclass.mysqli(mysql, 'arta_insert_selected_shipping_id')
        const dataReturn = await global.mysql.query(strQuery, escapeData)
        return dataReturn
    }
    /**
     * update shipping id
     * @param {number} cartID cart id
     * @param {number} addressID address id
     * @param {object} response shipping data
     * @returns {object} sql query
     */
    static async updateConfirmationResponse(shipID, trackingID, response) {
        const mysql = {}
        const escapeData = [trackingID, JSON.stringify(response), shipID]
        const strQuery = await mysqclass.mysqli(mysql, 'arta_insert_confirmation_shipping_id')
        const dataReturn = await global.mysql.query(strQuery, escapeData)
        return dataReturn
    }
    /**
     * update shipping id
     * @param {number} cartID cart id
     * @param {number} addressID address id
     * @param {object} response shipping data
     * @returns {object} sql query
     */
    static async getShippingIDDetails(cartID, addressId) {
        const mysql = {}
        const escapeData = [cartID, addressId]
        const strQuery = await mysqclass.mysqli(mysql, 'arta_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
     * @returns {object} sql query
     */
    static async getShippingTrackingDetails(cartID) {
        const mysql = {}
        const escapeData = [cartID]
        const strQuery = await mysqclass.mysqli(mysql, 'arta_get_tracking_shipping_id')
        const dataReturn = await global.mysql.query(strQuery, escapeData)
        return dataReturn
    }
}

module.exports.default = artaShippingModule