sdk-javascript/lib/specs/spec_0_2.js

76 lines
1.5 KiB
JavaScript

var uuid = require('uuid/v4');
var empty = require('is-empty')
function Spec_0_2(){
this.payload = {
specversion: '0.2',
id: uuid()
};
}
/*
* Check the spec constraints.
*/
Spec_0_2.prototype.check = function(){
if(empty(this.payload['type'])) {
throw {message: "'type' is invalid"};
}
if(empty(this.payload['specversion'])) {
throw {message: "'specversion' is invalid"};
}
if(this.payload['specversion'] !== '0.2') {
throw {message: "'specversion' value is invalid: '"
+ this.payload['specversion'] + "'"};
}
if(empty(this.payload['id'])) {
throw {message: "'id' is invalid"};
}
}
Spec_0_2.prototype.type = function(_type){
this.payload['type'] = _type;
return this;
}
Spec_0_2.prototype.source = function(_source){
this.payload['source'] = _source;
return this;
}
Spec_0_2.prototype.id = function(_id){
this.payload['id'] = _id;
return this;
}
Spec_0_2.prototype.time = function(_time){
this.payload['time'] = _time.toISOString();
return this;
}
Spec_0_2.prototype.schemaurl = function(_schemaurl){
this.payload['schemaurl'] = _schemaurl;
return this;
}
Spec_0_2.prototype.contenttype = function(_contenttype){
this.payload['contenttype'] = _contenttype;
return this;
}
Spec_0_2.prototype.data = function(_data){
this.payload['data'] = _data;
return this;
}
Spec_0_2.prototype.addExtension = function(key, value){
this.payload[key] = value;
return this;
}
module.exports = Spec_0_2;