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