Socket
Socket
Sign inDemoInstall

dispatch-node-sdk

Package Overview
Dependencies
Maintainers
3
Versions
148
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

dispatch-node-sdk - npm Package Compare versions

Comparing version 2.13.0 to 2.14.0

39

dist/lib/dispatch.js

@@ -848,15 +848,34 @@ 'use strict';

var createCustomer = function createCustomer() {
if (customerInfo.id) {
jobInfo.customer_id = customerInfo.id;
return Promise.resolve();
var createOrUpdateCustomer = function createOrUpdateCustomer() {
var id = customerInfo.id;
var resolveCustomer = function resolveCustomer(resolve, customer) {
returnData.customer = customer;
jobInfo.customer_id = customer.id;
resolve();
};
var rejectCustomer = function rejectCustomer(reject, err) {
errorData.customer = err;
reject(err);
};
// Update the customer if an id is provided
if (id) {
return new Promise(function (resolve, reject) {
_this9.entities.customers.update(id, _underscore2.default.omit(customerInfo, 'id')).then(function (customer) {
resolveCustomer(resolve, customer);
}).catch(function (err) {
rejectCustomer(reject, err);
});
});
}
// Create a customer if no id is provided
return new Promise(function (resolve, reject) {
_this9.entities.customers.create(customerInfo).then(function (customer) {
returnData.customer = customer;
jobInfo.customer_id = customer.id;
resolve();
resolveCustomer(resolve, customer);
}).catch(function (err) {
errorData.customer = err;
reject(err);
rejectCustomer(reject, err);
});

@@ -897,3 +916,3 @@ });

return new Promise(function (resolve, reject) {
createCustomer().then(function () {
createOrUpdateCustomer().then(function () {
return createJob();

@@ -900,0 +919,0 @@ }).then(function () {

@@ -631,17 +631,30 @@ import * as endpoints from './endpoints';

const createCustomer = () => {
if (customerInfo.id) {
jobInfo.customer_id = customerInfo.id;
return Promise.resolve();
const createOrUpdateCustomer = () => {
const { id } = customerInfo;
const resolveCustomer = (resolve, customer) => {
returnData.customer = customer;
jobInfo.customer_id = customer.id;
resolve();
};
const rejectCustomer = (reject, err) => {
errorData.customer = err;
reject(err);
};
// Update the customer if an id is provided
if (id) {
return new Promise((resolve, reject) => {
this.entities.customers.update(id, _.omit(customerInfo, 'id'))
.then(customer => { resolveCustomer(resolve, customer); })
.catch(err => { rejectCustomer(reject, err); });
});
}
// Create a customer if no id is provided
return new Promise((resolve, reject) => {
this.entities.customers.create(customerInfo)
.then(customer => {
returnData.customer = customer;
jobInfo.customer_id = customer.id;
resolve();
}).catch(err => {
errorData.customer = err;
reject(err);
});
.then(customer => { resolveCustomer(resolve, customer); })
.catch(err => { rejectCustomer(reject, err); });
});

@@ -685,3 +698,3 @@ };

return new Promise((resolve, reject) => {
createCustomer()
createOrUpdateCustomer()
.then(() => createJob())

@@ -688,0 +701,0 @@ .then(() => createAppointment())

@@ -793,35 +793,70 @@ import nock from 'nock';

it('should make post requests with all correct data with existing customer', done => {
it('should make patch request if customer id exists', done => {
spyOn(client.entities.customers, 'create').andCallThrough();
spyOn(client.entities.customers, 'update').andReturn(Promise.resolve({
id: 123,
full_name: 'Same Dude',
}));
spyOn(client.entities.jobs, 'create').andReturn(Promise.resolve({
id: 456,
title: 'Test Job',
id: 234,
title: 'Royale',
customer_id: 123,
}));
client.createAndScheduleJob({
title: 'Test Job',
}, {
client.createAndScheduleJob({ title: 'Royale' }, { id: 123, full_name: 'Same Dude' })
.then(response => {
expect(response).toEqual({
job: {
id: 234,
title: 'Royale',
customer_id: 123,
},
customer: {
id: 123,
full_name: 'Same Dude',
},
appointment: null,
});
expect(client.entities.customers.create).toNotHaveBeenCalled();
expect(client.entities.customers.update).toHaveBeenCalledWith(123, { full_name: 'Same Dude' });
done();
})
.catch(done);
});
it('should make post request if customer id does not exist', done => {
spyOn(client.entities.customers, 'update').andCallThrough();
spyOn(client.entities.customers, 'create').andReturn(Promise.resolve({
id: 123,
}).then((response) => {
expect(response).toEqual({
job: {
id: 456,
title: 'Test Job',
customer_id: 123,
},
customer: null,
appointment: null,
});
full_name: 'Same Dude',
}));
spyOn(client.entities.jobs, 'create').andReturn(Promise.resolve({
id: 234,
title: 'Royale',
customer_id: 123,
}));
expect(client.entities.customers.create).toNotHaveBeenCalled();
client.createAndScheduleJob({ title: 'Royale' }, { full_name: 'Same Dude' })
.then(response => {
expect(response).toEqual({
job: {
id: 234,
title: 'Royale',
customer_id: 123,
},
customer: {
id: 123,
full_name: 'Same Dude',
},
appointment: null,
});
expect(client.entities.jobs.create).toHaveBeenCalledWith({
customer_id: 123,
title: 'Test Job',
});
expect(client.entities.customers.update).toNotHaveBeenCalled();
expect(client.entities.customers.create).toHaveBeenCalledWith({ full_name: 'Same Dude' });
// Not creating appointment is tested here as well.
done();
}).catch(done);
done();
})
.catch(done);
});

@@ -828,0 +863,0 @@ });

{
"name": "dispatch-node-sdk",
"version": "2.13.0",
"version": "2.14.0",
"description": "High- and low-level libraries for interacting with the Dispatch API",

@@ -5,0 +5,0 @@ "main": "dist/lib/index.js",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc