Files
P42_UI/app/models/projects/icmp/ICMPProjectNodeModel.js
T
2025-08-27 07:03:09 +00:00

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);