all files / src/network/remote/ group.js

13.51% Statements 5/37
0% Branches 0/26
14.29% Functions 2/14
13.51% Lines 5/37
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94                                                                                                                                                                                 
'use strict';
 
Object.defineProperty(exports, "__esModule", {
  value: true
});
 
exports.default = function (_ref) {
  var client = _ref.client,
      filterQuery = _ref.filterQuery,
      mustContain = _ref.mustContain,
      busy = _ref.busy,
      encodeQueryAsString = _ref.encodeQueryAsString;
 
  return {
    updateGroupModerator: function updateGroupModerator(groupId, userId, onOff) {
      var url = '/group/' + groupId + '/moderator?userId=' + userId;
      return onOff ? client._.post(url) : client._.delete(url);
    },
    updateGroupAdmin: function updateGroupAdmin(groupdId, userId, onOff) {
      var url = '/group/' + groupdId + '/admin?userId=' + userId;
      return onOff ? client._.post(url) : client._.delete(url);
    },
    createGroup: function createGroup(group) {
      var expected = ['name', 'description', 'public'];
      var params = filterQuery.apply(undefined, [group].concat(expected));
 
      var _mustContain = mustContain(params, 'name'),
          missingKeys = _mustContain.missingKeys,
          promise = _mustContain.promise;
 
      return missingKeys ? promise : busy(client._.post('/group' + encodeQueryAsString(params)));
    },
    getGroups: function getGroups() {
      return busy(client._.get('/group'));
    },
    getGroup: function getGroup(id) {
      return busy(client._.get('/group/' + id));
    },
    deleteGroup: function deleteGroup(id) {
      return busy(client._.delete('/group/' + id));
    },
    editGroup: function editGroup() {
      var group = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
 
      var expected = ['name', 'description', 'public'];
      var params = filterQuery.apply(undefined, [group].concat(expected));
 
      var _mustContain2 = mustContain(group, '_id'),
          missingKeys = _mustContain2.missingKeys,
          promise = _mustContain2.promise;
 
      return missingKeys ? promise : busy(client._.put('/group/' + group._id + encodeQueryAsString(params)));
    },
    listGroupInvitations: function listGroupInvitations(id) {
      var query = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
 
      var allowed = ['limit', 'offset', 'sort', 'sortdir'];
      var params = filterQuery.apply(undefined, [query].concat(allowed));
 
      return busy(client._.get('/group/' + id + '/invitation', { params: params }));
    },
    addGroupInvitation: function addGroupInvitation(id) {
      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
 
      var allowed = ['userId', 'level', 'quiet', 'force'];
      var params = filterQuery.apply(undefined, [options].concat(allowed));
 
      var _mustContain3 = mustContain(params, 'userId'),
          missingKeys = _mustContain3.missingKeys,
          promise = _mustContain3.promise;
 
      return missingKeys ? promise : busy(client._.post('/group/' + id + '/invitation' + encodeQueryAsString(params)));
    },
    listGroupMembers: function listGroupMembers(id) {
      var query = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
 
      var allowed = ['limit', 'offset', 'sort', 'sortdir'];
      var params = filterQuery.apply(undefined, [query].concat(allowed));
 
      return busy(client._.get('/group/' + id + '/member', { params: params }));
    },
    removeUserFromGroup: function removeUserFromGroup(id, userId) {
      var params = { userId: userId };
      return busy(client._.delete('/group/' + id + '/member', { params: params }));
    },
    joinGroup: function joinGroup(id) {
      return busy(client._.post('/group/' + id + '/member'));
    },
    getGroupAccess: function getGroupAccess(id) {
      return busy(client._.get('/group/' + id + '/access'));
    }
  };
};