/* ============================================================================ *\
|| ########################################################################## ||
|| # 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 moment = require('moment')
const mysqclass = require('./mysqli').default
/**
* @class class to handle langauage functions
*/
class adminlanguageModule {
/**
* Get all Groups
* @param {object} req request data
* @param {number} c by default 1
* @returns {object} sql response
*/
static async getAllGroups(req, c = 1) {
const mysql = {}
mysql.limit = ''
const perlimit = req.body.limit ? req.body.limit : 10
let page = typeof req.body.page !== 'undefined' ? req.body.page : 1
page = page > 0 ? (page - 1) * perlimit : 0
if (c === 0) {
mysql.limit = `limit ${page},${perlimit}`
}
const escapeData = []
const strQuery = await mysqclass.mysqli(mysql, 'get_groups')
const dataReturn = await global.mysql.query(strQuery, escapeData)
return dataReturn
}
/**
* Get all Phrases
* @param {object} req request data
* @param {number} c by default 1
* @returns {object} sql response
*/
static async getAllPhrases(req) {
const mysql = {}
const escapeData = []
const strQuery = await mysqclass.mysqli(mysql, 'get_phrases')
const dataReturn = await global.mysql.query(strQuery, escapeData)
return dataReturn
}
/**
* check phrase
* @param {object} req request data
* @param {Object} dataArray by default {phrase:'', group_id:''}
* @returns {object} sql response
*/
static async checkPhrase(req, dataArray = { phrase: '', group_id: '' }) {
const mysql = {}
const escapeData = [req.body.temp_var || dataArray.phrase]
const strQuery = await mysqclass.mysqli(mysql, 'check_phrase')
const dataReturn = await global.mysql.query(strQuery, escapeData)
return dataReturn
}
/**
* update phrase
* @param {object} req request data
* @returns {object} sql response
*/
static async updatePhrase(req) {
const mysql = {}
mysql.clname = req.body.sellang
const escapeData = [req.body.phrase, req.body.temp_var]
const strQuery = await mysqclass.mysqli(mysql, 'updatephrase')
const dataReturn = await global.mysql.query(strQuery, escapeData)
return dataReturn
}
/**
* Get Home phrases
* @param {object} req request data
* @returns {object} sql response
*/
static async getHomephrases(req) {
const mysql = {}
const escapeData = []
const strQuery = await mysqclass.mysqli(mysql, 'get_home_phrase')
const dataReturn = await global.mysql.query(strQuery, escapeData)
return dataReturn
}
/**
* Get all Groups
* @param {object} req request data
* @returns {object} sql response
*/
static async getHomephraseslang(req) {
const mysql = {}
const escapeData = []
const strQuery = await mysqclass.mysqli(mysql, 'get_home_phraselang')
const dataReturn = await global.mysql.query(strQuery, escapeData)
return dataReturn
}
/**
* updat single phrase
* @param {object} req request data
* @returns {object} sql response
*/
static async updatesinglePhrase(req, dataArray = {}) {
const mysql = {}
mysql.clname = req.body.lang_list || dataArray.lang_column
const escapeData = [
req.body.phrase_value || dataArray.words,
req.body.phrase_list || dataArray.phrase,
]
const strQuery = await mysqclass.mysqli(mysql, 'update_single_phrase')
const dataReturn = await global.mysql.query(strQuery, escapeData)
return dataReturn
}
/**
* add Phrase
* @param {object} req request data
* @returns {object} sql response
*/
static async addPhrase(req) {
const mysql = {}
mysql.clname = req.body.sellang
const escapeData = [req.body.selgroup, req.body.temp_var, req.body.phrase]
const strQuery = await mysqclass.mysqli(mysql, 'new_phrase')
const dataReturn = await global.mysql.query(strQuery, escapeData)
return dataReturn
}
/**
* chekGroups
* @param {object} req request data
* @returns {object} sql response
*/
static async checkGroups(req) {
const mysql = {}
const escapeData = [req.body.group_name]
const strQuery = await mysqclass.mysqli(mysql, 'check_group')
const dataReturn = await global.mysql.query(strQuery, escapeData)
return dataReturn
}
/**
* add groups
* @param {object} req request data
* @returns {object} sql response
*/
static async addGroups(req) {
const mysql = {}
const escapeData = [req.body.group_name, req.body.group_desc]
const strQuery = await mysqclass.mysqli(mysql, 'new_language_group')
const dataReturn = await global.mysql.query(strQuery, escapeData)
return dataReturn
}
/**
* phrase Search
* @param {object} req request data
* @param {object} c number of values we want
* @returns {object} sql response
*/
static async phraseSearch(req, c) {
const mysql = {}
let where = ''
let limit = ''
const lang = req.body.lang_list != null ? req.body.lang_list : 'for_english'
let page = typeof req.body.page !== 'undefined' ? req.body.page : 1
const perlimit = 10
page = page > 0 ? (page - 1) * perlimit : 0
if (c === 0) {
limit = `limit ${page},${perlimit}`
} else {
limit = ''
}
if (typeof req.body.searchkey !== 'undefined') {
where += `where lp.phrase like '%${req.body.searchkey}%'`
_.each(req.body.all_languages, async (element) => {
where += `OR lp.${element.language_slug} like '%${req.body.searchkey}%'`
})
}
mysql.slname = lang
mysql.where = where
mysql.limit = limit
const escapeData = [req.body.group_name, req.body.group_desc]
const strQuery = await mysqclass.mysqli(mysql, 'get_phrases_lang')
const dataReturn = await global.mysql.query(strQuery, escapeData)
return dataReturn
}
/**
* get all phrases language
* @param {object} req request data
* @param {object} c number of values we want
* @returns {object} sql response
*/
static async getAllPhrasesLang(req, c) {
const mysql = {}
const lang = req.body.lang_list != null ? req.body.lang_list : 'for_english'
let where = ''
let page = typeof req.body.page !== 'undefined' ? req.body.page : 1
const perlimit = req.body.limit ? req.body.limit : 10
page = page > 0 ? (page - 1) * perlimit : 0
let limit = ''
if (c === 0) {
limit = `limit ${page},${perlimit}`
}
if (typeof req.body.selgroup !== 'undefined' && req.body.selgroup) {
where += `where lp.group_id =${req.body.selgroup}`
}
if (typeof req.body.searchkey !== 'undefined' && req.body.searchkey) {
if (req.body.searchkey !== '') {
where += ` AND lp.phrase like '%${req.body.searchkey}%'`
_.each(req.body.all_languages, async (element, index) => {
where += `OR lp.${element[index].language_slug} like '%${req.body.searchkey}%'`
})
}
}
mysql.slname = lang
mysql.where = where
mysql.limit = limit
const escapeData = []
const strQuery = await mysqclass.mysqli(mysql, 'get_phrases_lang')
const dataReturn = await global.mysql.query(strQuery, escapeData)
return dataReturn
}
/**
* gupdate language phrases
* @param {object} req request data
* @param {object} dataArray request data
* @returns {object} sql response
*/
static async updateLanguagePhrase(req, dataArray) {
let mysql = {}
mysql = { clname: dataArray.lang_column }
const escapeData = [dataArray.words, dataArray.phrase, dataArray.group_id]
const strQuery = await mysqclass.mysqli(mysql, 'update_phrases')
const dataReturn = await global.mysql.query(strQuery, escapeData)
return dataReturn
}
}
module.exports.default = adminlanguageModule