@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()
         |