UNPKG

thinkraz-api-sdk

Version:

橡芮科技API开发包

126 lines (116 loc) 3.82 kB
const Promise = require('bluebird'); const baseClass = require('../lib/baseClass'); module.exports = class Roles extends baseClass { appendUser(roleId, userId) { return new Promise((resolve, reject) => { this.request().post(`${this.getPath()}/users`, { role: roleId, user: userId }).then(result => { resolve(result); }).catch(err => { reject(err); }); }); } removeUser(roleId, userId) { return new Promise((resolve, reject) => { this.request().del(`${this.getPath()}/users`, { role: roleId, user: userId }).then(result => { resolve(result); }).catch(err => { reject(err); }); }); } createRole(roleName) { return new Promise((resolve, reject) => { this.request().post(`${this.getPath()}/${roleName}`).then(role => { resolve(role); }).catch(err => { reject(err); }); }); } renameRole(roleId, name) { return new Promise((resolve, reject) => { this.request().put(`${this.getPath()}/${roleId}/${name}`).then(role => { resolve(role); }).catch(err => { reject(err); }); }); } removeRole(roleId) { return new Promise((resolve, reject) => { this.request().del(`${this.getPath()}/${roleId}`).then(deletedRole => { resolve(deletedRole); }).catch(err => { reject(err); }); }); } findRoles(options) { if (!options) options = {}; return new Promise((resolve, reject) => { this.request().get(this.getPath(), options).then(results => { resolve(results); }).catch(err => { reject(err); }); }); } auth(roleId, userId) { return new Promise((resolve, reject) => { this.request().get(`${this.getPath()}/auth`, { role: roleId, user: userId }).then(result => { resolve(result); }).catch(err => { reject(err); }); }); } authManager(userAccessToken, path, method, auth, authcode, mchid) { return new Promise((resolve, reject) => { let authString = path + '-' + method; let authItem = auth[authString]; let authName = null; if (!authItem) { resolve(); return; } if (!userAccessToken) { reject(); return; } if (authItem.needMch) { if (!mchid) return reject(); authName = `${authcode}_${mchid}_${authString.replace(/\//g, '_')}`; } else { authName = `${authcode}_${authString.replace(/\//g, '_')}`; } this.request().get(`${this.getPath()}/access`, { roleName: authName, _at: userAccessToken }).then(result => { resolve(result); }).catch(err => { reject(err); }); }); } getRole(roleId) { return new Promise((resolve, reject) => { this.request().get(`${this.getPath()}/${roleId}`).then(role => { resolve(role); }).catch(err => { reject(err); }); }); } };