Make transaction link filter object nullable

This commit is contained in:
Wolfgang Huß 2022-05-31 11:00:56 +02:00
parent cabb844c2c
commit 514a38ea38
4 changed files with 19 additions and 16 deletions

View File

@ -12,6 +12,6 @@ export default class SearchUsersArgs {
@Field(() => Int, { nullable: true })
pageSize?: number
@Field(() => SearchUsersFilters, { nullable: true })
@Field(() => SearchUsersFilters, { nullable: true, defaultValue: null })
filters: SearchUsersFilters
}

View File

@ -1332,11 +1332,7 @@ describe('AdminResolver', () => {
describe('transaction links list', () => {
const variables = {
userId: 1, // dummy, may be replaced
filters: {
withDeleted: null,
withExpired: null,
withRedeemed: null,
},
filters: null,
currentPage: 1,
pageSize: 5,
}
@ -1434,13 +1430,12 @@ describe('AdminResolver', () => {
resetToken()
})
// Todo: make filters argument nullable?
describe.skip('without any filters', () => {
describe('without any filters', () => {
it('finds 6 open transaction links and no deleted or redeemed', async () => {
await expect(
query({
query: listTransactionLinksAdmin,
variables: { ...variables, filters: null },
variables,
}),
).resolves.toEqual(expectNoDeletedOrRedeemed)
})
@ -1451,7 +1446,14 @@ describe('AdminResolver', () => {
await expect(
query({
query: listTransactionLinksAdmin,
variables,
variables: {
...variables,
filters: {
withDeleted: null,
withExpired: null,
withRedeemed: null,
},
},
}),
).resolves.toEqual(expectNoDeletedOrRedeemed)
})

View File

@ -426,9 +426,10 @@ export class AdminResolver {
async listTransactionLinksAdmin(
@Args()
{ currentPage = 1, pageSize = 5, order = Order.DESC }: Paginated,
@Arg('filters')
@Arg('filters', () => TransactionLinkFilters, { nullable: true, defaultValue: null })
filters: TransactionLinkFilters,
@Arg('userId', () => Int) userId: number,
@Arg('userId', () => Int)
userId: number,
): Promise<TransactionLinkResult> {
const user = await dbUser.findOneOrFail({ id: userId })
const where: {
@ -438,11 +439,11 @@ export class AdminResolver {
} = {
userId,
}
if (!filters.withRedeemed) where.redeemedBy = null
if (!filters.withExpired) where.validUntil = MoreThan(new Date())
if (!filters || !filters.withRedeemed) where.redeemedBy = null
if (!filters || !filters.withExpired) where.validUntil = MoreThan(new Date())
const [transactionLinks, count] = await dbTransactionLink.findAndCount({
where,
withDeleted: filters.withDeleted,
withDeleted: !filters ? false : filters.withDeleted,
order: {
createdAt: order,
},

View File

@ -165,7 +165,7 @@ export const deletePendingCreation = gql`
export const listTransactionLinksAdmin = gql`
query (
$userId: Int!
$filters: TransactionLinkFilters!
$filters: TransactionLinkFilters
$currentPage: Int = 1
$pageSize: Int = 5
) {