@next-k8s/tickets 1.0.27 → 1.0.28
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/CHANGELOG.md +8 -0
- package/coverage/clover.xml +67 -45
- package/coverage/coverage-final.json +9 -8
- package/coverage/lcov-report/events/listeners/_queue-group-name.ts.html +88 -0
- package/coverage/lcov-report/events/listeners/index.html +131 -0
- package/coverage/lcov-report/events/listeners/order-created.ts.html +157 -0
- package/coverage/lcov-report/events/publishers/index.html +116 -0
- package/coverage/lcov-report/events/publishers/updated.ts.html +106 -0
- package/coverage/lcov-report/index.html +18 -18
- package/coverage/lcov-report/models/index.html +116 -0
- package/coverage/lcov-report/models/ticket.ts.html +235 -0
- package/coverage/lcov-report/src/app.ts.html +1 -1
- package/coverage/lcov-report/src/events/listeners/_queue-group-name.ts.html +2 -2
- package/coverage/lcov-report/src/events/listeners/index.html +26 -11
- package/coverage/lcov-report/src/events/listeners/order-cancelled.ts.html +157 -0
- package/coverage/lcov-report/src/events/listeners/order-created.ts.html +19 -13
- package/coverage/lcov-report/src/events/publishers/created.ts.html +2 -2
- package/coverage/lcov-report/src/events/publishers/index.html +1 -1
- package/coverage/lcov-report/src/events/publishers/updated.ts.html +5 -5
- package/coverage/lcov-report/src/index.html +1 -1
- package/coverage/lcov-report/src/models/index.html +1 -1
- package/coverage/lcov-report/src/models/ticket.ts.html +12 -15
- package/coverage/lcov-report/src/routes/create.ts.html +7 -7
- package/coverage/lcov-report/src/routes/get.ts.html +1 -1
- package/coverage/lcov-report/src/routes/index.html +7 -7
- package/coverage/lcov-report/src/routes/index.ts.html +1 -1
- package/coverage/lcov-report/src/routes/update.ts.html +9 -6
- package/coverage/lcov-report/src/test/index.html +1 -1
- package/coverage/lcov-report/src/test/utils.ts.html +2 -2
- package/coverage/lcov.info +96 -62
- package/package.json +3 -3
- package/src/events/listeners/__test__/order-cancelled.test.ts +50 -0
- package/src/events/listeners/__test__/order-created.test.ts +7 -1
- package/src/events/listeners/order-cancelled.ts +24 -0
- package/src/events/listeners/order-created.ts +2 -0
- package/src/index.ts +5 -0
- package/src/models/ticket.ts +0 -1
- package/src/routes/__test__/update.test.ts +15 -0
- package/src/routes/update.ts +1 -0
package/src/index.ts
CHANGED
@@ -2,6 +2,8 @@ import mongoose from 'mongoose'
|
|
2
2
|
|
3
3
|
import natsClient from './nats-client'
|
4
4
|
import app from './app'
|
5
|
+
import OrderCreatedListener from './events/listeners/order-created'
|
6
|
+
import OrderCancelledListener from './events/listeners/order-cancelled'
|
5
7
|
|
6
8
|
const start = async () => {
|
7
9
|
if (!process.env.JWT_KEY) throw new Error('JWT_KEY is undefined')
|
@@ -20,6 +22,9 @@ const start = async () => {
|
|
20
22
|
process.on('SIGINT', () => natsClient.client.close())
|
21
23
|
process.on('SIGTERM', () => natsClient.client.close())
|
22
24
|
|
25
|
+
new OrderCreatedListener(natsClient.client).listen()
|
26
|
+
new OrderCancelledListener(natsClient.client).listen()
|
27
|
+
|
23
28
|
await mongoose.connect(process.env.MONGO_URI)
|
24
29
|
console.log('Database connected!')
|
25
30
|
const port = process.env.PORT || 3000
|
package/src/models/ticket.ts
CHANGED
@@ -5,6 +5,7 @@ import { getTokenCookie } from '@next-k8s/common'
|
|
5
5
|
import app from '../../app'
|
6
6
|
import { createTicket } from '../../test/utils'
|
7
7
|
import natsClient from '../../nats-client'
|
8
|
+
import Ticket from '../../models/ticket'
|
8
9
|
|
9
10
|
describe('[Update Ticket] Route: PUT /api/tickets/:id', () => {
|
10
11
|
it('should throw a NotFoundError if the ticket does not exist', async () => {
|
@@ -100,4 +101,18 @@ describe('[Update Ticket] Route: PUT /api/tickets/:id', () => {
|
|
100
101
|
await createTicket(app, cookie)
|
101
102
|
expect(natsClient.client.publish).toHaveBeenCalled()
|
102
103
|
})
|
104
|
+
|
105
|
+
it('should reject updates to a reserved ticket', async () => {
|
106
|
+
const cookie = await getTokenCookie({ id: new mongoose.Types.ObjectId().toHexString() })
|
107
|
+
const response = await createTicket(app, cookie)
|
108
|
+
const ticket = await Ticket.findById(response.body.ticket.id)
|
109
|
+
ticket.set({ orderId: new mongoose.Types.ObjectId().toHexString() })
|
110
|
+
await ticket.save()
|
111
|
+
|
112
|
+
await request(app)
|
113
|
+
.put(`/api/tickets/${response.body.ticket.id}`)
|
114
|
+
.set('Cookie', [cookie])
|
115
|
+
.send({ title: 'Test Event 2', price: 33000 })
|
116
|
+
.expect(400)
|
117
|
+
})
|
103
118
|
})
|
package/src/routes/update.ts
CHANGED
@@ -18,6 +18,7 @@ router.put('/api/tickets/:id', requireAuth, validateInput, validateRequest, asyn
|
|
18
18
|
const ticket = await Ticket.findById(req.params.id)
|
19
19
|
if (!ticket) throw new NotFoundError()
|
20
20
|
if (ticket.owner.toHexString() !== req.currentUser!.id) throw new UnauthorizedError()
|
21
|
+
if (ticket.orderId) throw new BadRequestError('Ticket is reserved')
|
21
22
|
const { title, price } = req.body
|
22
23
|
ticket.set({ title, price })
|
23
24
|
await ticket.save()
|