seatsio 71.0.0 → 72.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "seatsio",
3
- "version": "71.0.0",
3
+ "version": "72.0.0",
4
4
  "main": "index.js",
5
5
  "description": "Official JavaScript and Node.JS client library for the Seats.io REST API",
6
6
  "license": "MIT",
package/releasing.md CHANGED
@@ -1,10 +1,4 @@
1
1
  *Note: this is internal documentation for the seats.io team*
2
2
 
3
- Through GitHub actions (the preferred way):
4
-
5
- Run https://github.com/seatsio/seatsio-js/actions/workflows/release.yml
6
-
7
- Manually:
8
-
9
3
  1) Set the correct version number in package.json
10
4
  2) Create the release in GitHub
@@ -23,9 +23,10 @@ class Events {
23
23
  * @param {?TableBookingConfig} tableBookingConfig
24
24
  * @param {?string} socialDistancingRulesetKey
25
25
  * @param {?object} objectCategories
26
+ * @param {?array} categories
26
27
  * @returns {Promise<Event>}
27
28
  */
28
- create (chartKey, eventKey = null, tableBookingConfig = null, socialDistancingRulesetKey = null, objectCategories = null) {
29
+ create (chartKey, eventKey = null, tableBookingConfig = null, socialDistancingRulesetKey = null, objectCategories = null, categories = null) {
29
30
  const requestParameters = {}
30
31
 
31
32
  requestParameters.chartKey = chartKey
@@ -46,6 +47,10 @@ class Events {
46
47
  requestParameters.objectCategories = objectCategories
47
48
  }
48
49
 
50
+ if (categories != null) {
51
+ requestParameters.categories = categories
52
+ }
53
+
49
54
  return this.client.post('/events', requestParameters)
50
55
  .then((res) => new EventDeserializer().fromJson(res.data))
51
56
  }
@@ -68,7 +73,7 @@ class Events {
68
73
  * @param {?object} objectCategories
69
74
  * @returns {Promise}
70
75
  */
71
- update (eventKey, chartKey = null, newEventKey = null, tableBookingConfig = null, socialDistancingRulesetKey = null, objectCategories = null) {
76
+ update (eventKey, chartKey = null, newEventKey = null, tableBookingConfig = null, socialDistancingRulesetKey = null, objectCategories = null, categories = null) {
72
77
  const requestParameters = {}
73
78
 
74
79
  if (chartKey !== null) {
@@ -91,6 +96,10 @@ class Events {
91
96
  requestParameters.objectCategories = objectCategories
92
97
  }
93
98
 
99
+ if (categories != null) {
100
+ requestParameters.categories = categories
101
+ }
102
+
94
103
  return this.client.post(`events/${encodeURIComponent(eventKey)}`, requestParameters)
95
104
  }
96
105
 
@@ -1,6 +1,7 @@
1
1
  const Page = require('../Page.js')
2
2
  const Lister = require('../Lister.js')
3
3
  const User = require('./User.js')
4
+ const Invitation = require('../Invitations/Invitation')
4
5
 
5
6
  class Users {
6
7
  /**
@@ -20,6 +21,7 @@ class Users {
20
21
  const requestParameters = { email, role, workspaces }
21
22
 
22
23
  return this.client.post('/users/actions/invite', requestParameters)
24
+ .then(res => new Invitation(res.data))
23
25
  }
24
26
 
25
27
  /**
@@ -1,6 +1,7 @@
1
1
  const testUtils = require('../testUtils.js')
2
2
  const SocialDistancingRuleset = require('../../src/Charts/SocialDistancingRuleset.js')
3
3
  const TableBookingConfig = require('../../src/Events/TableBookingConfig')
4
+ const Category = require('../../src/Charts/Category')
4
5
 
5
6
  test('should check that only chart key is required', async () => {
6
7
  const { client, user } = await testUtils.createTestUserAndClient()
@@ -72,3 +73,18 @@ test('it supports object categories', async () => {
72
73
 
73
74
  expect(event.objectCategories).toEqual({ 'A-1': 10 })
74
75
  })
76
+
77
+ test('it supports categories', async () => {
78
+ const { client, user } = await testUtils.createTestUserAndClient()
79
+ const chartKey = testUtils.getChartKey()
80
+ await testUtils.createTestChart(chartKey, user.secretKey)
81
+
82
+ const eventCategory = new Category('eventCat1', 'Event Level Category', '#AAABBB')
83
+
84
+ const event = await client.events.create(chartKey, null, null, null, null, [eventCategory])
85
+
86
+ expect(event.categories.length).toEqual(4) // 3 from sampleChart.json, 1 event level category
87
+ expect(event.categories.filter(cat => cat.key === 'eventCat1').length).toEqual(1)
88
+ expect(event.categories.filter(cat => cat.key === 'eventCat1')[0].label).toEqual('Event Level Category')
89
+ expect(event.categories.filter(cat => cat.key === 'eventCat1')[0].color).toEqual('#AAABBB')
90
+ })
@@ -1,6 +1,7 @@
1
1
  const testUtils = require('../testUtils.js')
2
2
  const SocialDistancingRuleset = require('../../src/Charts/SocialDistancingRuleset.js')
3
3
  const TableBookingConfig = require('../../src/Events/TableBookingConfig')
4
+ const Category = require('../../src/Charts/Category')
4
5
 
5
6
  test('should update event\'s chart key', async () => {
6
7
  const { client } = await testUtils.createTestUserAndClient()
@@ -100,3 +101,34 @@ test('it supports removing the object categories', async () => {
100
101
  const retrievedEvent = await client.events.retrieve(event.key)
101
102
  expect(retrievedEvent.objectCategories).toBeFalsy()
102
103
  })
104
+
105
+ test('it supports updating the categories', async () => {
106
+ const { client, user } = await testUtils.createTestUserAndClient()
107
+ const chartKey = testUtils.getChartKey()
108
+ await testUtils.createTestChart(chartKey, user.secretKey)
109
+ const eventCategory = new Category('eventCat1', 'Event Level Category', '#AAABBB')
110
+ const newEventCategory = new Category('eventCat2', 'Event Level Category 2', '#BBBCCC')
111
+ const event = await client.events.create(chartKey, null, null, null, null, [eventCategory])
112
+
113
+ await client.events.update(event.key, null, null, null, null, null, [newEventCategory])
114
+
115
+ const retrievedEvent = await client.events.retrieve(event.key)
116
+ expect(retrievedEvent.categories.length).toEqual(4) // 3 from sampleChart.json, 1 event level category
117
+ expect(retrievedEvent.categories.filter(cat => cat.key === 'eventCat1').length).toEqual(0)
118
+ expect(retrievedEvent.categories.filter(cat => cat.key === 'eventCat2').length).toEqual(1)
119
+ expect(retrievedEvent.categories.filter(cat => cat.key === 'eventCat2')[0].label).toEqual('Event Level Category 2')
120
+ expect(retrievedEvent.categories.filter(cat => cat.key === 'eventCat2')[0].color).toEqual('#BBBCCC')
121
+ })
122
+
123
+ test('it supports removing categoreis', async () => {
124
+ const { client, user } = await testUtils.createTestUserAndClient()
125
+ const chartKey = testUtils.getChartKey()
126
+ await testUtils.createTestChart(chartKey, user.secretKey)
127
+ const eventCategory = new Category('eventCat1', 'Event Level Category', '#AAABBB')
128
+ const event = await client.events.create(chartKey, null, null, null, null, [eventCategory])
129
+
130
+ await client.events.update(event.key, null, null, null, null, null, [])
131
+
132
+ const retrievedEvent = await client.events.retrieve(event.key)
133
+ expect(retrievedEvent.categories.length).toEqual(3) // 3 from sampleChart.json, event level category was removed
134
+ })
@@ -4,11 +4,11 @@ test('invite users', async () => {
4
4
  const { client } = await testUtils.createTestUserAndClient()
5
5
  const email = testUtils.getRandomEmail()
6
6
 
7
- await client.users.invite(email, 'COMPANY_ADMIN')
7
+ const invitation = await client.users.invite(email, 'COMPANY_ADMIN')
8
8
 
9
9
  const invitations = await client.invitations.listAll()
10
10
  expect(invitations.length).toBe(1)
11
- expect(invitations[0].email).toBe(email)
11
+ expect(invitation.email).toBe(email)
12
12
  })
13
13
 
14
14
  test('invite non admin users', async () => {
@@ -17,9 +17,9 @@ test('invite non admin users', async () => {
17
17
  const workspace = await client.workspaces.create('a workspace')
18
18
  const workspace2 = await client.workspaces.create('another workspace')
19
19
 
20
- await client.users.invite(email, 'NON_ADMIN', [workspace.key, workspace2.key])
20
+ const invitation = await client.users.invite(email, 'NON_ADMIN', [workspace.key, workspace2.key])
21
21
 
22
22
  const invitations = await client.invitations.listAll()
23
23
  expect(invitations.length).toBe(1)
24
- expect(invitations[0].email).toBe(email)
24
+ expect(invitation.email).toBe(email)
25
25
  })