Change type of filterState from string[] to ContributionStatus[].

This commit is contained in:
elweyn 2023-01-24 12:10:53 +01:00
parent 1554a7d454
commit d42804acfb

View File

@ -180,26 +180,23 @@ export class ContributionResolver {
async listAllContributions( async listAllContributions(
@Args() @Args()
{ currentPage = 1, pageSize = 5, order = Order.DESC }: Paginated, { currentPage = 1, pageSize = 5, order = Order.DESC }: Paginated,
@Arg('filterState', () => [String], { nullable: true }) @Arg('filterState', () => [ContributionStatus], { nullable: true })
filterStates: string[] | null, filterStates: ContributionStatus[] | null,
@Ctx() context: Context, @Ctx() context: Context,
): Promise<ContributionListResult> { ): Promise<ContributionListResult> {
const where: { const where: {
contributionStatus?: FindOperator<string> | null contributionStatus?: FindOperator<string> | null
} = {} } = {}
const typeStatus = Object.values(ContributionStatus) const typeStatus = Object.values(ContributionStatus)
const filterStateArray = []
const user = getUser(context) const user = getUser(context)
i18n.setLocale(user.language) i18n.setLocale(user.language)
if (filterStates !== null) { if (filterStates !== null) {
// Asked ChatGBT for explanation => filterState converted to ContributionStatus const filterStateArray = []
const length = filterStates.length const length = filterStates.length
let i = 0 let i = 0
for (i; i < length; i++) { for (i; i < length; i++) {
const filterState = filterStates[i].toUpperCase() const filterState = filterStates[i]
const contributionStatus = if (!typeStatus.includes(filterState)) {
ContributionStatus[filterState as keyof typeof ContributionStatus]
if (!typeStatus.includes(contributionStatus)) {
logger.error( logger.error(
`${i18n.__('error.contributions.wrongFilterState', { `${i18n.__('error.contributions.wrongFilterState', {
contributionState: filterStates[i], contributionState: filterStates[i],
@ -211,7 +208,7 @@ export class ContributionResolver {
})}`, })}`,
) )
} }
filterStateArray.push(contributionStatus) filterStateArray.push(filterState)
} }
if (filterStateArray.length > 0) { if (filterStateArray.length > 0) {
where.contributionStatus = In(filterStateArray) where.contributionStatus = In(filterStateArray)