UNPKG

minapp-fetch

Version:
190 lines (189 loc) 8.55 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const utils_1 = require("./utils/utils"); const constants_1 = require("./constants/constants"); const error_1 = require("./constants/error"); const findTrans_1 = __importDefault(require("./utils/findTrans")); function fetchFind(table, params) { let { BaaS_F, minapp, options } = utils_1.getBaaSF(); if (!table) throw new Error(error_1.PARAM_TABLE_ERROR); return new Promise((resolve, reject) => { if (constants_1.PLATFORM_NAME_BAAS.indexOf(minapp) > -1) { let QQ = findTrans_1.default(params, 1, BaaS_F, minapp); let Product = new BaaS_F.TableObject(table); if (QQ) { Product.setQuery(QQ).limit(params.limit || 20).offset((params.limit || 20) * ((params.page || 1) - 1)).orderBy(params.orderBy || '-created_at').select(params.select || []).expand(params.expand || []).find({ withCount: params.withCount || false }).then((res) => { // success resolve(res); }, (err) => { // err reject(err); }); } else { Product.limit(params.limit || 20).offset((params.limit || 20) * ((params.page || 1) - 1)).orderBy(params.orderBy || '-created_at').select(params.select || []).expand(params.expand || []).find({ withCount: params.withCount || false }).then((res) => { // success resolve(res); }, (err) => { // err reject(err); }); } } //Mongo类平台 if (constants_1.PLATFORM_NAME_MONGO_SERVER.indexOf(minapp) > -1) { if (minapp === constants_1.PLATFORM_NAME.WX_WEAPP || minapp === constants_1.PLATFORM_NAME.WX_CLOUD || minapp === constants_1.PLATFORM_NAME.UNI_CLOUD) { //微信云 let QQ = findTrans_1.default(params, 1, BaaS_F, minapp) || {}; let db = BaaS_F.database(); let tempCheck = db.collection(table); let tempOrder = [{ field: '', method: '' }, { field: '', method: '' }]; let tempSelect = {}; if (params.select) { if (utils_1.isArray(params.select)) { let temp = params.select; for (let i = 0; i < temp.length; i++) { if (temp[i][0] === '-') { tempSelect[temp[i].substring(1, temp[i].length)] = false; } else { tempSelect[temp[i]] = true; } } } else { let temp = params.select; if (temp[0] === '-') { tempSelect[temp.substring(1, temp.length)] = false; } else { tempSelect[temp] = true; } } } if (params.orderBy) { if (utils_1.isArray(params.orderBy)) { let temp = params.orderBy; for (let i = 0; i < temp.length; i++) { if (temp[i][0] === '-') { tempOrder[i] = { field: temp[i].substring(1, temp[i].length), method: 'desc' }; } else { tempOrder[i] = { field: temp[i], method: 'asc' }; } } } else { let temp = params.orderBy; if (temp[0] === '-') { tempOrder[0] = { field: temp.substring(1, temp.length), method: 'desc' }; } else { tempOrder[0] = { field: temp, method: 'asc' }; } } } if (tempOrder[1].field) { tempCheck.limit(params.limit || 20) .skip((params.limit || 20) * ((params.page || 1) - 1)) .where(QQ) .orderBy(tempOrder[0].field, tempOrder[0].method) .orderBy(tempOrder[1].field, tempOrder[1].method) .field(tempSelect) .get() .then(res => { resolve({ data: { objects: res.data } }); }, (err) => { reject(err); }); } else if (tempOrder[0].field) { tempCheck.limit(params.limit || 20) .skip((params.limit || 20) * ((params.page || 1) - 1)) .where(QQ) .orderBy(tempOrder[0].field, tempOrder[0].method) .field(tempSelect) .get() .then(res => { resolve({ data: { objects: res.data || [] } }); }, (err) => { reject(err); }); } else { tempCheck.limit(params.limit || 20) .skip((params.limit || 20) * ((params.page || 1) - 1)) .where(QQ) .field(tempSelect) .get() .then(res => { resolve({ data: { objects: res.data || [] } }); }, (err) => { reject(err); }); } } } //webapi if (minapp === constants_1.PLATFORM_NAME.ZX_WEBAPI) { let QQ = findTrans_1.default(params, 1, BaaS_F, minapp) || ''; if (!options) throw new Error(error_1.WEBAPI_OPTIONS_ERROR); BaaS_F({ method: 'get', url: `${options.RequestBase}/hserve/v2.2/table/${table}/record/`, headers: options.Header, params: { where: QQ, limit: params.limit || 20, offset: (params.limit || 20) * ((params.page || 1) - 1), order_by: params.orderBy || '-created_at', expand: (params.expand || []).toString(), keys: (params.select || []).toString(), return_total_count: params.withCount ? 1 : 0, }, }).then((res) => { resolve(res); }).catch((err) => { reject(err); }); } //op if (minapp === constants_1.PLATFORM_NAME.ZX_OP) { let QQ = findTrans_1.default(params, 1, BaaS_F, minapp) || ''; BaaS_F.get(`https://cloud.minapp.com/userve/v2.4/table/${table}/record/`, { params: { where: QQ, limit: params.limit || 20, offset: (params.limit || 20) * ((params.page || 1) - 1), order_by: params.orderBy || '-created_at', expand: (params.expand || []).toString(), return_total_count: params.withCount ? 1 : 0, } }).then((res) => { resolve(res); }).catch((err) => { reject(err); }); } }); } exports.default = fetchFind;