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

22.86% Statements 8/35
0% Branches 0/22
15.38% Functions 2/13
26.67% Lines 8/30
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 95 96 97 98 99 100 101 102 103                                                                                                                                                                                             
'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;
 
  return {
    listProjects: function listProjects() {
      return busy(client._.get('/projects'));
    },
    createProject: function createProject(project) {
      var expected = ['name', 'type', 'steps', 'metadata'];
 
      var _mustContain = mustContain.apply(undefined, [project].concat(expected)),
          missingKeys = _mustContain.missingKeys,
          promise = _mustContain.promise;
 
      return missingKeys ? promise : busy(client._.post('/projects', project));
    },
    getProject: function getProject(id) {
      return busy(client._.get('/projects/' + id));
    },
    updateProject: function updateProject(project) {
      var expected = ['name', 'description', 'metadata', '_id'];
      var pfiltered = filterQuery.apply(undefined, [project].concat(_toConsumableArray(expected.slice(0, 3)))); // Remove '_id'
 
      var _mustContain2 = mustContain.apply(undefined, [project].concat(expected)),
          missingKeys = _mustContain2.missingKeys,
          promise = _mustContain2.promise;
 
      return missingKeys ? promise : busy(client._.patch('/projects/' + project._id, pfiltered, {
        headers: headers,
        transformRequest: _utils.transformRequest
      }));
    },
    deleteProject: function deleteProject(id) {
      return busy(client._.delete('/projects/' + id));
    },
    getProjectAccess: function getProjectAccess(_id) {
      return busy(client._.get('/projects/' + _id + '/access'));
    },
    setProjectAccess: function setProjectAccess(_id, users, groups) {
      var level = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
      var flags = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : [];
 
      return busy(client._.put('/projects/' + _id + '/access', {
        users: users,
        groups: groups,
        level: parseInt(level, 10),
        flags: flags
      }));
    },
    patchProjectAccess: function patchProjectAccess(_id, users, groups) {
      var level = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
      var flags = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : [];
 
      return busy(client._.patch('/projects/' + _id + '/access', {
        users: users,
        groups: groups,
        level: parseInt(level, 10),
        flags: flags
      }));
    },
    revokeProjectAccess: function revokeProjectAccess(_id, users, groups) {
      console.log(users, groups);
      return busy(client._.patch('/projects/' + _id + '/access/revoke', { users: users, groups: groups }));
    },
 
 
    // List all the simulations associated with a project
    listSimulations: function listSimulations(projectId) {
      return busy(client._.get('/projects/' + projectId + '/simulations'));
    },
 
 
    // post /projects/{id}/simulations
    // Create a simulation associated with a project
    createSimulation: function createSimulation(projectId, simualtion) {
      var expected = ['name', 'description', 'steps', 'active', 'disabled'];
      var sfiltered = filterQuery.apply(undefined, [simualtion].concat(expected));
 
      return busy(client._.post('/projects/' + projectId + '/simulations', sfiltered, {
        headers: headers,
        transformRequest: _utils.transformRequest
      }));
    }
  };
};
 
var _utils = require('./utils');
 
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
 
var headers = {
  'Content-Type': 'application/json'
};