Skip to content

Commit 262a3e0

Browse files
committed
add userType filter endpoint
1 parent f4f2f72 commit 262a3e0

File tree

2 files changed

+26
-6
lines changed

2 files changed

+26
-6
lines changed

src/constants/userTypes.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
const userTypes = ['Estudiante', 'Trabajador Docente', 'Trabajador']
2+
3+
const user_types_query = ['student', 'employee', 'docent_employee']
4+
5+
module.exports = {
6+
userTypes,
7+
user_types_query,
8+
}

src/helpers/convertQueryToFilter.js

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,12 @@
11
/* thank you chatgpt */
2+
const { userTypes } = require('@src/constants/userTypes')
3+
4+
const userTypeFilters = {
5+
student: userTypes[0],
6+
employee: userTypes[1],
7+
docent_employee: userTypes[2],
8+
}
9+
210
const createLdapFilterFromQuery = (query) => {
311
const filters = []
412

@@ -7,27 +15,31 @@ const createLdapFilterFromQuery = (query) => {
715
}
816

917
if (query.uid) {
10-
filters.push(`uid=${query.uid}`)
18+
filters.push(`(uid=${query.uid})`)
1119
}
1220

1321
if (query.cn) {
14-
filters.push(`cn=${query.cn}`)
22+
filters.push(`(cn=${query.cn})`)
1523
}
1624

1725
if (query.username) {
18-
filters.push(`uid=${query.username}`)
26+
filters.push(`(uid=${query.username})`)
1927
}
2028

2129
if (query.ci) {
22-
filters.push(`ci=${query.ci}`)
30+
filters.push(`(ci=${query.ci})`)
2331
}
2432

2533
if (query.email) {
26-
filters.push(`maildrop=${query.email}`)
34+
filters.push(`(maildrop=${query.email})`)
35+
}
36+
37+
if (query.userType && userTypeFilters[query.userType]) {
38+
filters.push(`(userType=${userTypeFilters[query.userType]})`)
2739
}
2840

2941
// Combine multiple filters using logical AND
30-
const ldapFilter = `(${filters.join('')})`
42+
const ldapFilter = `${filters.join('')}`
3143

3244
return ldapFilter
3345
}

0 commit comments

Comments
 (0)