Skip to content

Commit 97cc632

Browse files
committed
move query builders into v2 and v3 folders
1 parent dabc167 commit 97cc632

31 files changed

+121
-62
lines changed
File renamed without changes.
File renamed without changes.
File renamed without changes.

src/builders/sort/v2-sort.js renamed to src/builders/v2/sort.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
const order = require('../order');
2+
const order = require('./order');
33

44
/**
55
* Builds and returns mongo sort object for specific querystring fields.

src/builders/v3/limit.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
2+
/**
3+
* Returns number to limit documents in mongo query
4+
* @param {Object} query Koa querystring object from ctx.request
5+
* @return {number} Number of documents to limit
6+
*/
7+
8+
module.exports = q => {
9+
let limit = null;
10+
11+
if (q.limit) {
12+
limit = parseInt(q.limit, 10);
13+
} else {
14+
limit = 0;
15+
}
16+
17+
return limit;
18+
};

src/builders/v3/order.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
2+
// Prevent incorrect input
3+
const lowerCase = require('lower-case');
4+
5+
/**
6+
* Builds Mongo sort object to set sorting direction
7+
* @param {Object} query Koa querystring object from ctx.request
8+
* @return {number} Positive or negative number to indicate sort direction
9+
*/
10+
11+
module.exports = q => {
12+
let order;
13+
14+
if (lowerCase(q.order) === 'asc') {
15+
order = 1;
16+
} else if (lowerCase(q.order) === 'desc') {
17+
order = -1;
18+
} else {
19+
order = 1;
20+
}
21+
22+
return order;
23+
};

src/builders/v3/project.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
2+
// Prevent incorrect input
3+
const lowerCase = require('lower-case');
4+
5+
/**
6+
* Builds Mongo projection object to show/hide document id field
7+
* @param {Object} query Koa querystring object from ctx.request
8+
* @return {Object} Mongo compatible projection object
9+
*/
10+
11+
module.exports = q => {
12+
const query = {};
13+
14+
if (lowerCase(q.id) !== 'true') {
15+
// Mongo _id field requires underscore dangle
16+
// eslint-disable-next-line no-underscore-dangle
17+
query._id = 0;
18+
}
19+
20+
return query;
21+
};

src/builders/sort/v3-sort.js renamed to src/builders/v3/sort.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
const order = require('../order');
2+
const order = require('./order');
33

44
/**
55
* Builds and returns mongo sort object for specific querystring fields.

src/controllers/v2/capsules.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11

2-
const limit = require('../../builders/limit');
3-
const project = require('../../builders/project');
2+
const limit = require('../../builders/v2/limit');
3+
const project = require('../../builders/v2/project');
44

55
module.exports = {
66

src/controllers/v2/history.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11

2-
const sort = require('../../builders/sort/v2-sort');
2+
const sort = require('../../builders/v2/sort');
33
const historyQuery = require('../../builders/query/history-query');
4-
const limit = require('../../builders/limit');
5-
const project = require('../../builders/project');
4+
const limit = require('../../builders/v2/limit');
5+
const project = require('../../builders/v2/project');
66

77
module.exports = {
88

0 commit comments

Comments
 (0)