Make term parameter easier to use
continuous-integration/drone/push Build is passing Details

This commit is contained in:
Jared He 2021-10-13 01:10:32 -04:00
parent 615aa3f95f
commit a7d3a4e989
2 changed files with 11 additions and 9 deletions

View File

@ -6,11 +6,14 @@ interface MemberItem {
program: string;
}
// note: the term parameter is different due to the way the LDAP database is structured
export async function getMembers(
year: string,
term: "w" | "s" | "f"
term: string
): Promise<MemberItem[]> {
if (term !== "winter" && term !== "spring" && term !== "fall") {
throw new Error(`[getMembers] Not a valid term: "${term}"`);
}
let members: MemberItem[] = [];
const url = "ldap://ldap1.csclub.uwaterloo.ca";
@ -22,7 +25,7 @@ export async function getMembers(
await client.bind("", "");
const { searchEntries } = await client.search(searchDN, {
scope: "sub",
filter: `(&(objectClass=member)(term=${term}${year}))`,
filter: `(&(objectClass=member)(term=${term.slice(0, 1)}${year}))`,
});
members = searchEntries
@ -36,11 +39,10 @@ export async function getMembers(
.sort((item1: MemberItem, item2: MemberItem) =>
item1.id.localeCompare(item2.id)
);
}
// catch (ex) {
// throw ex;
// }
finally {
} finally {
// catch (ex) {
// throw ex;
// }
await client.unbind();
}

View File

@ -1,7 +1,7 @@
import { getMembers } from "./ldap";
const main = async () => {
const members = await getMembers("2020", "w");
const members = await getMembers("2020", "winter");
console.log(members);
};