@next-k8s/tickets 1.0.26 → 1.0.27

Sign up to get free protection for your applications and to get access to all the features.
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