go-jsbox-ona
Version:
A vumi jsbox helper library for interacting with Ona
40 lines (27 loc) • 835 B
JavaScript
var Q = require('q');
var URL = require('url');
var vumigo = require('vumigo_v02');
var JsonApi = vumigo.http.api.JsonApi;
var errors = require('./errors');
var OnaValidationError = errors.OnaValidationError;
function submit(ona, data) {
var http = new JsonApi(ona.im);
var url = URL.resolve(ona.url, 'submissions');
return Q(parse)
.fcall(data)
.then(function(data) {
return http.post(url, {
data: data,
auth: ona.auth
});
});
}
function parse(data) {
data = data || {};
if (!('id' in data)) throw new OnaValidationError(
"Submissions need an 'id' field");
if (!('submission' in data)) throw new OnaValidationError(
"Submissions need a 'submission' field");
return data;
}
module.exports = submit;