Skip to content

Commit 4ad9b9b

Browse files
author
Chahat Gupta
committed
Added parentId in folder and moved /all to folder/
1 parent 893e5a7 commit 4ad9b9b

File tree

3 files changed

+20
-6
lines changed

3 files changed

+20
-6
lines changed

src/helper/mock_folder.helper.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
1-
import {MockFolderModel} from "../models/mock_folder.model";
1+
import {MockFolder, MockFolderModel} from "../models/mock_folder.model";
22
import {MockModel} from "../models/mock.model";
33
import MockHelper from "./mock.helper";
44

55
export default class MockFolderHelper {
66

7-
static toJson(model: MockFolderModel, child: MockModel[] | null) {
7+
static toJson(model: MockFolderModel, folders: MockFolderModel[] | null = null, files: MockModel[] | null = null) : any {
88
return {
99
id: model._id,
1010
name: model.name,
11-
folders: child?.map((e) => MockHelper.toJson(e))
11+
folders: folders?.map((e) => MockFolderHelper.toJson(e)),
12+
files: files?.map((e) => MockHelper.toJson(e))
1213
}
1314
}
1415

src/models/mock_folder.model.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,17 @@ import { Schema, Model, model } from 'mongoose'
22

33
export type MockFolderModel = {
44
_id: string
5+
parentId: string | null
56
name: string
67
}
78

89
const MockFolderSchema: Schema<MockFolderModel> = new Schema<MockFolderModel>({
910
_id: Schema.Types.ObjectId,
11+
parentId: {
12+
type: String,
13+
required: false,
14+
default: null
15+
},
1016
name: {
1117
type: String,
1218
required: true

src/routes/mock_folder.routes.ts

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,14 @@ const router = express.Router()
99

1010
router.get('/', async (req: Request, res: Response): Promise<void> => {
1111
try {
12+
const root: MockFolderModel = {
13+
_id: 'root',
14+
parentId: null,
15+
name: 'Root'
16+
}
1217
const mockFolders: MockFolderModel[] = await MockFolder.find()
13-
const response: ApiResponse = ApiResponse.success(mockFolders.map((e) => MockFolderHelper.toJson(e, null)))
18+
const mocks: MockModel[] = await Mock.find({ parentId: null })
19+
const response: ApiResponse = ApiResponse.success(MockFolderHelper.toJson(root, mockFolders, mocks))
1420
res.status(200).json(response)
1521
} catch (error: unknown) {
1622
const response: ApiResponse = ApiResponse.error((error as Error).message)
@@ -22,8 +28,9 @@ router.get('/:id', async (req: Request, res: Response): Promise<void> => {
2228
try {
2329
const mockFolder: MockFolderModel | null = await MockFolder.findById(req.params.id)
2430
if (mockFolder != null) {
31+
const subFolders: MockFolderModel[] = await MockFolder.find({ parentId: req.params.id })
2532
const mocks: MockModel[] = await Mock.find({ parentId: req.params.id })
26-
const response: ApiResponse = ApiResponse.success(MockFolderHelper.toJson(mockFolder, mocks))
33+
const response: ApiResponse = ApiResponse.success(MockFolderHelper.toJson(mockFolder, subFolders, mocks))
2734
res.status(200).json(response)
2835
} else {
2936
const response: ApiResponse = ApiResponse.error(`No document found with id ${req.params.id}`)
@@ -43,7 +50,7 @@ router.post('/', async (req: Request, res: Response): Promise<void> => {
4350
})
4451
try {
4552
const mockFolder: MockFolderModel = await data.save()
46-
const response: ApiResponse = ApiResponse.success(MockFolderHelper.toJson(mockFolder, null), 'Document created')
53+
const response: ApiResponse = ApiResponse.success(MockFolderHelper.toJson(mockFolder), 'Document created')
4754
res.status(201).json(response)
4855
} catch (error: unknown) {
4956
const response: ApiResponse = ApiResponse.error((error as Error).message)

0 commit comments

Comments
 (0)