minapp-fetch
Version:
101 lines (100 loc) • 4.09 kB
JavaScript
;
/*
* @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;