seatsio 72.1.0 → 72.3.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": "72.1.0",
3
+ "version": "72.3.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",
@@ -13,16 +13,16 @@
13
13
  "url": "https://github.com/seatsio/seatsio-js"
14
14
  },
15
15
  "dependencies": {
16
- "axios": "0.27.2"
16
+ "axios": "1.3.0"
17
17
  },
18
18
  "devDependencies": {
19
- "eslint": "8.26.0",
19
+ "eslint": "8.33.0",
20
20
  "eslint-config-standard": "17.0.0",
21
- "eslint-plugin-import": "2.26.0",
22
- "eslint-plugin-n": "15.5.0",
21
+ "eslint-plugin-import": "2.27.5",
22
+ "eslint-plugin-n": "15.6.1",
23
23
  "eslint-plugin-promise": "6.1.1",
24
- "jest": "29.2.2",
25
- "jest-cli": "29.2.2",
24
+ "jest": "29.4.1",
25
+ "jest-cli": "29.4.1",
26
26
  "uuid": "9.0.0"
27
27
  }
28
28
  }
@@ -16,6 +16,10 @@ class Channels {
16
16
  })
17
17
  }
18
18
 
19
+ addMultiple (eventKey, channelCreationParams) {
20
+ return this.client.post(`/events/${encodeURIComponent(eventKey)}/channels`, channelCreationParams)
21
+ }
22
+
19
23
  remove (eventKey, channelKey) {
20
24
  return this.client.delete(`/events/${encodeURIComponent(eventKey)}/channels/${encodeURIComponent(channelKey)}`)
21
25
  }
@@ -47,6 +47,7 @@ class SeatsioClient {
47
47
  errorHandle: false
48
48
  }
49
49
 
50
+ config.headers['X-Client-Lib'] = 'js'
50
51
  if (workspaceKey) {
51
52
  config.headers['X-Workspace-Key'] = workspaceKey
52
53
  }
@@ -31,6 +31,42 @@ test('can add a channel', async () => {
31
31
  ])
32
32
  })
33
33
 
34
+ test('can add multiple channels', async () => {
35
+ const {
36
+ client,
37
+ user
38
+ } = await testUtils.createTestUserAndClient()
39
+ const chartKey = testUtils.getChartKey()
40
+ await testUtils.createTestChart(chartKey, user.secretKey)
41
+ const event = await client.events.create(chartKey)
42
+
43
+ await client.events.channels.addMultiple(
44
+ event.key,
45
+ [
46
+ { key: 'channelKey1', name: 'channel 1', color: '#FFFF98', index: 1, objects: ['A-1', 'A-2'] },
47
+ { key: 'channelKey2', name: 'channel 2', color: '#FFFF99', index: 2, objects: ['A-3'] }
48
+ ]
49
+ )
50
+
51
+ const retrievedEvent = await client.events.retrieve(event.key)
52
+ expect(retrievedEvent.channels).toEqual([
53
+ new Channel({
54
+ key: 'channelKey1',
55
+ name: 'channel 1',
56
+ color: '#FFFF98',
57
+ index: 1,
58
+ objects: ['A-1', 'A-2']
59
+ }),
60
+ new Channel({
61
+ key: 'channelKey2',
62
+ name: 'channel 2',
63
+ color: '#FFFF99',
64
+ index: 2,
65
+ objects: ['A-3']
66
+ })
67
+ ])
68
+ })
69
+
34
70
  test('index is optional', async () => {
35
71
  const {
36
72
  client,
@@ -2,13 +2,13 @@ const Region = require('../src/Region')
2
2
  const { SeatsioClient } = require('../index.js')
3
3
 
4
4
  test('aborts eventually if server keeps returning 429', async () => {
5
- const client = new SeatsioClient(new Region('https://httpbin.org'))
5
+ const client = new SeatsioClient(new Region('https://httpbin.seatsio.net'))
6
6
  const start = new Date()
7
7
  try {
8
8
  await client.client.get('/status/429')
9
9
  throw new Error('Should have failed')
10
10
  } catch (e) {
11
- expect(e).toBe('get /status/429 resulted in 429 TOO MANY REQUESTS error')
11
+ expect(e).toBe('get /status/429 resulted in 429 Too Many Requests error')
12
12
  const waitTime = new Date().getTime() - start.getTime()
13
13
  expect(waitTime).toBeGreaterThan(10000)
14
14
  expect(waitTime).toBeLessThan(20000)
@@ -16,33 +16,33 @@ test('aborts eventually if server keeps returning 429', async () => {
16
16
  })
17
17
 
18
18
  test('aborts directly if server returns error other than 429', async () => {
19
- const client = new SeatsioClient(new Region('https://httpbin.org'))
19
+ const client = new SeatsioClient(new Region('https://httpbin.seatsio.net'))
20
20
  const start = new Date()
21
21
  try {
22
22
  await client.client.get('/status/400')
23
23
  throw new Error('Should have failed')
24
24
  } catch (e) {
25
- expect(e).toBe('get /status/400 resulted in 400 BAD REQUEST error')
25
+ expect(e).toBe('get /status/400 resulted in 400 Bad Request error')
26
26
  const waitTime = new Date().getTime() - start.getTime()
27
27
  expect(waitTime).toBeLessThan(2000)
28
28
  }
29
29
  })
30
30
 
31
31
  test('aborts directly if server returns 429 but max retries 0', async () => {
32
- const client = new SeatsioClient(new Region('https://httpbin.org')).setMaxRetries(0)
32
+ const client = new SeatsioClient(new Region('https://httpbin.seatsio.net')).setMaxRetries(0)
33
33
  const start = new Date()
34
34
  try {
35
35
  await client.client.get('/status/429')
36
36
  throw new Error('Should have failed')
37
37
  } catch (e) {
38
- expect(e).toBe('get /status/429 resulted in 429 TOO MANY REQUESTS error')
38
+ expect(e).toBe('get /status/429 resulted in 429 Too Many Requests error')
39
39
  const waitTime = new Date().getTime() - start.getTime()
40
40
  expect(waitTime).toBeLessThan(2000)
41
41
  }
42
42
  })
43
43
 
44
44
  test('returns successfully when the server sends a 429 first, but then a successful response', async () => {
45
- const client = new SeatsioClient(new Region('https://httpbin.org'))
45
+ const client = new SeatsioClient(new Region('https://httpbin.seatsio.net'))
46
46
  for (let i = 0; i < 20; ++i) {
47
47
  const response = await client.client.get('/status/429:0.25,204:0.75')
48
48
  expect(response.status).toBe(204)