@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.
- package/CHANGELOG.md +8 -0
- package/coverage/clover.xml +158 -17
- package/coverage/coverage-final.json +11 -1
- package/coverage/lcov-report/index.html +94 -19
- package/coverage/lcov-report/src/app.ts.html +17 -17
- package/coverage/lcov-report/src/events/listeners/_queue-group-name.ts.html +88 -0
- package/coverage/lcov-report/src/events/listeners/index.html +131 -0
- package/coverage/lcov-report/src/events/listeners/order-created.ts.html +151 -0
- package/coverage/lcov-report/src/events/publishers/created.ts.html +4 -4
- package/coverage/lcov-report/src/events/publishers/index.html +1 -1
- package/coverage/lcov-report/src/events/publishers/updated.ts.html +4 -4
- 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 +20 -5
- package/coverage/lcov-report/src/routes/create.ts.html +11 -11
- package/coverage/lcov-report/src/routes/find.ts.html +1 -1
- package/coverage/lcov-report/src/routes/get.ts.html +25 -10
- package/coverage/lcov-report/src/routes/index.html +8 -23
- package/coverage/lcov-report/src/routes/index.ts.html +8 -11
- package/coverage/lcov-report/src/routes/update.ts.html +12 -12
- package/coverage/lcov-report/src/test/index.html +1 -1
- package/coverage/lcov-report/src/test/utils.ts.html +3 -3
- package/coverage/lcov-report/ticket.ts.html +1 -1
- package/coverage/lcov.info +241 -17
- package/package.json +3 -3
- package/pnpm-lock.yaml +311 -18
- package/src/events/listeners/__test__/order-created.test.ts +44 -0
- package/src/events/listeners/_queue-group-name.ts +1 -0
- package/src/events/listeners/order-created.ts +22 -0
- package/src/models/ticket.ts +7 -2
- package/src/routes/__test__/get.test.ts +15 -0
- package/src/routes/create.ts +1 -1
- package/src/routes/get.ts +5 -0
- package/src/routes/index.ts +1 -2
- package/src/routes/update.ts +1 -1
- package/src/routes/__test__/find.test.ts +0 -22
- package/src/routes/find.ts +0 -11
package/src/models/ticket.ts
CHANGED
@@ -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:
|
6
|
-
price:
|
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)
|
package/src/routes/create.ts
CHANGED
@@ -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)
|
package/src/routes/index.ts
CHANGED
@@ -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 [
|
5
|
+
export default [getTicket, createTicket, updateTicket]
|
package/src/routes/update.ts
CHANGED
@@ -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
|
-
})
|
package/src/routes/find.ts
DELETED
@@ -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
|