aloux-iam 0.0.128 → 0.0.130
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/config/utils.js +9 -1
- package/lib/controllers/business.js +31 -0
- package/lib/controllers/functions.js +53 -23
- package/lib/controllers/menu.js +57 -26
- package/lib/controllers/permission.js +47 -17
- package/lib/controllers/user.js +31 -0
- package/lib/router.js +5 -0
- package/lib/swagger.yaml +161 -1
- package/package.json +1 -1
package/lib/config/utils.js
CHANGED
|
@@ -2,7 +2,7 @@ const self = module.exports
|
|
|
2
2
|
|
|
3
3
|
self.responseError = async (res, error) => {
|
|
4
4
|
let obj = error
|
|
5
|
-
if(!error.code){
|
|
5
|
+
if (!error.code) {
|
|
6
6
|
obj = {
|
|
7
7
|
code: 400,
|
|
8
8
|
title: 'Error',
|
|
@@ -11,4 +11,12 @@ self.responseError = async (res, error) => {
|
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
13
|
res.status(obj.code).send(obj)
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
self.generatePaginationResponse = async (count, page, itemsPerPage, items) => {
|
|
17
|
+
const totalPages = Math.ceil(count / itemsPerPage)
|
|
18
|
+
const currentPage = Math.max(1, Math.min(Number(page), totalPages))
|
|
19
|
+
const finalCurrentPage = totalPages === 0 ? 1 : currentPage
|
|
20
|
+
const remainingPages = Math.max(0, totalPages - finalCurrentPage)
|
|
21
|
+
return { currentPage: finalCurrentPage, totalPages, perPage: Number(itemsPerPage), count, remainingPages, items }
|
|
14
22
|
}
|
|
@@ -37,6 +37,37 @@ self.retrieve = async (req, res) => {
|
|
|
37
37
|
}
|
|
38
38
|
};
|
|
39
39
|
|
|
40
|
+
|
|
41
|
+
self.retrievePages = async (req, res) => {
|
|
42
|
+
try {
|
|
43
|
+
let { page = 1, itemsPerPage = 10, sort = { createdAt: -1 } } = req.body.config || {}
|
|
44
|
+
let query = {}
|
|
45
|
+
let attributes = { pwd: 0, tokens: 0 }
|
|
46
|
+
|
|
47
|
+
const count = await Business.countDocuments(query, attributes)
|
|
48
|
+
let items
|
|
49
|
+
|
|
50
|
+
if (Number(page) === 0 && Number(itemsPerPage) === 0) {
|
|
51
|
+
items = await Business.find(query, attributes)
|
|
52
|
+
.sort(sort)
|
|
53
|
+
.lean()
|
|
54
|
+
page = 1
|
|
55
|
+
itemsPerPage = count > 0 ? count : 1
|
|
56
|
+
} else {
|
|
57
|
+
items = await Business.find(query, attributes)
|
|
58
|
+
.skip(Number(itemsPerPage) * (Number(page) - 1))
|
|
59
|
+
.limit(Number(itemsPerPage))
|
|
60
|
+
.sort(sort)
|
|
61
|
+
.lean()
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
const response = await utils.generatePaginationResponse(count, page, itemsPerPage, items)
|
|
65
|
+
res.status(200).send(response);
|
|
66
|
+
} catch (error) {
|
|
67
|
+
res.status(400).send({ error: error.message });
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
40
71
|
self.retrieveByCompany = async (req, res) => {
|
|
41
72
|
try {
|
|
42
73
|
const retrieve = await Business.find(
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const Functions = require('../models/Functions')
|
|
2
|
-
const user
|
|
2
|
+
const user = require('./user')
|
|
3
3
|
const self = module.exports
|
|
4
4
|
|
|
5
5
|
self.create = async (req, res) => {
|
|
@@ -11,77 +11,107 @@ self.create = async (req, res) => {
|
|
|
11
11
|
res.status(201).send(functions)
|
|
12
12
|
} catch (error) {
|
|
13
13
|
console.log(error)
|
|
14
|
-
res.status(400).send({error:error.message})
|
|
14
|
+
res.status(400).send({ error: error.message })
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
self.update = async (req, resp) => {
|
|
19
19
|
try {
|
|
20
20
|
await (new Functions(req.body)).validate()
|
|
21
|
-
const count = await Functions.findOne({_id:req.params.FUNCTION_ID}).countDocuments()
|
|
22
|
-
if(!count)
|
|
21
|
+
const count = await Functions.findOne({ _id: req.params.FUNCTION_ID }).countDocuments()
|
|
22
|
+
if (!count)
|
|
23
23
|
throw new Error('Upss! No se encontró el registro')
|
|
24
|
-
|
|
25
|
-
const result = await Functions.updateOne({_id:req.params.FUNCTION_ID}, req.body)
|
|
24
|
+
req.body.lastUpdate = (new Date()).getTime()
|
|
25
|
+
const result = await Functions.updateOne({ _id: req.params.FUNCTION_ID }, req.body)
|
|
26
26
|
resp.status(200).send(req.body)
|
|
27
27
|
} catch (error) {
|
|
28
|
-
resp.status(400).send({error:error.message})
|
|
28
|
+
resp.status(400).send({ error: error.message })
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
self.status = async (req, resp) => {
|
|
32
32
|
try {
|
|
33
33
|
const _id = req.params.FUNCTION_ID
|
|
34
34
|
const functions = await Functions.findOne({ _id })
|
|
35
|
-
if(!functions)
|
|
35
|
+
if (!functions)
|
|
36
36
|
throw new Error('Upss! No se encontró el Elemento')
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
functions.status = req.body.status
|
|
38
|
+
functions.lastUpdate = (new Date()).getTime()
|
|
39
39
|
const result = await functions.save()
|
|
40
40
|
resp.status(200).send(result)
|
|
41
41
|
} catch (error) {
|
|
42
|
-
resp.status(400).send({error:error.message})
|
|
42
|
+
resp.status(400).send({ error: error.message })
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
|
-
self.retrieve = async(req, res) => {
|
|
45
|
+
self.retrieve = async (req, res) => {
|
|
46
46
|
try {
|
|
47
|
-
const response = await Functions.find({}).sort({ createdAt
|
|
47
|
+
const response = await Functions.find({}).sort({ createdAt: -1 })
|
|
48
48
|
res.status(200).send(response)
|
|
49
49
|
} catch (error) {
|
|
50
50
|
res.status(400).send(error)
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
-
self.
|
|
54
|
+
self.retrievePages = async (req, res) => {
|
|
55
|
+
try {
|
|
56
|
+
let { page = 1, itemsPerPage = 10, sort = { createdAt: -1 } } = req.body.config || {}
|
|
57
|
+
let query = {}
|
|
58
|
+
let attributes = { pwd: 0, tokens: 0 }
|
|
59
|
+
|
|
60
|
+
const count = await Functions.countDocuments(query, attributes)
|
|
61
|
+
let items
|
|
62
|
+
|
|
63
|
+
if (Number(page) === 0 && Number(itemsPerPage) === 0) {
|
|
64
|
+
items = await Functions.find(query, attributes)
|
|
65
|
+
.sort(sort)
|
|
66
|
+
.lean()
|
|
67
|
+
page = 1
|
|
68
|
+
itemsPerPage = count > 0 ? count : 1
|
|
69
|
+
} else {
|
|
70
|
+
items = await Functions.find(query, attributes)
|
|
71
|
+
.skip(Number(itemsPerPage) * (Number(page) - 1))
|
|
72
|
+
.limit(Number(itemsPerPage))
|
|
73
|
+
.sort(sort)
|
|
74
|
+
.lean()
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
const response = await utils.generatePaginationResponse(count, page, itemsPerPage, items)
|
|
78
|
+
res.status(200).send(response);
|
|
79
|
+
} catch (error) {
|
|
80
|
+
res.status(400).send({ error: error.message });
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
self.get = async (req, res) => {
|
|
55
85
|
try {
|
|
56
86
|
const _id = req.params.FUNCTION_ID
|
|
57
|
-
const functions = await Functions.findOne({ _id }).populate([{ path: "_permissions" },{ path: "_menus" }]).lean()
|
|
58
|
-
if(!functions)
|
|
59
|
-
|
|
87
|
+
const functions = await Functions.findOne({ _id }).populate([{ path: "_permissions" }, { path: "_menus" }]).lean()
|
|
88
|
+
if (!functions)
|
|
89
|
+
res.status(404).send()
|
|
60
90
|
res.status(200).send(functions)
|
|
61
91
|
} catch (error) {
|
|
62
92
|
res.status(400).send(error)
|
|
63
93
|
}
|
|
64
94
|
}
|
|
65
95
|
|
|
66
|
-
self.delete
|
|
96
|
+
self.delete = async (req, res) => {
|
|
67
97
|
try {
|
|
68
98
|
|
|
69
99
|
const _id = req.params.FUNCTION_ID
|
|
70
100
|
const response = await Functions.deleteOne({ _id })
|
|
71
|
-
if(!response.deletedCount)
|
|
72
|
-
res.status(404).send({ error
|
|
101
|
+
if (!response.deletedCount)
|
|
102
|
+
res.status(404).send({ error: "El registro no existe" })
|
|
73
103
|
else
|
|
74
104
|
res.status(200).send({})
|
|
75
105
|
} catch (error) {
|
|
76
|
-
res.status(400).send({error:error.message})
|
|
106
|
+
res.status(400).send({ error: error.message })
|
|
77
107
|
}
|
|
78
108
|
}
|
|
79
109
|
|
|
80
|
-
self.count = async(req, res) => {
|
|
110
|
+
self.count = async (req, res) => {
|
|
81
111
|
try {
|
|
82
112
|
let result = await Functions.find({}).countDocuments()
|
|
83
113
|
res.status(200).send({ count: result })
|
|
84
114
|
} catch (error) {
|
|
85
|
-
res.status(400).send({error:error.message})
|
|
115
|
+
res.status(400).send({ error: error.message })
|
|
86
116
|
}
|
|
87
117
|
}
|
package/lib/controllers/menu.js
CHANGED
|
@@ -9,7 +9,7 @@ self.create = async (req, res) => {
|
|
|
9
9
|
await menu.save()
|
|
10
10
|
res.status(201).send(menu)
|
|
11
11
|
} catch (error) {
|
|
12
|
-
res.status(400).send({error:error.message})
|
|
12
|
+
res.status(400).send({ error: error.message })
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
15
|
|
|
@@ -17,86 +17,117 @@ self.update = async (req, resp) => {
|
|
|
17
17
|
try {
|
|
18
18
|
await (new Menu(req.body)).validate()
|
|
19
19
|
const _id = req.params.MENU_ID
|
|
20
|
-
const count = await Menu.findOne({_id}).countDocuments()
|
|
21
|
-
if(!count)
|
|
20
|
+
const count = await Menu.findOne({ _id }).countDocuments()
|
|
21
|
+
if (!count)
|
|
22
22
|
throw new Error('Upss! No se encontró el registro')
|
|
23
|
-
|
|
24
|
-
const result = await Menu.updateOne({_id}, req.body)
|
|
23
|
+
req.body.lastUpdate = (new Date()).getTime()
|
|
24
|
+
const result = await Menu.updateOne({ _id }, req.body)
|
|
25
25
|
resp.status(200).send(req.body)
|
|
26
26
|
} catch (error) {
|
|
27
|
-
resp.status(400).send({error:error.message})
|
|
27
|
+
resp.status(400).send({ error: error.message })
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
self.status = async (req, resp) => {
|
|
31
31
|
try {
|
|
32
32
|
const _id = req.params.MENU_ID
|
|
33
33
|
const user = await Menu.findOne({ _id })
|
|
34
|
-
if(!user)
|
|
34
|
+
if (!user)
|
|
35
35
|
throw new Error('Upss! No se encontró el Elemento')
|
|
36
36
|
user.status = req.body.status
|
|
37
37
|
user.lastUpdate = (new Date()).getTime()
|
|
38
38
|
const result = await user.save()
|
|
39
39
|
resp.status(200).send(result)
|
|
40
40
|
} catch (error) {
|
|
41
|
-
resp.status(400).send({error:error.message})
|
|
41
|
+
resp.status(400).send({ error: error.message })
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
|
-
self.retrieve = async(req, res) => {
|
|
44
|
+
self.retrieve = async (req, res) => {
|
|
45
45
|
try {
|
|
46
|
-
const consulta = await Menu.find({}).sort({index:1})
|
|
47
|
-
if(!consulta)
|
|
48
|
-
|
|
46
|
+
const consulta = await Menu.find({}).sort({ index: 1 })
|
|
47
|
+
if (!consulta)
|
|
48
|
+
res.status(404).send()
|
|
49
49
|
res.status(200).send(consulta)
|
|
50
50
|
} catch (error) {
|
|
51
51
|
res.status(400).send(error)
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
-
|
|
55
|
+
|
|
56
|
+
self.retrievePages = async (req, res) => {
|
|
57
|
+
try {
|
|
58
|
+
let { page = 1, itemsPerPage = 10, sort = { createdAt: -1 } } = req.body.config || {}
|
|
59
|
+
let query = {}
|
|
60
|
+
let attributes = { pwd: 0, tokens: 0 }
|
|
61
|
+
|
|
62
|
+
const count = await Menu.countDocuments(query, attributes)
|
|
63
|
+
let items
|
|
64
|
+
|
|
65
|
+
if (Number(page) === 0 && Number(itemsPerPage) === 0) {
|
|
66
|
+
items = await Menu.find(query, attributes)
|
|
67
|
+
.sort(sort)
|
|
68
|
+
.lean()
|
|
69
|
+
page = 1
|
|
70
|
+
itemsPerPage = count > 0 ? count : 1
|
|
71
|
+
} else {
|
|
72
|
+
items = await Menu.find(query, attributes)
|
|
73
|
+
.skip(Number(itemsPerPage) * (Number(page) - 1))
|
|
74
|
+
.limit(Number(itemsPerPage))
|
|
75
|
+
.sort(sort)
|
|
76
|
+
.lean()
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
const response = await utils.generatePaginationResponse(count, page, itemsPerPage, items)
|
|
80
|
+
res.status(200).send(response);
|
|
81
|
+
} catch (error) {
|
|
82
|
+
res.status(400).send({ error: error.message });
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
self.get = async (req, res) => {
|
|
56
87
|
try {
|
|
57
88
|
const _id = req.params.MENU_ID
|
|
58
|
-
const menu = await Menu.findOne({_id})
|
|
59
|
-
if(!menu)
|
|
60
|
-
|
|
89
|
+
const menu = await Menu.findOne({ _id })
|
|
90
|
+
if (!menu)
|
|
91
|
+
res.status(404).send()
|
|
61
92
|
res.status(200).send(menu)
|
|
62
93
|
} catch (error) {
|
|
63
94
|
res.status(400).send(error)
|
|
64
95
|
}
|
|
65
96
|
}
|
|
66
97
|
|
|
67
|
-
self.delete
|
|
98
|
+
self.delete = async (req, res) => {
|
|
68
99
|
try {
|
|
69
100
|
const _id = req.params.MENU_ID
|
|
70
101
|
const response = await Menu.deleteOne({ _id })
|
|
71
|
-
if(!response.deletedCount)
|
|
72
|
-
res.status(404).send({ error
|
|
102
|
+
if (!response.deletedCount)
|
|
103
|
+
res.status(404).send({ error: "El registro no existe" })
|
|
73
104
|
else
|
|
74
105
|
res.status(200).send({})
|
|
75
106
|
} catch (error) {
|
|
76
|
-
res.status(400).send({error:error.message})
|
|
107
|
+
res.status(400).send({ error: error.message })
|
|
77
108
|
}
|
|
78
109
|
}
|
|
79
110
|
|
|
80
111
|
self.order = async (req, resp) => {
|
|
81
112
|
try {
|
|
82
|
-
if(!req.body.length)
|
|
113
|
+
if (!req.body.length)
|
|
83
114
|
throw new Error('Upss! No se encontró el registro')
|
|
84
115
|
|
|
85
|
-
for(let i in req.body){
|
|
116
|
+
for (let i in req.body) {
|
|
86
117
|
const item = req.body[i]
|
|
87
|
-
await Menu.updateOne({ _id:item._id }, { $set: { index: item.index } })
|
|
118
|
+
await Menu.updateOne({ _id: item._id }, { $set: { index: item.index } })
|
|
88
119
|
}
|
|
89
120
|
resp.status(200).send({})
|
|
90
121
|
} catch (error) {
|
|
91
|
-
resp.status(400).send({error:error.message})
|
|
122
|
+
resp.status(400).send({ error: error.message })
|
|
92
123
|
}
|
|
93
124
|
}
|
|
94
125
|
|
|
95
|
-
self.count = async(req, res) => {
|
|
126
|
+
self.count = async (req, res) => {
|
|
96
127
|
try {
|
|
97
128
|
let result = await Menu.find({}).countDocuments()
|
|
98
129
|
res.status(200).send({ count: result })
|
|
99
130
|
} catch (error) {
|
|
100
|
-
res.status(400).send({error:error.message})
|
|
131
|
+
res.status(400).send({ error: error.message })
|
|
101
132
|
}
|
|
102
133
|
}
|
|
@@ -9,7 +9,7 @@ self.create = async (req, res) => {
|
|
|
9
9
|
await permission.save()
|
|
10
10
|
res.status(201).send(permission)
|
|
11
11
|
} catch (error) {
|
|
12
|
-
switch(error.code){
|
|
12
|
+
switch (error.code) {
|
|
13
13
|
case 11000: obj = { error: 'El campo ' + JSON.stringify(error.keyValue) + ' ya se encuentra dado de alta', suggestion: 'Revisa la información e intenta nuevamente.' }; break
|
|
14
14
|
default: obj = error
|
|
15
15
|
}
|
|
@@ -22,20 +22,20 @@ self.update = async (req, resp) => {
|
|
|
22
22
|
await (new Permission(req.body)).validate()
|
|
23
23
|
const _id = req.params.PERMISSION_ID
|
|
24
24
|
const count = await Permission.findOne({ _id }).countDocuments()
|
|
25
|
-
if(!count)
|
|
25
|
+
if (!count)
|
|
26
26
|
throw new Error('Upss! No se encontró el registro')
|
|
27
27
|
req.body.lastUpdate = (new Date()).getTime()
|
|
28
28
|
const result = await Permission.updateOne({ _id }, req.body)
|
|
29
29
|
resp.status(200).send(req.body)
|
|
30
30
|
} catch (error) {
|
|
31
|
-
resp.status(400).send({error:error.message})
|
|
31
|
+
resp.status(400).send({ error: error.message })
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
self.status = async (req, resp) => {
|
|
35
35
|
try {
|
|
36
36
|
const _id = req.params.PERMISSION_ID
|
|
37
37
|
const user = await Permission.findOne({ _id })
|
|
38
|
-
if(!user)
|
|
38
|
+
if (!user)
|
|
39
39
|
throw new Error('Upss! No se encontró el Elemento')
|
|
40
40
|
user.status = req.body.status
|
|
41
41
|
user.lastUpdate = (new Date()).getTime()
|
|
@@ -43,24 +43,54 @@ self.status = async (req, resp) => {
|
|
|
43
43
|
|
|
44
44
|
resp.status(200).send(result)
|
|
45
45
|
} catch (error) {
|
|
46
|
-
resp.status(400).send({error:error.message})
|
|
46
|
+
resp.status(400).send({ error: error.message })
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
|
-
self.retrieve = async(req, res) => {
|
|
49
|
+
self.retrieve = async (req, res) => {
|
|
50
50
|
try {
|
|
51
|
-
const consulta = await Permission.find({}).sort({createdAt
|
|
51
|
+
const consulta = await Permission.find({}).sort({ createdAt: -1 })
|
|
52
52
|
res.status(200).send(consulta)
|
|
53
53
|
} catch (error) {
|
|
54
54
|
res.status(400).send(error)
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
-
self.
|
|
58
|
+
self.retrievePages = async (req, res) => {
|
|
59
|
+
try {
|
|
60
|
+
let { page = 1, itemsPerPage = 10, sort = { createdAt: -1 } } = req.body.config || {}
|
|
61
|
+
let query = {}
|
|
62
|
+
let attributes = { pwd: 0, tokens: 0 }
|
|
63
|
+
|
|
64
|
+
const count = await Permission.countDocuments(query, attributes)
|
|
65
|
+
let items
|
|
66
|
+
|
|
67
|
+
if (Number(page) === 0 && Number(itemsPerPage) === 0) {
|
|
68
|
+
items = await Permission.find(query, attributes)
|
|
69
|
+
.sort(sort)
|
|
70
|
+
.lean()
|
|
71
|
+
page = 1
|
|
72
|
+
itemsPerPage = count > 0 ? count : 1
|
|
73
|
+
} else {
|
|
74
|
+
items = await Permission.find(query, attributes)
|
|
75
|
+
.skip(Number(itemsPerPage) * (Number(page) - 1))
|
|
76
|
+
.limit(Number(itemsPerPage))
|
|
77
|
+
.sort(sort)
|
|
78
|
+
.lean()
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
const response = await utils.generatePaginationResponse(count, page, itemsPerPage, items)
|
|
82
|
+
res.status(200).send(response);
|
|
83
|
+
} catch (error) {
|
|
84
|
+
res.status(400).send({ error: error.message });
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
self.get = async (req, res) => {
|
|
59
89
|
try {
|
|
60
90
|
const _id = req.params.PERMISSION_ID
|
|
61
|
-
const permission = await Permission.findOne({_id
|
|
62
|
-
if(!permission)
|
|
63
|
-
|
|
91
|
+
const permission = await Permission.findOne({ _id })
|
|
92
|
+
if (!permission)
|
|
93
|
+
res.status(404).send()
|
|
64
94
|
res.status(200).send(permission)
|
|
65
95
|
} catch (error) {
|
|
66
96
|
console.log(error)
|
|
@@ -68,24 +98,24 @@ self.get = async(req, res) => {
|
|
|
68
98
|
}
|
|
69
99
|
}
|
|
70
100
|
|
|
71
|
-
self.delete
|
|
101
|
+
self.delete = async (req, res) => {
|
|
72
102
|
try {
|
|
73
103
|
const _id = req.params.PERMISSION_ID
|
|
74
104
|
const response = await Permission.deleteOne({ _id })
|
|
75
|
-
if(!response.deletedCount)
|
|
76
|
-
res.status(404).send({ error
|
|
105
|
+
if (!response.deletedCount)
|
|
106
|
+
res.status(404).send({ error: "El registro no existe" })
|
|
77
107
|
else
|
|
78
108
|
res.status(200).send({})
|
|
79
109
|
} catch (error) {
|
|
80
|
-
res.status(400).send({error:error.message})
|
|
110
|
+
res.status(400).send({ error: error.message })
|
|
81
111
|
}
|
|
82
112
|
}
|
|
83
113
|
|
|
84
|
-
self.count = async(req, res) => {
|
|
114
|
+
self.count = async (req, res) => {
|
|
85
115
|
try {
|
|
86
116
|
let result = await Permission.find({}).countDocuments()
|
|
87
117
|
res.status(200).send({ count: result })
|
|
88
118
|
} catch (error) {
|
|
89
|
-
res.status(400).send({error:error.message})
|
|
119
|
+
res.status(400).send({ error: error.message })
|
|
90
120
|
}
|
|
91
121
|
}
|
package/lib/controllers/user.js
CHANGED
|
@@ -149,6 +149,37 @@ self.retrieve = async (req, res) => {
|
|
|
149
149
|
}
|
|
150
150
|
};
|
|
151
151
|
|
|
152
|
+
self.retrievePages = async (req, res) => {
|
|
153
|
+
try {
|
|
154
|
+
|
|
155
|
+
let { page = 1, itemsPerPage = 10, sort = { createdAt: -1 } } = req.body.config || {}
|
|
156
|
+
let query = {}
|
|
157
|
+
let attributes = { pwd: 0, tokens: 0 }
|
|
158
|
+
|
|
159
|
+
const count = await User.countDocuments(query, attributes)
|
|
160
|
+
let items
|
|
161
|
+
|
|
162
|
+
if (Number(page) === 0 && Number(itemsPerPage) === 0) {
|
|
163
|
+
items = await User.find(query, attributes)
|
|
164
|
+
.sort(sort)
|
|
165
|
+
.lean()
|
|
166
|
+
page = 1
|
|
167
|
+
itemsPerPage = count > 0 ? count : 1
|
|
168
|
+
} else {
|
|
169
|
+
items = await User.find(query, attributes)
|
|
170
|
+
.skip(Number(itemsPerPage) * (Number(page) - 1))
|
|
171
|
+
.limit(Number(itemsPerPage))
|
|
172
|
+
.sort(sort)
|
|
173
|
+
.lean()
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
const response = await utils.generatePaginationResponse(count, page, itemsPerPage, items)
|
|
177
|
+
res.status(200).send(response);
|
|
178
|
+
} catch (error) {
|
|
179
|
+
res.status(400).send({ error: error.message });
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
|
|
152
183
|
self.retrieveByBusiness = async (req, res) => {
|
|
153
184
|
try {
|
|
154
185
|
const businessId = req.header("Business") || null;
|
package/lib/router.js
CHANGED
|
@@ -41,6 +41,7 @@ router.post("/iam/auth/validate/mail", middleware, auth.validatEmailChange);
|
|
|
41
41
|
// IAM / User
|
|
42
42
|
router.post("/iam/user", middleware, user.create);
|
|
43
43
|
router.get("/iam/user", middleware, user.retrieve);
|
|
44
|
+
router.post("/iam/user/pages", middleware, user.retrievePages);
|
|
44
45
|
router.get("/iam/business/user", middleware, user.retrieveByBusiness);
|
|
45
46
|
router.get("/iam/user/by/my/companies", middleware, user.retrieveByMyCompanies);
|
|
46
47
|
router.get("/iam/user/:USER_ID", middleware, user.get);
|
|
@@ -55,6 +56,7 @@ router.post("/iam/functions", middleware, functions.create);
|
|
|
55
56
|
router.patch("/iam/functions/:FUNCTION_ID", middleware, functions.update);
|
|
56
57
|
router.put("/iam/functions/:FUNCTION_ID/status", middleware, functions.status);
|
|
57
58
|
router.get("/iam/functions", middleware, functions.retrieve);
|
|
59
|
+
router.post("/iam/functions/pages", middleware, functions.retrievePages);
|
|
58
60
|
router.get("/iam/functions/:FUNCTION_ID", middleware, functions.get);
|
|
59
61
|
router.delete("/iam/functions/:FUNCTION_ID", middleware, functions.delete);
|
|
60
62
|
router.get("/iam/functions/count/all", middleware, functions.count);
|
|
@@ -68,6 +70,7 @@ router.put(
|
|
|
68
70
|
permission.status
|
|
69
71
|
);
|
|
70
72
|
router.get("/iam/permission", middleware, permission.retrieve);
|
|
73
|
+
router.post("/iam/permission/pages", middleware, permission.retrievePages);
|
|
71
74
|
router.get("/iam/permission/:PERMISSION_ID", middleware, permission.get);
|
|
72
75
|
router.delete("/iam/permission/:PERMISSION_ID", middleware, permission.delete);
|
|
73
76
|
router.get("/iam/permission/count/all", middleware, permission.count);
|
|
@@ -77,6 +80,7 @@ router.post("/iam/menu", middleware, menu.create);
|
|
|
77
80
|
router.patch("/iam/menu/:MENU_ID", middleware, menu.update);
|
|
78
81
|
router.put("/iam/menu/:MENU_ID/status", middleware, menu.status);
|
|
79
82
|
router.get("/iam/menu", middleware, menu.retrieve);
|
|
83
|
+
router.post("/iam/menu/pages", middleware, menu.retrievePages);
|
|
80
84
|
router.get("/iam/menu/:MENU_ID", middleware, menu.get);
|
|
81
85
|
router.delete("/iam/menu/:MENU_ID", middleware, menu.delete);
|
|
82
86
|
router.post("/iam/menu/order", middleware, menu.order);
|
|
@@ -110,6 +114,7 @@ router.get("/iam/log/count/all", middleware, log.count);
|
|
|
110
114
|
//Business
|
|
111
115
|
router.post("/iam/business", middleware, business.create);
|
|
112
116
|
router.get("/iam/business", middleware, business.retrieve);
|
|
117
|
+
router.post("/iam/business/pages", middleware, business.retrievePages);
|
|
113
118
|
router.post("/iam/business/company", middleware, business.retrieveByCompany);
|
|
114
119
|
router.get("/iam/business/my", middleware, business.retrieveMy);
|
|
115
120
|
router.get(
|
package/lib/swagger.yaml
CHANGED
|
@@ -653,6 +653,38 @@ paths:
|
|
|
653
653
|
responses:
|
|
654
654
|
'200': # status code
|
|
655
655
|
description: Retorna el resultado de la respuesta
|
|
656
|
+
/iam/user/pages:
|
|
657
|
+
post:
|
|
658
|
+
summary: Listar usuarios (Paginado)
|
|
659
|
+
tags:
|
|
660
|
+
- users
|
|
661
|
+
security:
|
|
662
|
+
- bearerAuth: []
|
|
663
|
+
requestBody:
|
|
664
|
+
description: Configuración de paginación
|
|
665
|
+
content:
|
|
666
|
+
application/json:
|
|
667
|
+
schema:
|
|
668
|
+
type: object
|
|
669
|
+
properties:
|
|
670
|
+
config:
|
|
671
|
+
type: object
|
|
672
|
+
properties:
|
|
673
|
+
page:
|
|
674
|
+
type: integer
|
|
675
|
+
default: 1
|
|
676
|
+
itemsPerPage:
|
|
677
|
+
type: integer
|
|
678
|
+
default: 10
|
|
679
|
+
filter:
|
|
680
|
+
type: object
|
|
681
|
+
example:
|
|
682
|
+
config:
|
|
683
|
+
page: 1
|
|
684
|
+
itemsPerPage: 10
|
|
685
|
+
responses:
|
|
686
|
+
'200':
|
|
687
|
+
description: ok
|
|
656
688
|
/iam/functions:
|
|
657
689
|
post:
|
|
658
690
|
summary: Crea una función
|
|
@@ -801,6 +833,38 @@ paths:
|
|
|
801
833
|
responses:
|
|
802
834
|
'200': # status code
|
|
803
835
|
description: Retorna el resultado de la respuesta
|
|
836
|
+
/iam/functions/pages:
|
|
837
|
+
post:
|
|
838
|
+
summary: Listar funciones (Paginado)
|
|
839
|
+
tags:
|
|
840
|
+
- functions
|
|
841
|
+
security:
|
|
842
|
+
- bearerAuth: []
|
|
843
|
+
requestBody:
|
|
844
|
+
description: Configuración de paginación
|
|
845
|
+
content:
|
|
846
|
+
application/json:
|
|
847
|
+
schema:
|
|
848
|
+
type: object
|
|
849
|
+
properties:
|
|
850
|
+
config:
|
|
851
|
+
type: object
|
|
852
|
+
properties:
|
|
853
|
+
page:
|
|
854
|
+
type: integer
|
|
855
|
+
default: 1
|
|
856
|
+
itemsPerPage:
|
|
857
|
+
type: integer
|
|
858
|
+
default: 10
|
|
859
|
+
filter:
|
|
860
|
+
type: object
|
|
861
|
+
example:
|
|
862
|
+
config:
|
|
863
|
+
page: 1
|
|
864
|
+
itemsPerPage: 10
|
|
865
|
+
responses:
|
|
866
|
+
'200':
|
|
867
|
+
description: ok
|
|
804
868
|
/iam/permission:
|
|
805
869
|
post:
|
|
806
870
|
summary: Crea un permiso
|
|
@@ -979,6 +1043,38 @@ paths:
|
|
|
979
1043
|
responses:
|
|
980
1044
|
'200': # status code
|
|
981
1045
|
description: Retorna el resultado de la respuesta
|
|
1046
|
+
/iam/permission/pages:
|
|
1047
|
+
post:
|
|
1048
|
+
summary: Listar permisos (Paginado)
|
|
1049
|
+
tags:
|
|
1050
|
+
- permissions
|
|
1051
|
+
security:
|
|
1052
|
+
- bearerAuth: []
|
|
1053
|
+
requestBody:
|
|
1054
|
+
description: Configuración de paginación
|
|
1055
|
+
content:
|
|
1056
|
+
application/json:
|
|
1057
|
+
schema:
|
|
1058
|
+
type: object
|
|
1059
|
+
properties:
|
|
1060
|
+
config:
|
|
1061
|
+
type: object
|
|
1062
|
+
properties:
|
|
1063
|
+
page:
|
|
1064
|
+
type: integer
|
|
1065
|
+
default: 1
|
|
1066
|
+
itemsPerPage:
|
|
1067
|
+
type: integer
|
|
1068
|
+
default: 10
|
|
1069
|
+
filter:
|
|
1070
|
+
type: object
|
|
1071
|
+
example:
|
|
1072
|
+
config:
|
|
1073
|
+
page: 1
|
|
1074
|
+
itemsPerPage: 10
|
|
1075
|
+
responses:
|
|
1076
|
+
'200':
|
|
1077
|
+
description: ok
|
|
982
1078
|
/iam/menu:
|
|
983
1079
|
post:
|
|
984
1080
|
summary: Crea un menú
|
|
@@ -1179,6 +1275,38 @@ paths:
|
|
|
1179
1275
|
responses:
|
|
1180
1276
|
'200': # status code
|
|
1181
1277
|
description: Retorna el resultado de la respuesta
|
|
1278
|
+
/iam/menu/pages:
|
|
1279
|
+
post:
|
|
1280
|
+
summary: Listar menus (Paginado)
|
|
1281
|
+
tags:
|
|
1282
|
+
- menús
|
|
1283
|
+
security:
|
|
1284
|
+
- bearerAuth: []
|
|
1285
|
+
requestBody:
|
|
1286
|
+
description: Configuración de paginación
|
|
1287
|
+
content:
|
|
1288
|
+
application/json:
|
|
1289
|
+
schema:
|
|
1290
|
+
type: object
|
|
1291
|
+
properties:
|
|
1292
|
+
config:
|
|
1293
|
+
type: object
|
|
1294
|
+
properties:
|
|
1295
|
+
page:
|
|
1296
|
+
type: integer
|
|
1297
|
+
default: 1
|
|
1298
|
+
itemsPerPage:
|
|
1299
|
+
type: integer
|
|
1300
|
+
default: 10
|
|
1301
|
+
filter:
|
|
1302
|
+
type: object
|
|
1303
|
+
example:
|
|
1304
|
+
config:
|
|
1305
|
+
page: 1
|
|
1306
|
+
itemsPerPage: 10
|
|
1307
|
+
responses:
|
|
1308
|
+
'200':
|
|
1309
|
+
description: ok
|
|
1182
1310
|
/iam/history:
|
|
1183
1311
|
post:
|
|
1184
1312
|
summary: Obtener todo el historial paginado
|
|
@@ -1229,4 +1357,36 @@ paths:
|
|
|
1229
1357
|
- bearerAuth: []
|
|
1230
1358
|
responses:
|
|
1231
1359
|
'200': # status code
|
|
1232
|
-
description: Retorna un objeto
|
|
1360
|
+
description: Retorna un objeto
|
|
1361
|
+
/iam/business/pages:
|
|
1362
|
+
post:
|
|
1363
|
+
summary: Listar negocios (Paginado)
|
|
1364
|
+
tags:
|
|
1365
|
+
- business
|
|
1366
|
+
security:
|
|
1367
|
+
- bearerAuth: []
|
|
1368
|
+
requestBody:
|
|
1369
|
+
description: Configuración de paginación
|
|
1370
|
+
content:
|
|
1371
|
+
application/json:
|
|
1372
|
+
schema:
|
|
1373
|
+
type: object
|
|
1374
|
+
properties:
|
|
1375
|
+
config:
|
|
1376
|
+
type: object
|
|
1377
|
+
properties:
|
|
1378
|
+
page:
|
|
1379
|
+
type: integer
|
|
1380
|
+
default: 1
|
|
1381
|
+
itemsPerPage:
|
|
1382
|
+
type: integer
|
|
1383
|
+
default: 10
|
|
1384
|
+
filter:
|
|
1385
|
+
type: object
|
|
1386
|
+
example:
|
|
1387
|
+
config:
|
|
1388
|
+
page: 1
|
|
1389
|
+
itemsPerPage: 10
|
|
1390
|
+
responses:
|
|
1391
|
+
'200':
|
|
1392
|
+
description: ok
|