mirror of
https://github.com/ZwareBear/awx.git
synced 2026-04-03 06:31:49 -05:00
62 lines
2.6 KiB
JavaScript
62 lines
2.6 KiB
JavaScript
const NotificationsMixin = (parent) => class extends parent {
|
|
readNotificationTemplates (id, params = {}) {
|
|
return this.http.get(`${this.baseUrl}${id}/notification_templates/`, { params });
|
|
}
|
|
|
|
readNotificationTemplatesSuccess (id, params = {}) {
|
|
return this.http.get(`${this.baseUrl}${id}/notification_templates_success/`, { params });
|
|
}
|
|
|
|
readNotificationTemplatesError (id, params = {}) {
|
|
return this.http.get(`${this.baseUrl}${id}/notification_templates_error/`, { params });
|
|
}
|
|
|
|
associateNotificationTemplatesSuccess (resourceId, notificationId) {
|
|
return this.http.post(`${this.baseUrl}${resourceId}/notification_templates_success/`, { id: notificationId });
|
|
}
|
|
|
|
disassociateNotificationTemplatesSuccess (resourceId, notificationId) {
|
|
return this.http.post(`${this.baseUrl}${resourceId}/notification_templates_success/`, { id: notificationId, disassociate: true });
|
|
}
|
|
|
|
associateNotificationTemplatesError (resourceId, notificationId) {
|
|
return this.http.post(`${this.baseUrl}${resourceId}/notification_templates_error/`, { id: notificationId });
|
|
}
|
|
|
|
disassociateNotificationTemplatesError (resourceId, notificationId) {
|
|
return this.http.post(`${this.baseUrl}${resourceId}/notification_templates_error/`, { id: notificationId, disassociate: true });
|
|
}
|
|
|
|
/**
|
|
* This is a helper method meant to simplify setting the "on" or "off" status of
|
|
* a related notification.
|
|
*
|
|
* @param[resourceId] - id of the base resource
|
|
* @param[notificationId] - id of the notification
|
|
* @param[notificationType] - the type of notification, options are "success" and "error"
|
|
* @param[associationState] - Boolean for associating or disassociating, options are true or false
|
|
*/
|
|
// eslint-disable-next-line max-len
|
|
updateNotificationTemplateAssociation (resourceId, notificationId, notificationType, associationState) {
|
|
if (notificationType === 'success' && associationState === true) {
|
|
return this.associateNotificationTemplatesSuccess(resourceId, notificationId);
|
|
}
|
|
|
|
if (notificationType === 'success' && associationState === false) {
|
|
return this.disassociateNotificationTemplatesSuccess(resourceId, notificationId);
|
|
}
|
|
|
|
if (notificationType === 'error' && associationState === true) {
|
|
return this.associateNotificationTemplatesError(resourceId, notificationId);
|
|
}
|
|
|
|
if (notificationType === 'error' && associationState === false) {
|
|
return this.disassociateNotificationTemplatesError(resourceId, notificationId);
|
|
}
|
|
|
|
throw new Error(`Unsupported notificationType, associationState combination: ${notificationType}, ${associationState}`);
|
|
}
|
|
};
|
|
|
|
export default NotificationsMixin;
|