@next-k8s/tickets 1.0.26 → 1.0.27

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.
Files changed (37) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/coverage/clover.xml +158 -17
  3. package/coverage/coverage-final.json +11 -1
  4. package/coverage/lcov-report/index.html +94 -19
  5. package/coverage/lcov-report/src/app.ts.html +17 -17
  6. package/coverage/lcov-report/src/events/listeners/_queue-group-name.ts.html +88 -0
  7. package/coverage/lcov-report/src/events/listeners/index.html +131 -0
  8. package/coverage/lcov-report/src/events/listeners/order-created.ts.html +151 -0
  9. package/coverage/lcov-report/src/events/publishers/created.ts.html +4 -4
  10. package/coverage/lcov-report/src/events/publishers/index.html +1 -1
  11. package/coverage/lcov-report/src/events/publishers/updated.ts.html +4 -4
  12. package/coverage/lcov-report/src/index.html +1 -1
  13. package/coverage/lcov-report/src/models/index.html +1 -1
  14. package/coverage/lcov-report/src/models/ticket.ts.html +20 -5
  15. package/coverage/lcov-report/src/routes/create.ts.html +11 -11
  16. package/coverage/lcov-report/src/routes/find.ts.html +1 -1
  17. package/coverage/lcov-report/src/routes/get.ts.html +25 -10
  18. package/coverage/lcov-report/src/routes/index.html +8 -23
  19. package/coverage/lcov-report/src/routes/index.ts.html +8 -11
  20. package/coverage/lcov-report/src/routes/update.ts.html +12 -12
  21. package/coverage/lcov-report/src/test/index.html +1 -1
  22. package/coverage/lcov-report/src/test/utils.ts.html +3 -3
  23. package/coverage/lcov-report/ticket.ts.html +1 -1
  24. package/coverage/lcov.info +241 -17
  25. package/package.json +3 -3
  26. package/pnpm-lock.yaml +311 -18
  27. package/src/events/listeners/__test__/order-created.test.ts +44 -0
  28. package/src/events/listeners/_queue-group-name.ts +1 -0
  29. package/src/events/listeners/order-created.ts +22 -0
  30. package/src/models/ticket.ts +7 -2
  31. package/src/routes/__test__/get.test.ts +15 -0
  32. package/src/routes/create.ts +1 -1
  33. package/src/routes/get.ts +5 -0
  34. package/src/routes/index.ts +1 -2
  35. package/src/routes/update.ts +1 -1
  36. package/src/routes/__test__/find.test.ts +0 -22
  37. package/src/routes/find.ts +0 -11
@@ -2,9 +2,10 @@ import mongoose, { ObjectId } from 'mongoose'
2
2
  import { updateIfCurrentPlugin } from 'mongoose-update-if-current'
3
3
 
4
4
  interface TicketAttributes {
5
- title: String;
6
- price: Number;
5
+ title: string;
6
+ price: number;
7
7
  owner: string;
8
+ orderId?: string;
8
9
  createdAt?: Date;
9
10
  updatedAt?: Date;
10
11
  }
@@ -23,6 +24,10 @@ const ticketSchema = new mongoose.Schema({
23
24
  owner: {
24
25
  type: mongoose.Schema.Types.ObjectId,
25
26
  required: true
27
+ },
28
+
29
+ orderId: {
30
+ type: String
26
31
  }
27
32
  }, {
28
33
  toJSON: {
@@ -5,6 +5,21 @@ import { getTokenCookie } from '@next-k8s/common'
5
5
  import app from '../../app'
6
6
  import { createTicket } from '../../test/utils'
7
7
 
8
+ describe('[List Tickets] Route: GET /api/tickets', () => {
9
+ it('should return a list of tickets', async () => {
10
+ const cookie = await getTokenCookie({ id: new mongoose.Types.ObjectId().toHexString() })
11
+ await createTicket(app, cookie)
12
+ await createTicket(app, cookie, 'Test Event 2', 40000)
13
+ const list = await request(app)
14
+ .get('/api/tickets')
15
+ .send()
16
+ .expect(200)
17
+
18
+ expect(list.body.tickets).toBeDefined()
19
+ expect(list.body.tickets.length).toEqual(2)
20
+ })
21
+ })
22
+
8
23
  describe('[Get Ticket] Route: GET /api/tickets/:id', () => {
9
24
  it('should throw a BadRequestError if ticket ID is invalid', async () => {
10
25
  await request(app)
@@ -17,7 +17,7 @@ router.post('/api/tickets', requireAuth, validateInput, validateRequest, async (
17
17
  const { title, price } = req.body
18
18
  const ticket = new Ticket({ title, price, owner: req.currentUser!.id })
19
19
  await ticket.save()
20
- new TicketCreatedPublisher(natsClient.client).publish({ id: ticket.id, title: ticket.title, price: ticket.price, owner: ticket.owner })
20
+ new TicketCreatedPublisher(natsClient.client).publish({ id: ticket.id, version: ticket.version, title: ticket.title, price: ticket.price, owner: ticket.owner })
21
21
  res.status(201).send({ ticket })
22
22
  })
23
23
 
package/src/routes/get.ts CHANGED
@@ -6,6 +6,11 @@ import Ticket from '../models/ticket'
6
6
 
7
7
  const router = express.Router()
8
8
 
9
+ router.get('/api/tickets', async (req: Request, res: Response) => {
10
+ const tickets = await Ticket.find({})
11
+ res.send({ tickets })
12
+ })
13
+
9
14
  router.get('/api/tickets/:id', async (req: Request, res: Response) => {
10
15
  if (!isValidObjectId(req.params.id)) throw new BadRequestError('Invalid Ticket ID')
11
16
  const ticket = await Ticket.findById(req.params.id)
@@ -1,6 +1,5 @@
1
1
  import getTicket from './get'
2
- import findTickets from './find'
3
2
  import createTicket from './create'
4
3
  import updateTicket from './update'
5
4
 
6
- export default [findTickets, getTicket, createTicket, updateTicket]
5
+ export default [getTicket, createTicket, updateTicket]
@@ -21,7 +21,7 @@ router.put('/api/tickets/:id', requireAuth, validateInput, validateRequest, asyn
21
21
  const { title, price } = req.body
22
22
  ticket.set({ title, price })
23
23
  await ticket.save()
24
- await new TicketUpdatedPublisher(natsClient.client).publish({ id: ticket.id, title: ticket.title, price: ticket.price, owner: ticket.owner })
24
+ await new TicketUpdatedPublisher(natsClient.client).publish({ id: ticket.id, version: ticket.version, title: ticket.title, price: ticket.price, owner: ticket.owner })
25
25
  res.json(ticket)
26
26
  })
27
27
 
@@ -1,22 +0,0 @@
1
-
2
- import mongoose from 'mongoose'
3
- import request from 'supertest'
4
- import { getTokenCookie } from '@next-k8s/common'
5
-
6
- import app from '../../app'
7
- import { createTicket } from '../../test/utils'
8
-
9
- describe('[List Tickets] Route: GET /api/tickets', () => {
10
- it('should return a list of tickets', async () => {
11
- const cookie = await getTokenCookie({ id: new mongoose.Types.ObjectId().toHexString() })
12
- await createTicket(app, cookie)
13
- await createTicket(app, cookie, 'Test Event 2', 40000)
14
- const list = await request(app)
15
- .get('/api/tickets')
16
- .send()
17
- .expect(200)
18
-
19
- expect(list.body.tickets).toBeDefined()
20
- expect(list.body.tickets.length).toEqual(2)
21
- })
22
- })
@@ -1,11 +0,0 @@
1
- import express, { Request, Response } from 'express'
2
- import Ticket from '../models/ticket'
3
-
4
- const router = express.Router()
5
-
6
- router.get('/api/tickets', async (req: Request, res: Response) => {
7
- const tickets = await Ticket.find({})
8
- res.send({ tickets })
9
- })
10
-
11
- export default router