var async = require('async');
Require the API wrapper, if you have npm installed it this would be: var api= require(‘7digital-api’);
var consumerKey = process.env.NODE_API_CLIENT_TESTS_CONSUMER_KEY;
var consumerSecret = process.env.NODE_API_CLIENT_TESTS_CONSUMER_SECRET;
var api = require('../index').configure({
consumerkey: consumerKey,
consumersecret: consumerSecret,
defaultParams: { shopId: 826 }
});
var basketId;
console.log('Api configured with shopId %d', api.options.defaultParams.shopId);
async.waterfall([
function createBasket(cb) {
api.Basket().create({ artistid: 1 }, function processReleases(err, res) {
if (err) { return cb(err); }
basketId = res.basket.id;
console.log('Created basket', basketId);
return cb();
});
},
function reconfigureApiShop(cb) {
Change to a different shop (where the basket won’t be valid)
api = api.reconfigure({ defaultParams: { shopId: 34 }});
console.log('Api configured with shopId %d', api.options.defaultParams.shopId);
return cb();
},
function addToBasket(cb) { // Check GET is reconfigured
api.Basket().addItem({
basketId: basketId,
releaseId: 769006,
trackId: 13166687 // Test content
}, function (err, res) {
if (err && err.code === '2002') {
Got the expected country restriction error for GET
console.log('First shop reconfiguration successful for GET');
return cb();
}
return cb(new Error('First shop reconfiguration unsuccessful for GET'));
});
},
function applyVoucher(cb) { // Check POST is reconfigured
api.Basket().applyVoucher({
basketId: basketId,
voucherCode: 'some-voucher'
}, function (err) {
if (err && err.code === '2002') {
Got the expected country restriction error for POST
console.log('First shop reconfiguration successful for POST');
return cb();
}
return cb(new Error('First shop reconfiguration unsuccessful for POST'));
});
},
function restoreOriginApiShop(cb) {
Restore correct shop for the basket
api = api.reconfigure({ defaultParams: { shopId: 826 }});
console.log('Api configured with shopId %d', api.options.defaultParams.shopId);
return cb();
},
function addToBasket(cb) { // Check GET is reconfigured again
api.Basket().addItem({
basketId: basketId,
releaseId: 769006,
trackId: 13166687 // Test content
}, function (err, res) {
if (err) {
return cb(new Error('Second shop reconfiguration unsuccessful for GET: ' + err));
}
console.log('Second shop reconfiguration successful for GET');
return cb();
});
},
function applyVoucher(cb) { // Check POST is reconfigured again
api.Basket().applyVoucher({
basketId: basketId,
voucherCode: 'some-voucher'
}, function (err) {
if (err && err.code === '2001') {
Got the expected voucher not found error
console.log('Second shop reconfiguration successful for POST');
return cb();
}
return cb(new Error('Second shop reconfiguration unsuccessful for POST'));
});
}
], function (err) {
if (err) { throw err; }
console.log('Example completed successfully');
});