Skip to content

Commit b5bf599

Browse files
committed
Refactor: Add item projection bypass function
Full projection is required for some use cases
1 parent ba062bb commit b5bf599

2 files changed

Lines changed: 4 additions & 4 deletions

File tree

backend/controllers/itemController.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ module.exports = {
1919
throw new BusinessError(`Query invalid: ${key}로는 검색할 수 없습니다!`);
2020
}
2121

22-
const result = await itemService.search(req.query);
22+
const result = await itemService.search(req.query, false);
2323

2424
res.status(200).send(result);
2525

backend/services/itemService.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ const { RuntimeError } = require('./errors/RuntimeError.js');
44
const LIMIT = 20;
55

66
module.exports = {
7-
search: async (query = {}) => {
7+
search: async (query = {}, limit = true) => {
88
try {
99
const projection = {
1010
title: true, path: true, type: true,
@@ -35,7 +35,7 @@ module.exports = {
3535
$nin: ['deleted', 'modified']
3636
};
3737

38-
let query_ = Item.find(query, projection);
38+
let query_ = limit ? Item.find(query, projection) : Item.find(query);
3939

4040
query_.sort('created');
4141

@@ -44,7 +44,7 @@ module.exports = {
4444
select: ['rank', 'name']
4545
});
4646

47-
query_.skip(query_.page * LIMIT).limit(LIMIT);
47+
if (limit) query_.skip(query_.page * LIMIT).limit(LIMIT);
4848

4949
return await query_.exec();
5050

0 commit comments

Comments
 (0)