UNPKG

minapp-fetch

Version:
101 lines (100 loc) 4.09 kB
"use strict"; /* * @Author: your name * @Date: 2020-05-18 18:02:23 * @LastEditTime: 2020-06-06 08:52:41 * @LastEditors: Please set LastEditors * @Description: In User Settings Edit * @FilePath: /@ownpack/weapp/src/fetch/data/get.ts */ Object.defineProperty(exports, "__esModule", { value: true }); const utils_1 = require("./utils/utils"); const constants_1 = require("./constants/constants"); const error_1 = require("./constants/error"); function fetchGet(table, id, query) { let { BaaS_F, minapp, options } = utils_1.getBaaSF(); let tempQuery = (query === 'sentence' || !query) ? {} : query; return new Promise((resolve, reject) => { //BaaS if (constants_1.PLATFORM_NAME_BAAS.indexOf(minapp) > -1) { let Product = new BaaS_F.TableObject(table); Product.select(tempQuery.select || []).expand(tempQuery.expand || []).get(id).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.MONGODB) { let hex = /^[a-fA-F0-9]{24}$/; BaaS_F.MongoClient.connect(options.host, { useUnifiedTopology: true }, (err, client) => { if (err) throw new Error(err); let db = client.db(options.env); let tempID = id; let tempId = (hex.test(tempID)) ? BaaS_F.ObjectID(tempID) : tempID; db.collection(table).findOne({ _id: tempId }, (err, res) => { if (err) reject(err); client.close(); resolve({ data: res }); }); }); } if (minapp === constants_1.PLATFORM_NAME.WX_WEAPP || minapp === constants_1.PLATFORM_NAME.WX_CLOUD) { //微信云 let db = BaaS_F.database(); db.collection(table).doc(id).get().then(res => { resolve({ data: Object.assign({ id: res.data._id }, res.data) }); }, (err) => { reject(err); }); } if (minapp === constants_1.PLATFORM_NAME.UNI_CLOUD) { let db = BaaS_F.database(); db.collection(table).doc(id).get().then(res => { resolve({ data: Object.assign({ id: res.data[0]._id }, res.data[0]) }); }, (err) => { reject(err); }); } } //webapi if (minapp === constants_1.PLATFORM_NAME.ZX_WEBAPI) { if (!options) throw new Error(error_1.WEBAPI_OPTIONS_ERROR); BaaS_F({ method: 'get', url: `${options.RequestBase}/hserve/v2.2/table/${table}/record/${id}/`, headers: options.Header, params: { expand: (tempQuery.expand || []).toString(), keys: (tempQuery.select || []).toString(), } }).then((res) => { resolve(res); }).catch((err) => { reject(err); }); } //op 运营后台 if (minapp === constants_1.PLATFORM_NAME.ZX_OP) { BaaS_F.get(`https://cloud.minapp.com/userve/v2.4/table/${table}/record/${id}/`, { params: { expand: (tempQuery.expand || []).toString(), keys: (tempQuery.select || []).toString(), } }).then((res) => { resolve(res); }).catch((err) => { reject(err); }); } }); } exports.default = fetchGet;