Skip to content

Commit

Permalink
add SIM Card Network Preferences Methods
Browse files Browse the repository at this point in the history
  • Loading branch information
lucasassisrosa committed Jul 10, 2020
1 parent 993b770 commit f90f4fb
Show file tree
Hide file tree
Showing 4 changed files with 279 additions and 78 deletions.
5 changes: 4 additions & 1 deletion lib/resources/ActionsSimCards.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
'use strict';


var TelnyxResource = require('../TelnyxResource');
var telnyxMethod = TelnyxResource.method;

Expand All @@ -12,4 +11,8 @@ module.exports = TelnyxResource.extend({
path: '/register/sim_cards',
}),

bulkNetworkPreferences: telnyxMethod({
method: 'PUT',
path: '/network_preferences/sim_cards',
}),
});
106 changes: 81 additions & 25 deletions lib/resources/SimCards.js
Original file line number Diff line number Diff line change
@@ -1,40 +1,96 @@
'use strict';


var TelnyxResource = require('../TelnyxResource');
var utils = require('../utils');
var telnyxMethod = TelnyxResource.method;

function transformResponseData(response, telnyx) {
return utils.addResourceToResponseData(
response,
telnyx,
'simCards',
{
del: telnyxMethod({
method: 'DELETE',
path: '/{sim_card_id}',
urlParams: ['sim_card_id'],
paramsValues: [response.data.id],
paramsNames: ['id'],
}),

save: telnyxMethod({
method: 'PATCH',
path: '/{sim_card_id}',
urlParams: ['sim_card_id'],
paramsValues: [response.data.id],
paramsNames: ['id'],
}),

activate: telnyxMethod({
method: 'POST',
path: '/{sim_card_id}/actions/activate',
urlParams: ['sim_card_id'],
paramsValues: [response.data.id],
paramsNames: ['id'],
}),

deactivate: telnyxMethod({
method: 'POST',
path: '/{sim_card_id}/actions/deactivate',
urlParams: ['sim_card_id'],
paramsValues: [response.data.id],
paramsNames: ['id'],
}),

retrieveNetworkPreferences: telnyxMethod({
method: 'GET',
path: '/{sim_card_id}/network_preferences',
urlParams: ['sim_card_id'],
paramsValues: [response.data.id],
paramsNames: ['id'],
}),

setNetworkPreferences: telnyxMethod({
method: 'PUT',
path: '/{sim_card_id}/network_preferences',
urlParams: ['sim_card_id'],
paramsValues: [response.data.id],
paramsNames: ['id'],
}),

deleteNetworkPreferences: telnyxMethod({
method: 'DELETE',
path: '/{sim_card_id}/network_preferences',
urlParams: ['sim_card_id'],
paramsValues: [response.data.id],
paramsNames: ['id'],
}),
}
);
}

module.exports = TelnyxResource.extend({
path: 'sim_cards',
includeBasic: ['list', 'update'],
includeBasic: ['update'],

list: telnyxMethod({
method: 'GET',
methodType: 'list',

transformResponseData: transformResponseData,
}),

create: telnyxMethod({
method: 'POST',

transformResponseData: transformResponseData,
}),

retrieve: telnyxMethod({
method: 'GET',
path: '/{id}',
urlParams: ['id'],

transformResponseData: function(response, telnyx) {
return utils.addResourceToResponseData(
response,
telnyx,
'simCards',
{
activate: telnyxMethod({
method: 'POST',
path: '/{sim_card_id}/actions/activate',
paramsNames: ['id'],
urlParams: ['sim_card_id'],
}),

deactivate: telnyxMethod({
method: 'POST',
path: '/{sim_card_id}/actions/deactivate',
paramsNames: ['id'],
urlParams: ['sim_card_id'],
}),
}
);
},
})
transformResponseData: transformResponseData,
}),
});
61 changes: 49 additions & 12 deletions test/resources/ActionsSimCards.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,26 @@ var expect = require('chai').expect;

var TEST_AUTH_KEY = utils.getUserTelnyxKey();

describe('SimCards Actions Resource', function() {
describe('SimCards Actions Resource', function () {
const registerData = {
registration_codes: [
'2578318790'
registration_codes: ['2578318790'],
sim_card_group_id: '6a09cdc3-8948-47f0-aa62-74ac943d6c58',
};

const bulkData = {
mobile_operator_networks_preferences: [
{
mobile_operator_network_id: '6a09cdc3-8948-47f0-aa62-74ac943d6c58',
priority: 0,
},
],
sim_card_ids: [
'6a09cdc3-8948-47f0-aa62-74ac943d6c58',
'6b14e151-8493-4fa1-8664-1cc4e6d14158',
],
sim_card_group_id: '6a09cdc3-8948-47f0-aa62-74ac943d6c58'
};

function responseFn(response) {
function responseFnRegister(response) {
expect(response.data[0]).to.include({
record_type: 'sim_card',
});
Expand All @@ -24,15 +35,41 @@ describe('SimCards Actions Resource', function() {
expect(response.data[0]).to.have.property('sim_card_group_id');
}

describe('register', function() {
it('Sends the correct request', function() {
return telnyx.actions.simCards.register(registerData)
.then(responseFn)
function responseFnBulk(response) {
expect(response.data[0]).to.include({
record_type: 'sim_card_network_preferences',
});
expect(response.data[0]).to.have.property(
'mobile_operator_networks_preferences'
);
expect(response.data[0]).to.have.property('sim_card_id');
}

describe('register', function () {
it('Sends the correct request', function () {
return telnyx.actions.simCards
.register(registerData)
.then(responseFnRegister);
});

it('Sends the correct request [with specified auth]', function () {
return telnyx.actions.simCards
.register(registerData, TEST_AUTH_KEY)
.then(responseFnRegister);
});
});

describe('bulkNetworkPreferences', function () {
it('Sends the correct request', function () {
return telnyx.actions.simCards
.bulkNetworkPreferences(bulkData)
.then(responseFnBulk);
});

it('Sends the correct request [with specified auth]', function() {
return telnyx.actions.simCards.register(registerData, TEST_AUTH_KEY)
.then(responseFn)
it('Sends the correct request [with specified auth]', function () {
return telnyx.actions.simCards
.bulkNetworkPreferences(bulkData, TEST_AUTH_KEY)
.then(responseFnBulk);
});
});
});
Loading

0 comments on commit f90f4fb

Please sign in to comment.