Files
P42_UI/app/models/system/SupportModel.js
T
2025-08-27 07:03:09 +00:00

87 lines
2.3 KiB
JavaScript

class SupportModel extends EICModel {
constructor(privileges) {
super('/zammad/tickets', privileges);
}
/**
*
* @returns
*/
list(filters) {
//if(!this.hasPrivilege('list')) return( new Promise((resolve, reject) => reject()))
let endpoint = this.getApiEndpoint('list');
return (
this.request(endpoint.uri, endpoint.method, filters)
.then( async serverData => {
return serverData.payload;
})
)
}
/**
*
* @returns
*/
get(id) {
// if(!this.hasPrivilege('list')) return( new Promise((resolve, reject) => reject()))
let endpoint = this.getApiEndpoint('get');
endpoint.uri = endpoint.uri.replace('{id}', id);
return (
this.request(endpoint.uri, endpoint.method)
.then( async serverData => {
return serverData.payload;
})
)
}
/**
*
* @returns
*/
create(ticket) {
//if(!this.hasPrivilege('create')) return( new Promise((resolve, reject) => reject()))
let endpoint = this.getApiEndpoint('create');
return (
this.request(endpoint.uri, endpoint.method, ticket)
.then( async serverData => {
return serverData.payload;
})
)
}
/**
*
* @returns
*/
update(id, content) {
//if(!this.hasPrivilege('list')) return( new Promise((resolve, reject) => reject()))
let endpoint = this.getApiEndpoint('update');
endpoint.uri = endpoint.uri.replace('{id}', id);
return (
this.request(endpoint.uri, endpoint.method, content)
.then( async serverData => {
return serverData.payload;
})
)
}
download(ticketId, articleId, attachmentId) {
// if(!this.hasPrivilege('list')) return( new Promise((resolve, reject) => reject()))
let endpoint = this.getApiEndpoint('download');
endpoint.uri = endpoint.uri.replace('{ticid}', ticketId);
endpoint.uri = endpoint.uri.replace('{artid}', articleId);
endpoint.uri = endpoint.uri.replace('{attid}', attachmentId);
window.open(endpoint.uri, '_blank');
}
}
app.registerClass('SupportModel', SupportModel);