Skip to content

Commit 21db465

Browse files
author
Chahat Gupta
committed
- Added helpers and toJson
- Added 'all' route - Added _id in models
1 parent 37bbec7 commit 21db465

File tree

7 files changed

+54
-13
lines changed

7 files changed

+54
-13
lines changed

src/helper/mock.helper.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import {MockModel} from "../models/mock.model";
2+
3+
export default class MockHelper {
4+
5+
static toJson(model: MockModel) {
6+
return {
7+
id: model._id,
8+
name: model.name,
9+
response: model.response
10+
}
11+
}
12+
13+
}

src/helper/mock_folder.helper.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import {MockFolderModel} from "../models/mock_folder.model";
2+
import {MockModel} from "../models/mock.model";
3+
import MockHelper from "./mock.helper";
4+
5+
export default class MockFolderHelper {
6+
7+
static toJson(model: MockFolderModel, child: MockModel[] | null) {
8+
return {
9+
id: model._id,
10+
name: model.name,
11+
folders: child?.map((e) => MockHelper.toJson(e))
12+
}
13+
}
14+
15+
}

src/models/mock.model.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
import { Schema, Model, model } from 'mongoose'
22

33
export type MockModel = {
4+
_id: string
45
folderId: string | null
56
name: string
67
response: string
7-
};
8+
}
89

910
const MockSchema: Schema<MockModel> = new Schema<MockModel>({
11+
_id: Schema.Types.ObjectId,
1012
folderId: {
1113
type: String,
1214
required: false,
@@ -20,6 +22,6 @@ const MockSchema: Schema<MockModel> = new Schema<MockModel>({
2022
type: String,
2123
required: true
2224
}
23-
});
25+
})
2426

2527
export const Mock: Model<MockModel> = model('Mock', MockSchema)

src/models/mock_folder.model.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
import { Schema, Model, model } from 'mongoose'
22

33
export type MockFolderModel = {
4+
_id: string
45
name: string
5-
};
6+
}
67

78
const MockFolderSchema: Schema<MockFolderModel> = new Schema<MockFolderModel>({
9+
_id: Schema.Types.ObjectId,
810
name: {
911
type: String,
1012
required: true
1113
}
12-
});
14+
})
1315

1416
export const MockFolder: Model<MockFolderModel> = model('MockFolder', MockFolderSchema)

src/routes/all.routes.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ import express, { Request, Response } from 'express'
22
import { MockFolder, MockFolderModel } from '../models/mock_folder.model'
33
import { ApiResponse } from '../common/api_response'
44
import {Mock, MockModel} from "../models/mock.model";
5+
import MockFolderHelper from "../helper/mock_folder.helper";
6+
import MockHelper from "../helper/mock.helper";
57

68
const router = express.Router()
79

@@ -10,8 +12,8 @@ router.get('/', async (req: Request, res: Response): Promise<void> => {
1012
const mockFolders: MockFolderModel[] = await MockFolder.find()
1113
const mocks: MockModel[] = await Mock.find({ folderId: null })
1214
const response: ApiResponse = ApiResponse.success({
13-
folders: mockFolders,
14-
files: mocks
15+
folders: mockFolders.map((e) => MockFolderHelper.toJson(e, null)),
16+
files: mocks.map((e) => MockHelper.toJson(e))
1517
})
1618
res.status(200).json(response)
1719
} catch (error: unknown) {

src/routes/mock.routes.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,15 @@ import express, { Request, Response } from 'express'
22
import { Mock, MockModel } from '../models/mock.model'
33
import { ApiResponse } from '../common/api_response'
44
import mongoose from 'mongoose'
5+
import MockHelper from "../helper/mock.helper";
6+
import { Types } from "mongoose";
57

68
const router = express.Router()
79

810
router.get('/', async (req: Request, res: Response): Promise<void> => {
911
try {
1012
const mocks: MockModel[] = await Mock.find()
11-
const response: ApiResponse = ApiResponse.success(mocks)
13+
const response: ApiResponse = ApiResponse.success(mocks.map((e) => MockHelper.toJson(e)))
1214
res.status(200).json(response)
1315
} catch (error: unknown) {
1416
const response: ApiResponse = ApiResponse.error((error as Error).message)
@@ -20,7 +22,7 @@ router.get('/:id', async (req: Request, res: Response): Promise<void> => {
2022
try {
2123
const mock: MockModel | null = await Mock.findById(req.params.id)
2224
if (mock != null) {
23-
const response: ApiResponse = ApiResponse.success(mock)
25+
const response: ApiResponse = ApiResponse.success(MockHelper.toJson(mock))
2426
res.status(200).json(response)
2527
} else {
2628
const response: ApiResponse = ApiResponse.error(`No document found with id ${req.params.id}`)
@@ -50,13 +52,14 @@ router.get('/mock/:id', async (req: Request, res: Response): Promise<void> => {
5052
router.post('/', async (req: Request, res: Response): Promise<void> => {
5153

5254
const data = new Mock({
55+
_id: new Types.ObjectId(),
5356
folderId: req.body.folderId,
5457
name: req.body.name,
5558
response: req.body.response
5659
})
5760
try {
5861
const mock: MockModel = await data.save()
59-
const response: ApiResponse = ApiResponse.success(mock, 'Document created')
62+
const response: ApiResponse = ApiResponse.success(MockHelper.toJson(mock), 'Document created')
6063
res.status(201).json(response)
6164
} catch (error: unknown) {
6265
const response: ApiResponse = ApiResponse.error((error as Error).message)

src/routes/mock_folder.routes.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
import express, { Request, Response } from 'express'
22
import { MockFolder, MockFolderModel } from '../models/mock_folder.model'
33
import { ApiResponse } from '../common/api_response'
4-
import mongoose from 'mongoose'
4+
import mongoose, {Types} from 'mongoose'
5+
import {Mock, MockModel} from "../models/mock.model";
6+
import MockFolderHelper from "../helper/mock_folder.helper";
57

68
const router = express.Router()
79

810
router.get('/', async (req: Request, res: Response): Promise<void> => {
911
try {
1012
const mockFolders: MockFolderModel[] = await MockFolder.find()
11-
const response: ApiResponse = ApiResponse.success(mockFolders)
13+
const response: ApiResponse = ApiResponse.success(mockFolders.map((e) => MockFolderHelper.toJson(e, null)))
1214
res.status(200).json(response)
1315
} catch (error: unknown) {
1416
const response: ApiResponse = ApiResponse.error((error as Error).message)
@@ -20,7 +22,8 @@ router.get('/:id', async (req: Request, res: Response): Promise<void> => {
2022
try {
2123
const mockFolder: MockFolderModel | null = await MockFolder.findById(req.params.id)
2224
if (mockFolder != null) {
23-
const response: ApiResponse = ApiResponse.success(mockFolder)
25+
const mocks: MockModel[] = await Mock.find({ folderId: req.params.id })
26+
const response: ApiResponse = ApiResponse.success(MockFolderHelper.toJson(mockFolder, mocks))
2427
res.status(200).json(response)
2528
} else {
2629
const response: ApiResponse = ApiResponse.error(`No document found with id ${req.params.id}`)
@@ -35,11 +38,12 @@ router.get('/:id', async (req: Request, res: Response): Promise<void> => {
3538
router.post('/', async (req: Request, res: Response): Promise<void> => {
3639

3740
const data = new MockFolder({
41+
_id: new Types.ObjectId(),
3842
name: req.body.name
3943
})
4044
try {
4145
const mockFolder: MockFolderModel = await data.save()
42-
const response: ApiResponse = ApiResponse.success(mockFolder, 'Document created')
46+
const response: ApiResponse = ApiResponse.success(MockFolderHelper.toJson(mockFolder, null), 'Document created')
4347
res.status(201).json(response)
4448
} catch (error: unknown) {
4549
const response: ApiResponse = ApiResponse.error((error as Error).message)

0 commit comments

Comments
 (0)