thinkraz-api-sdk
Version:
橡芮科技API开发包
89 lines (82 loc) • 2.85 kB
JavaScript
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);
});
});
}
};