UNPKG

thinkraz-api-sdk

Version:

橡芮科技API开发包

89 lines (82 loc) 2.85 kB
const Promise = require('bluebird'); const baseClass = require('../lib/baseClass'); module.exports = class Objects extends baseClass { setSchema(schemaName) { if (!schemaName) { throw new Error('Objects operation must assign schema'); } this._schemaName = schemaName; } createObject(obj) { return new Promise((resolve, reject) => { this.request().post(`${this.getPath()}/${this._schemaName}`, obj).then(object => { resolve(object); }).catch(err => { reject(err); }); }); } getObject(objectId) { return new Promise((resolve, reject) => { this.request().get(`${this.getPath()}/${this._schemaName}/${objectId}`).then(object => { resolve(object); }).catch(err => { reject(err); }); }); } /** * @param {{where:{object},sort:{object},offset:{int},limit:{int}}} options */ findObjects(options) { return new Promise((resolve, reject) => { if (!options) options = {}; this.request().get(`${this.getPath()}/${this._schemaName}`, options).then(results => { resolve(results); }).catch(err => { reject(err); }); }); } /** * @param {{where:{object},sort:{object},offset:{int}}} options */ findObject(options) { return new Promise((resolve, reject) => { if (!options) options = {limit: 1}; else { options.limit = 1; } this.request().get(`${this.getPath()}/${this._schemaName}`, options).then(results => { if (results.count > 0) resolve(results.results[0]); else { resolve(null); } }).catch(err => { reject(err); }); }); } updateObject(objectId, updateObject, options) { return new Promise((resolve, reject) => { if (!options) options = {}; this.request().put(`${this.getPath()}/${this._schemaName}/${objectId}`, updateObject, { where: JSON.stringify(options) }).then(object => { resolve(object); }).catch(err => { reject(err); }); }); } removeObject(ObjectId) { return new Promise((resolve, reject) => { this.request().del(`${this.getPath()}/${this._schemaName}/${ObjectId}`).then(deletedObject => { resolve(deletedObject); }).catch(err => { reject(err); }); }); } };