SAP-BTP-Spielwiese/app1/node_modules/@sap/audit-logging/lib/v2/DataAccessMessage.js

60 lines
1.8 KiB
JavaScript
Raw Normal View History

'use strict';
var utils = require('../utils');
var common = require('./common');
var DataAccessBase = require('../base-messages/DataAccessBase');
module.exports = DataAccessMessage;
function DataAccessMessage(content, transport) {
DataAccessBase.call(this, content, transport);
}
require('util').inherits(DataAccessMessage, DataAccessBase);
DataAccessMessage.prototype.attachment = function (attachment) {
utils.validate.object(attachment, 'attachment');
utils.validate.notEmptyString(attachment.id, 'attachment id');
if (attachment.name !== undefined) {
utils.validate.notEmptyString(attachment.name, 'attachment name');
}
if (!this._content.attachments) {
this._content.attachments = [];
}
this._content.attachments.push(attachment);
return this;
};
DataAccessMessage.prototype.attribute = function (attribute) {
utils.validate.object(attribute, 'attribute');
utils.validate.notEmptyString(attribute.name, 'attribute name');
utils.validate.attributeName(this._content.attributes, attribute.name);
if (attribute.successful !== undefined) {
utils.validate.boolean(attribute.successful, 'attribute successful');
}
this._content.attributes.push(attribute);
return this;
};
DataAccessMessage.prototype._validateContent = function () {
DataAccessBase.prototype._validateContent.call(this);
let dataSubject = this._content['data_subjects'] || this._content['data_subject'];
utils.validate.provided(dataSubject, 'data-subject(s)');
};
DataAccessMessage.prototype.dataSubject = common.dataSubject;
DataAccessMessage.prototype.dataSubjects = function (arr) {
utils.validate.notEmptyArray(arr, 'data-subjects');
arr.forEach((subject, index) => {
utils.validate.dataSubject(subject, 'data-subjects/' + index);
});
this._content['data_subjects'] = arr;
return this;
};
DataAccessMessage.prototype.log = common.log;