38 lines
1.4 KiB
JavaScript
38 lines
1.4 KiB
JavaScript
|
'use strict';
|
||
|
|
||
|
var currentTransport = require('../transports/current-transport');
|
||
|
var ConfigurationChangeMessage = require('./ConfigurationChangeMessage');
|
||
|
var DataModificationMessage = require('./DataModificationMessage');
|
||
|
var DataAccessMessage = require('./DataAccessMessage');
|
||
|
var SecurityMessage = require('./SecurityEventMessage');
|
||
|
var format = require('util').format;
|
||
|
var utils = require('../utils');
|
||
|
|
||
|
|
||
|
module.exports = function auditlog(credentials, serviceOptions, securityContext) {
|
||
|
|
||
|
var transport = currentTransport(credentials, serviceOptions, securityContext);
|
||
|
|
||
|
return {
|
||
|
configurationChange: function (accessedObject) {
|
||
|
utils.validate.objectWithTypeAndId(accessedObject, 'accessed-object');
|
||
|
return new ConfigurationChangeMessage({ object: accessedObject }, transport);
|
||
|
},
|
||
|
|
||
|
read: function (accessedObject) {
|
||
|
utils.validate.objectWithTypeAndId(accessedObject, 'accessed-object');
|
||
|
return new DataAccessMessage({ object: accessedObject }, transport);
|
||
|
},
|
||
|
|
||
|
update: function (accessedObject) {
|
||
|
utils.validate.objectWithTypeAndId(accessedObject, 'accessed-object');
|
||
|
return new DataModificationMessage({ object: accessedObject }, transport);
|
||
|
},
|
||
|
|
||
|
securityMessage: function () {
|
||
|
utils.validate.provided(arguments[0], 'An argument');
|
||
|
return new SecurityMessage({ data: format.apply(null, arguments) }, transport);
|
||
|
}
|
||
|
};
|
||
|
};
|