fh-wfm-user
Version:
68 lines (59 loc) • 1.62 kB
JavaScript
var config = require('../../../config/config-group');
var shortid = require('shortid');
var GroupCloudDataTopics = require('fh-wfm-mediator/lib/topics');
function GroupOperations(mediator) {
this.groupCloudDataTopics = new GroupCloudDataTopics(mediator)
.prefix(config.cloudDataTopicPrefix)
.entity(config.dataSetId);
}
/**
*
* Creating A New Group Entry
*
* @param groupToCreate
* @returns {Promise}
*/
GroupOperations.prototype.create = function createGroup(groupToCreate) {
groupToCreate.id = shortid.generate(); //Add id field required by the simple-store module
return this.groupCloudDataTopics.request('create', groupToCreate, {uid: groupToCreate.id});
};
/**
*
* Updating An Existing Group Entry
*
* @param groupToUpdate
* @returns {Promise}
*/
GroupOperations.prototype.update = function updateGroup(groupToUpdate) {
return this.groupCloudDataTopics.request('update', groupToUpdate, {uid: groupToUpdate.id});
};
/**
*
* Reading A Single Group Entry
*
* @param id
* @returns {Promise}
*/
GroupOperations.prototype.read = function readGroup(id) {
return this.groupCloudDataTopics.request('read', id);
};
/**
*
* Listing All Groups
*
* @returns {Promise}
*/
GroupOperations.prototype.list = function listGroups() {
return this.groupCloudDataTopics.request('list');
};
/**
*
* Removing A Single Group Entry
*
* @param groupToRemove
* @returns {Promise}
*/
GroupOperations.prototype.remove = function listGroups(groupToRemove) {
return this.groupCloudDataTopics.request('delete', groupToRemove, {uid: groupToRemove.id});
};
module.exports = GroupOperations;