60 lines
1.8 KiB
JavaScript
60 lines
1.8 KiB
JavaScript
|
'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;
|