chore: make fuzzy matching a paramater
Some checks failed
continuous-integration/drone/pr Build is failing

This commit is contained in:
kolaente 2023-04-14 15:36:38 +02:00
parent 760e471ffa
commit d55ab01c75
Signed by: konrad
GPG Key ID: F40E70337AB24C9B

View File

@ -35,16 +35,14 @@ interface MatchedAssignee extends IUser {
} }
// IDEA: maybe use a small fuzzy search here to prevent errors // IDEA: maybe use a small fuzzy search here to prevent errors
function findPropertyByValue(object, key, value) { function findPropertyByValue(object, key, value, fuzzy: boolean = false) {
return Object.values(object).find( return Object.values(object).find(l => {
(l) => l[key]?.toLowerCase() === value.toLowerCase(), if (fuzzy) {
) return l[key]?.toLowerCase().includes(value.toLowerCase())
} }
function findPropertyByValueFuzzy(object, key, value) { return l[key]?.toLowerCase() === value.toLowerCase()
return Object.values(object).find( })
(l) => l[key]?.toLowerCase().includes(value.toLowerCase()),
)
} }
// Check if the user exists in the search results // Check if the user exists in the search results
@ -53,9 +51,9 @@ function validateUser(
query: IUser['username'] | IUser['name'] | IUser['email'], query: IUser['username'] | IUser['name'] | IUser['email'],
) { ) {
if (users.length === 1) { if (users.length === 1) {
return findPropertyByValueFuzzy(users, 'username', query) || return findPropertyByValue(users, 'username', query, true) ||
findPropertyByValueFuzzy(users, 'name', query) || findPropertyByValue(users, 'name', query, true) ||
findPropertyByValueFuzzy(users, 'email', query) findPropertyByValue(users, 'email', query, true)
} }
return findPropertyByValue(users, 'username', query) || return findPropertyByValue(users, 'username', query) ||