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