Skip to content

Commit

Permalink
* Implemented the creation of categories.
Browse files Browse the repository at this point in the history
  • Loading branch information
nouvak committed Apr 27, 2016
1 parent 36a6bf4 commit 43d17de
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 16 deletions.
4 changes: 4 additions & 0 deletions lib/categories.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ module.exports = function (restClient) {
module.list = function () {
return restClient.get('/categories');
}

module.create = function (newCategory) {
return restClient.post('/categories', newCategory);
}

return module;
}
26 changes: 11 additions & 15 deletions lib/rest_client.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,49 +21,45 @@ module.exports.RestClient = function (options) {
secret: options.accessTokenSecret
};

function api_call(request_data) {
function apiCall(request_data) {
logger.debug('Calling API endpoint: ' + request_data.method + ' ' + request_data.url);
return new Promise(function (resolve, reject) {
request({
url: request_data.url,
method: request_data.method,
headers: oauth.toHeader(oauth.authorize(request_data, token)),
form: request_data.data,
json: true,
body: request_data.body,
}, function(error, response, body) {
logger.debug('Response received.');
if (error) {
logger.error('Error occured: ' + error);
reject(error);
}
resolve(JSON.parse(body));
resolve(body);
});
});
}

instance.get = function (resourceUrl) {
var request_data = {
url: createUrl(resourceUrl),
method: 'GET',
data: {
status: 'Hello Ladies + Gentlemen, a signed OAuth request!'
}
method: 'GET'
};
return api_call(request_data);
return apiCall(request_data);
}

function createUrl(resourceUrl) {
return servelrUrl + '/' + apiVersion + resourceUrl;
}

instance.post = function (resourceUrl) {
instance.post = function (resourceUrl, data) {
var request_data = {
url: createUrl(resourceUrl),
method: 'POST',
data: {
status: 'Hello Ladies + Gentlemen, a signed OAuth request!'
}
body: data
};
return api_call(request_data);
return apiCall(request_data);
}

instance.put = function (resourceUrl) {
Expand All @@ -74,7 +70,7 @@ module.exports.RestClient = function (options) {
status: 'Hello Ladies + Gentlemen, a signed OAuth request!'
}
};
return api_call(request_data);
return apiCall(request_data);
}

instance.delete = function (resourceUrl) {
Expand All @@ -85,7 +81,7 @@ module.exports.RestClient = function (options) {
status: 'Hello Ladies + Gentlemen, a signed OAuth request!'
}
};
return api_call(request_data);
return apiCall(request_data);
}

return instance;
Expand Down
19 changes: 18 additions & 1 deletion test/integration/categories.integration.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,27 @@ suite('categories tests', function () {
var client = Magento2Client(credentials);
client.categories.list()
.then(function (categories) {
assert.equal(categories, '');
assert.equal(categories.parent_id, 1);
})
.then(done, done);
});

test('create category test', function (done) {
var client = Magento2Client(credentials);
var newCategory = {
category: {
parentId: 3,
name: 'Category from integratin test',
isActive: true,
includeInMenu: true,
}
};
client.categories.create(newCategory)
.then(function (result) {
assert.equal(result.parent_id, 3);
})
.then(done, done);
})
});


0 comments on commit 43d17de

Please sign in to comment.