/
example.js
55 lines (48 loc) · 1.5 KB
/
example.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
/--- Start of MongoDB example --- /
/**
* @function getAll
* @param {Object} req request object
* @param {Object} res response object
* @returns {Object} response object
* @description gets all available results
*/
const getAll = async (req, res) => {
const {
query: { currentPage, pageLimit }
} = req;
try {
const count = await model.estimatedDocumentCount();
const { limit, offset } = calculateLimitAndOffset(page, pageLimit);
const rows = await model.find({})
.skip(offset)
.limit(limit)
const meta = paginate(currentPage, count, rows, pageLimit);
return handleServerResponse(res, 200, { rows, meta });
} catch (error) {
return handleServerError(res, error);
}
}
/----End of MongoDB implementation---/
/** Start of PostgreSQL-SQL(sequelize) implementation**/
/**
* @function getAll
* @param {Object} req - server request
* @param {Object} res - server response
* @returns {Object} - custom response
*/
const getAll = async (req, res) => {
try {
const {
query: {
currentPage, pageLimit
}
} = req;
const { limit, offset } = calculateLimitAndOffset(currentPage, pageLimit);
const { rows, count } = await model.findAndCountAll();
const meta = paginate(currentPage, count, rows, pageLimit);
return response(res, 200, 'success', { rows, meta });
} catch (error) {
return response(res, 500, 'error', serverError);
}
};
/** End of PostgreSQL/SQL(sequelize) implementation */