83 lines
3.0 KiB
JavaScript
83 lines
3.0 KiB
JavaScript
class ICMPProjectNodeModel extends EICModel {
|
|
|
|
currentProject = null;
|
|
|
|
constructor(privileges) { super('/icmp', privileges); }
|
|
|
|
get(number, node, nodeId) {
|
|
if(!this.hasPrivilege('read')) return( new Promise((resolve, reject) => reject()))
|
|
|
|
let endpoint = this.getApiEndpoint('getProjectNode');
|
|
endpoint.uri = endpoint.uri.replace('{projectId}', number);
|
|
endpoint.uri = endpoint.uri.replace('{node}', node);
|
|
endpoint.uri = endpoint.uri.replace('{nodeId}', nodeId);
|
|
|
|
return (
|
|
this.request(endpoint.uri, endpoint.method)
|
|
.then( async serverData => {
|
|
return serverData.payload;
|
|
})
|
|
)
|
|
}
|
|
|
|
process(action, number, node, nodeId, payload) {
|
|
switch (action) {
|
|
case 'saving':
|
|
if(!this.hasPrivilege('update')) return( new Promise((resolve, reject) => reject()))
|
|
break;
|
|
case 'submitting':
|
|
if(!this.hasPrivilege('submit')) return( new Promise((resolve, reject) => reject()))
|
|
break;
|
|
case 'validating':
|
|
if(!this.hasPrivilege('validate')) return( new Promise((resolve, reject) => reject()))
|
|
break;
|
|
case 'aborting':
|
|
if(!this.hasPrivilege('cancel')) return( new Promise((resolve, reject) => reject()))
|
|
break;
|
|
case 'reviewing':
|
|
if(!this.hasPrivilege('sendforreview')) return( new Promise((resolve, reject) => reject()))
|
|
break;
|
|
}
|
|
|
|
let endpoint = this.getApiEndpoint('saveProjectNode');
|
|
endpoint.uri = endpoint.uri.replace('{projectId}', number);
|
|
endpoint.uri = endpoint.uri.replace('{node}', node);
|
|
endpoint.uri = endpoint.uri.replace('{nodeId}', nodeId);
|
|
|
|
payload.status = action;
|
|
|
|
return (
|
|
this.request(endpoint.uri, endpoint.method, payload)
|
|
.then( async serverData => {
|
|
return serverData.payload;
|
|
})
|
|
)
|
|
}
|
|
|
|
comment(action, number, node, nodeId, payload) {
|
|
switch (action) {
|
|
case 'rejecting':
|
|
if(!this.hasPrivilege('reject')) return( new Promise((resolve, reject) => reject()))
|
|
break;
|
|
case 'reviewing':
|
|
if(!this.hasPrivilege('review')) return( new Promise((resolve, reject) => reject()))
|
|
break;
|
|
}
|
|
|
|
let endpoint = this.getApiEndpoint('saveProjectNodeComments');
|
|
endpoint.uri = endpoint.uri.replace('{projectId}', number);
|
|
endpoint.uri = endpoint.uri.replace('{node}', node);
|
|
endpoint.uri = endpoint.uri.replace('{nodeId}', nodeId);
|
|
|
|
payload.status = action;
|
|
|
|
return (
|
|
this.request(endpoint.uri, endpoint.method, payload)
|
|
.then( async serverData => {
|
|
return serverData.payload;
|
|
})
|
|
)
|
|
}
|
|
}
|
|
|
|
app.registerClass('ICMPProjectNodeModel', ICMPProjectNodeModel); |