Skip to content

Instantly share code, notes, and snippets.

@simonmcmanus
Last active August 29, 2015 14:01
Show Gist options
  • Save simonmcmanus/d76e5b2ac00740b338ee to your computer and use it in GitHub Desktop.
Save simonmcmanus/d76e5b2ac00740b338ee to your computer and use it in GitHub Desktop.
Upload an asset using the register/complete routes using the AdBank A5 API
'use strict';
var request = require('request');
var path = require('path');
var fs = require('fs');
var config = require('./config');
var generateHash = require('adstream-adbank-api-generate-hash');
var url = config.api + '/assets/register';
var filename = 'osmosoft.jpg';
var id = '1243';
var file = path.join(__dirname, filename);
var stat = fs.statSync(file);
var register = function() {
request({
method: 'POST',
uri: url,
headers: {
authorization: generateHash.getHeaderHash(config.key, config.secret)
},
json: {
externalId: id,
fileName: path.basename(file),
fileSize: stat.size
}
}, function(e, r, d) {
postFile(d.files[0].fileUri, d.files[0].fileId);
});
};
var postFile = function(postTo, fileId) {
var post = request.post(postTo, function() {
complete(fileId);
});
var form = post.form();
form.append('fileupload', fs.createReadStream(file));
};
function complete(id) {
var url = config.api + '/assets/register/complete';
var options = {
url: url,
headers: {
authorization: generateHash.getHeaderHash(config.key, config.secret)
},
json: {
fileName: filename,
gdnFileId: id
}
};
request.post(options, function(e,r, d) {
console.log('complete cb:', e, r.statusCode, d);
});
}
register();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment