Skip to content

Commit

Permalink
Change specs
Browse files Browse the repository at this point in the history
  • Loading branch information
SoeunSona committed Dec 13, 2023
1 parent 2198fa4 commit e1f1b65
Show file tree
Hide file tree
Showing 4 changed files with 83 additions and 22 deletions.
15 changes: 15 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,9 @@ ChartMogul.Customer.merge(config, {

ChartMogul.Customer.contacts(config, customerUuid, { per_page: 10, cursor: 'cursor==' })
ChartMogul.Customer.createContact(config, customerUuid, data)

ChartMogul.Customer.notes(config, customerUuid, { per_page: 10, cursor: 'cursor==' })
ChartMogul.Customer.createNote(config, customerUuid, data)
```

#### [Contacts](https://dev.chartmogul.com/docs/contacts)
Expand All @@ -137,6 +140,18 @@ ChartMogul.Contact.all(config, { per_page: 10, cursor: 'cursor==' })

```

#### [Customer Notes](https://dev.chartmogul.com/docs/customer_notes)

```js
ChartMogul.CustomerNote.create(config, data)
ChartMogul.CustomerNote.retrieve(config)
ChartMogul.CustomerNote.patch(config)
ChartMogul.CustomerNote.destroy(config)
ChartMogul.CustomerNote.all(config, { per_page: 10, cursor: 'cursor==', customer_uuid: customerUuid})

```


#### [Plans](https://dev.chartmogul.com/docs/plans)

```js
Expand Down
9 changes: 5 additions & 4 deletions lib/chartmogul/customer.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

const Resource = require('./resource');
const util = require('./util');
const CustomerNote = require('./customer-note');

class Customer extends Resource {
static get path () {
Expand Down Expand Up @@ -29,13 +30,13 @@ class Customer extends Resource {
}

static notes (config, customerId, params, callback) {
const path = util.expandPath(this.path, [customerId, 'notes']);
return Resource.request(config, 'GET', path, params, callback);
const path = util.expandPath(CustomerNote.path, []);
return Resource.request(config, 'GET', path, { ...params, customerId }, callback);
}

static createrNote (config, customerId, params, callback) {
const path = util.expandPath(this.path, [customerId, 'notes']);
return Resource.request(config, 'POST', path, params, callback);
const path = util.expandPath(CustomerNote.path, []);
return Resource.request(config, 'POST', path, { ...params, customerId }, callback);
}
}

Expand Down
70 changes: 59 additions & 11 deletions test/chartmogul/customer-note.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,26 +7,74 @@ const nock = require('nock');
const CustomerNote = ChartMogul.CustomerNote;

describe('CustomerNote', () => {
it('create a customer note', () => {
const uuid = 'cus_00000000-0000-0000-0000-000000000000';
const postBody = {
customer_uuid: uuid,
type: 'note',
text: 'This is a note'
};

nock(config.API_BASE)
.post('/v1/customer_notes', postBody)
.reply(200, {
uuid: 'note_00000000-0000-0000-0000-000000000000',
customer_uuid: uuid,
type: 'note',
text: 'This is a note',
created_at: '2021-10-20T14:00:00.000Z',
updated_at: '2021-10-20T14:00:00.000Z',
author: 'John Doe ([email protected])'
});

CustomerNote.create(config, postBody)
.then(res => {
expect(res.customer_uuid).to.be.equal(uuid);
expect(res.text).to.be.equal('This is a note');
});
});

it('lists all customer notes', () => {
const uuid = 'cus_00000000-0000-0000-0000-000000000000';

nock(config.API_BASE)
.get('/v1/customer_notes')
.reply(200, {
entries: [{
uuid: 'note_00000000-0000-0000-0000-000000000000',
customer_uuid: 'cus_00000000-0000-0000-0000-000000000000',
author: 'John Doe ([email protected])',
text: 'This is a note',
created_at: '2015-01-01T12:00:00-05:00',
updated_at: '2015-01-01T12:00:00-05:00',
type: 'note'
}]
});

CustomerNote.all(config, uuid)
.then(res => {
expect(res.entries).to.haveLength(1);
});
});

it('retrieves a customer note', () => {
const uuid = 'note_00000000-0000-0000-0000-000000000000';

nock(config.API_BASE)
.get('/v1/customer_notes' + '/' + uuid)
.reply(200, {
/* eslint-disable camelcase */
uuid: uuid,
uuid,
customer_uuid: 'cus_00000000-0000-0000-0000-000000000000',
type: 'note',
text: 'This is a note',
created_at: '2021-10-20T14:00:00.000Z',
updated_at: '2021-10-20T14:00:00.000Z',
author: 'John Doe ([email protected])'
/* eslint-enable camelcase */
});

CustomerNote.retrieve(config, uuid).then(res => {
expect(res).to.have.property('uuid');
});
CustomerNote.retrieve(config, uuid).then(res => {
expect(res).to.have.property('uuid');
});
});

it('updates a customer note', () => {
Expand All @@ -39,7 +87,7 @@ describe('CustomerNote', () => {
.patch('/v1/customer_notes' + '/' + uuid, postBody)
.reply(200, {
/* eslint-disable camelcase */
uuid: uuid,
uuid,
customer_uuid: 'cus_00000000-0000-0000-0000-000000000000',
type: 'note',
text: 'This is a note',
Expand All @@ -49,10 +97,10 @@ describe('CustomerNote', () => {
/* eslint-enable camelcase */
});

CustomerNote.patch(config, uuid, postBody)
.then(res => {
expect(res['text']).to.be.equal('This is a note');
});
CustomerNote.patch(config, uuid, postBody)
.then(res => {
expect(res.text).to.be.equal('This is a note');
});
});

it('deletes a customer note', () => {
Expand Down
11 changes: 4 additions & 7 deletions test/chartmogul/customer.js
Original file line number Diff line number Diff line change
Expand Up @@ -191,23 +191,22 @@ describe('Customer', () => {
it('creates a new note from a customer', () => {
const customerUuid = 'cus_00000000-0000-0000-0000-000000000000';
const postBody = {
customer_uuid: customerUuid,
type: 'note',
author_email: '[email protected]',
note: 'This is a note'
};

nock(config.API_BASE)
.post(`/v1/customers/${customerUuid}/notes`, postBody)
.post('/v1/customer_notes', postBody)
.reply(200, {
/* eslint-disable camelcase */
uuid: 'note_00000000-0000-0000-0000-000000000000',
customer_uuid: 'cus_00000000-0000-0000-0000-000000000000',
author: 'John Doe ([email protected])',
text: 'This is a note',
created_at: '2015-01-01T12:00:00-05:00',
updated_at: '2015-01-01T12:00:00-05:00',
type: 'note'
/* eslint-enable camelcase */
});

Customer.createrNote(config, customerUuid, postBody)
Expand All @@ -220,9 +219,8 @@ describe('Customer', () => {
const customerUuid = 'cus_00000000-0000-0000-0000-000000000000';

nock(config.API_BASE)
.get(`/v1/customers/${customerUuid}/notes`)
.get(`/v1/customer_notes?customer_uuid=${customerUuid}`)
.reply(200, {
/* eslint-disable camelcase */
entries: [{
uuid: 'note_00000000-0000-0000-0000-000000000000',
customer_uuid: 'cus_00000000-0000-0000-0000-000000000000',
Expand All @@ -232,8 +230,7 @@ describe('Customer', () => {
updated_at: '2015-01-01T12:00:00-05:00',
type: 'note'
}]
/* eslint-enable camelcase */
});
});

Customer.notes(config, customerUuid)
.then(res => {
Expand Down

0 comments on commit e1f1b65

Please sign in to comment.