diff --git a/backend/src/graphql/model/Contribution.ts b/backend/src/graphql/model/Contribution.ts index 209ebf4f8..5614f355f 100644 --- a/backend/src/graphql/model/Contribution.ts +++ b/backend/src/graphql/model/Contribution.ts @@ -12,7 +12,7 @@ export class Contribution extends UnconfirmedContribution { this.confirmedAt = contribution.confirmedAt this.confirmedBy = contribution.confirmedBy this.contributionDate = contribution.contributionDate - + this.deniedAt = contribution.deniedAt this.deniedBy = contribution.deniedBy this.deletedAt = contribution.deletedAt @@ -50,7 +50,7 @@ export class Contribution extends UnconfirmedContribution { updatedBy: number | null @Field(() => Date) - contributionDate: Date + contributionDate: Date @Field(() => Date, { nullable: true }) resubmissionAt: Date | null diff --git a/backend/src/graphql/model/UnconfirmedContribution.ts b/backend/src/graphql/model/UnconfirmedContribution.ts index e3d0e3152..3be48f774 100644 --- a/backend/src/graphql/model/UnconfirmedContribution.ts +++ b/backend/src/graphql/model/UnconfirmedContribution.ts @@ -5,7 +5,7 @@ import { Decimal } from 'decimal.js-light' import { Field, Int, ObjectType } from 'type-graphql' import { ContributionMessage } from './ContributionMessage' -import { User } from './User' +import { User } from './User' @ObjectType() export class UnconfirmedContribution { diff --git a/backend/src/graphql/resolver/ContributionMessageResolver.test.ts b/backend/src/graphql/resolver/ContributionMessageResolver.test.ts index 5bcc8143a..c0893d7de 100644 --- a/backend/src/graphql/resolver/ContributionMessageResolver.test.ts +++ b/backend/src/graphql/resolver/ContributionMessageResolver.test.ts @@ -86,7 +86,7 @@ describe('ContributionMessageResolver', () => { variables: { amount: 100.0, memo: 'Test env contribution', - creationDate: new Date().toString(), + contributionDate: new Date().toString(), }, }) await mutate({ @@ -139,7 +139,7 @@ describe('ContributionMessageResolver', () => { variables: { amount: 100.0, memo: 'Test env contribution', - creationDate: new Date().toString(), + contributionDate: new Date().toString(), }, }) const mutationResult = await mutate({ diff --git a/backend/src/graphql/resolver/ContributionResolver.test.ts b/backend/src/graphql/resolver/ContributionResolver.test.ts index ab409b4cc..5eff51f15 100644 --- a/backend/src/graphql/resolver/ContributionResolver.test.ts +++ b/backend/src/graphql/resolver/ContributionResolver.test.ts @@ -107,7 +107,7 @@ describe('ContributionResolver', () => { variables: { amount: 100.0, memo: 'Test PENDING contribution', - creationDate: new Date().toString(), + contributionDate: new Date().toString(), }, }) inProgressContribution = await mutate({ @@ -115,7 +115,7 @@ describe('ContributionResolver', () => { variables: { amount: 100.0, memo: 'Test IN_PROGRESS contribution', - creationDate: new Date().toString(), + contributionDate: new Date().toString(), }, }) contributionToConfirm = await mutate({ @@ -123,7 +123,7 @@ describe('ContributionResolver', () => { variables: { amount: 100.0, memo: 'Test contribution to confirm', - creationDate: new Date().toString(), + contributionDate: new Date().toString(), }, }) contributionToDeny = await mutate({ @@ -131,7 +131,7 @@ describe('ContributionResolver', () => { variables: { amount: 100.0, memo: 'Test contribution to deny', - creationDate: new Date().toString(), + contributionDate: new Date().toString(), }, }) contributionToDelete = await mutate({ @@ -139,7 +139,7 @@ describe('ContributionResolver', () => { variables: { amount: 100.0, memo: 'Test contribution to delete', - creationDate: new Date().toString(), + contributionDate: new Date().toString(), }, }) await mutate({ @@ -177,7 +177,7 @@ describe('ContributionResolver', () => { it('returns an error', async () => { const { errors: errorObjects } = await mutate({ mutation: createContribution, - variables: { amount: 100.0, memo: 'Test Contribution', creationDate: 'not-valid' }, + variables: { amount: 100.0, memo: 'Test Contribution', contributionDate: 'not-valid' }, }) expect(errorObjects).toEqual([new GraphQLError('401 Unauthorized')]) @@ -206,7 +206,7 @@ describe('ContributionResolver', () => { variables: { amount: 100.0, memo: 'Test', - creationDate: date.toString(), + contributionDate: date.toString(), }, }) expect(errorObjects).toMatchObject([ @@ -236,7 +236,7 @@ describe('ContributionResolver', () => { variables: { amount: 100.0, memo: 'Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test', - creationDate: date.toString(), + contributionDate: date.toString(), }, }) expect(errorObjects).toMatchObject([ @@ -265,7 +265,7 @@ describe('ContributionResolver', () => { variables: { amount: 100.0, memo: 'Test env contribution', - creationDate: 'not-valid', + contributionDate: 'not-valid', }, }) expect(errorObjects).toMatchObject([ @@ -275,9 +275,10 @@ describe('ContributionResolver', () => { exception: { validationErrors: [ { - property: 'creationDate', + property: 'contributionDate', constraints: { - isValidDateString: 'creationDate must be a valid date string, creationDate', + isValidDateString: + 'contributionDate must be a valid date string, contributionDate', }, }, ], @@ -295,7 +296,7 @@ describe('ContributionResolver', () => { variables: { amount: 100.0, memo: 'Test env contribution', - creationDate: date.toString(), + contributionDate: date.toString(), }, }) expect(errorObjects).toEqual([ @@ -344,7 +345,7 @@ describe('ContributionResolver', () => { contributionId: 1, amount: 100.0, memo: 'Test Contribution', - creationDate: 'not-valid', + contributionDate: 'not-valid', }, }) expect(errorObjects).toEqual([new GraphQLError('401 Unauthorized')]) @@ -373,7 +374,7 @@ describe('ContributionResolver', () => { contributionId: pendingContribution.data.createContribution.id, amount: 100.0, memo: 'Test', - creationDate: date.toString(), + contributionDate: date.toString(), }, }) expect(errorObjects).toMatchObject([ @@ -406,7 +407,7 @@ describe('ContributionResolver', () => { contributionId: pendingContribution.data.createContribution.id, amount: 100.0, memo: 'Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test', - creationDate: date.toString(), + contributionDate: date.toString(), }, }) expect(errorObjects).toMatchObject([ @@ -439,7 +440,7 @@ describe('ContributionResolver', () => { contributionId: -1, amount: 100.0, memo: 'Test env contribution', - creationDate: new Date().toString(), + contributionDate: new Date().toString(), }, }), ).resolves.toEqual( @@ -470,7 +471,7 @@ describe('ContributionResolver', () => { contributionId: pendingContribution.data.createContribution.id, amount: 10.0, memo: 'Test env contribution', - creationDate: new Date().toString(), + contributionDate: new Date().toString(), }, }) expect(errorObjects).toEqual([ @@ -525,7 +526,7 @@ describe('ContributionResolver', () => { contributionId: pendingContribution.data.createContribution.id, amount: 10.0, memo: 'Test env contribution', - creationDate: new Date().toString(), + contributionDate: new Date().toString(), }, }), ).resolves.toEqual( @@ -560,7 +561,7 @@ describe('ContributionResolver', () => { contributionId: pendingContribution.data.createContribution.id, amount: 1019.0, memo: 'Test env contribution', - creationDate: new Date().toString(), + contributionDate: new Date().toString(), }, }) expect(errorObjects).toEqual([ @@ -589,7 +590,7 @@ describe('ContributionResolver', () => { contributionId: pendingContribution.data.createContribution.id, amount: 10.0, memo: 'Test env contribution', - creationDate: date.toString(), + contributionDate: date.toString(), }, }) expect(errorObjects).toEqual([ @@ -612,7 +613,7 @@ describe('ContributionResolver', () => { contributionId: pendingContribution.data.createContribution.id, amount: 10.0, memo: 'Test PENDING contribution update', - creationDate: new Date().toString(), + contributionDate: new Date().toString(), }, }) expect(contribution).toMatchObject({ @@ -721,7 +722,7 @@ describe('ContributionResolver', () => { variables: { amount: 166.0, memo: 'Whatever contribution', - creationDate: new Date().toString(), + contributionDate: new Date().toString(), }, }) @@ -766,7 +767,7 @@ describe('ContributionResolver', () => { variables: { amount: 166.0, memo: 'Whatever contribution', - creationDate: new Date().toString(), + contributionDate: new Date().toString(), }, }) @@ -811,7 +812,7 @@ describe('ContributionResolver', () => { variables: { amount: 166.0, memo: 'Whatever contribution', - creationDate: new Date().toString(), + contributionDate: new Date().toString(), }, }) @@ -1043,9 +1044,11 @@ describe('ContributionResolver', () => { const { errors: errorObjects } = await query({ query: listContributions, variables: { - currentPage: 1, - pageSize: 25, - order: 'DESC', + pagination: { + currentPage: 1, + pageSize: 25, + order: 'DESC', + }, }, }) expect(errorObjects).toEqual([new GraphQLError('401 Unauthorized')]) @@ -1071,10 +1074,11 @@ describe('ContributionResolver', () => { } = await query({ query: listContributions, variables: { - currentPage: 1, - pageSize: 25, - order: 'DESC', - filterConfirmed: false, + pagination: { + currentPage: 1, + pageSize: 25, + order: 'DESC', + }, }, }) expect(contributionListResult).toMatchObject({ @@ -1121,59 +1125,6 @@ describe('ContributionResolver', () => { expect(contributionListResult.contributionList).toHaveLength(6) }) }) - - describe('with status filter [PENDING, IN_PROGRESS, DENIED, DELETED]', () => { - it('returns only unconfirmed creations', async () => { - const { - data: { listContributions: contributionListResult }, - } = await query({ - query: listContributions, - variables: { - currentPage: 1, - pageSize: 25, - order: 'DESC', - statusFilter: ['PENDING', 'IN_PROGRESS', 'DENIED', 'DELETED'], - }, - }) - expect(contributionListResult).toMatchObject({ - contributionCount: 4, - contributionList: expect.arrayContaining([ - expect.not.objectContaining({ - status: 'CONFIRMED', - }), - expect.objectContaining({ - id: pendingContribution.data.createContribution.id, - status: 'PENDING', - memo: 'Test PENDING contribution update', - amount: '10', - messagesCount: 1, - }), - expect.objectContaining({ - id: contributionToDeny.data.createContribution.id, - status: 'DENIED', - memo: 'Test contribution to deny', - amount: '100', - messagesCount: 0, - }), - expect.objectContaining({ - id: contributionToDelete.data.createContribution.id, - status: 'DELETED', - memo: 'Test contribution to delete', - amount: '100', - messagesCount: 0, - }), - expect.objectContaining({ - id: inProgressContribution.data.createContribution.id, - status: 'IN_PROGRESS', - memo: 'Test IN_PROGRESS contribution', - amount: '100', - messagesCount: 1, - }), - ]), - }) - expect(contributionListResult.contributionList).toHaveLength(4) - }) - }) }) }) @@ -1183,10 +1134,11 @@ describe('ContributionResolver', () => { const { errors: errorObjects } = await query({ query: listAllContributions, variables: { - currentPage: 1, - pageSize: 25, - order: 'DESC', - statusFilter: null, + pagination: { + currentPage: 1, + pageSize: 25, + order: 'DESC', + }, }, }) expect(errorObjects).toEqual([new GraphQLError('401 Unauthorized')]) @@ -1205,122 +1157,70 @@ describe('ContributionResolver', () => { resetToken() }) - it('throws an error with "NOT_VALID" in statusFilter', async () => { - const { errors: errorObjects } = await query({ - query: listAllContributions, - variables: { - currentPage: 1, - pageSize: 25, - order: 'DESC', - statusFilter: ['NOT_VALID'], - }, - }) - expect(errorObjects).toEqual([ - new UserInputError( - 'Variable "$statusFilter" got invalid value "NOT_VALID" at "statusFilter[0]"; Value "NOT_VALID" does not exist in "ContributionStatus" enum.', - ), - ]) - }) - - it('throws an error with a null in statusFilter', async () => { - const { errors: errorObjects } = await query({ - query: listAllContributions, - variables: { - currentPage: 1, - pageSize: 25, - order: 'DESC', - statusFilter: [null], - }, - }) - expect(errorObjects).toEqual([ - new UserInputError( - 'Variable "$statusFilter" got invalid value null at "statusFilter[0]"; Expected non-nullable type "ContributionStatus!" not to be null.', - ), - ]) - }) - - it('throws an error with null and "NOT_VALID" in statusFilter', async () => { - const { errors: errorObjects } = await query({ - query: listAllContributions, - variables: { - currentPage: 1, - pageSize: 25, - order: 'DESC', - statusFilter: [null, 'NOT_VALID'], - }, - }) - expect(errorObjects).toEqual([ - new UserInputError( - 'Variable "$statusFilter" got invalid value null at "statusFilter[0]"; Expected non-nullable type "ContributionStatus!" not to be null.', - ), - new UserInputError( - 'Variable "$statusFilter" got invalid value "NOT_VALID" at "statusFilter[1]"; Value "NOT_VALID" does not exist in "ContributionStatus" enum.', - ), - ]) - }) - it('returns all contributions without statusFilter', async () => { const { data: { listAllContributions: contributionListObject }, } = await query({ query: listAllContributions, variables: { - currentPage: 1, - pageSize: 25, - order: 'DESC', + pagination: { + currentPage: 1, + pageSize: 25, + order: 'DESC', + }, }, }) expect(contributionListObject).toMatchObject({ contributionCount: 7, contributionList: expect.arrayContaining([ expect.not.objectContaining({ - status: 'DELETED', + contributionStatus: 'DELETED', }), expect.objectContaining({ amount: '100', - status: 'CONFIRMED', + contributionStatus: 'CONFIRMED', id: contributionToConfirm.data.createContribution.id, memo: 'Test contribution to confirm', messagesCount: 0, }), expect.objectContaining({ id: pendingContribution.data.createContribution.id, - status: 'PENDING', + contributionStatus: 'PENDING', memo: 'Test PENDING contribution update', amount: '10', messagesCount: 0, }), expect.objectContaining({ id: contributionToDeny.data.createContribution.id, - status: 'DENIED', + contributionStatus: 'DENIED', memo: 'Test contribution to deny', amount: '100', messagesCount: 0, }), expect.objectContaining({ id: inProgressContribution.data.createContribution.id, - status: 'IN_PROGRESS', + contributionStatus: 'IN_PROGRESS', memo: 'Test IN_PROGRESS contribution', amount: '100', messagesCount: 0, }), expect.objectContaining({ id: bibiCreatedContribution.id, - status: 'CONFIRMED', + contributionStatus: 'CONFIRMED', memo: 'Herzlich Willkommen bei Gradido!', amount: '1000', messagesCount: 0, }), expect.objectContaining({ id: expect.any(Number), - status: 'CONFIRMED', + contributionStatus: 'CONFIRMED', memo: 'Whatever contribution', amount: '166', messagesCount: 0, }), expect.objectContaining({ id: expect.any(Number), - status: 'DENIED', + contributionStatus: 'DENIED', memo: 'Whatever contribution', amount: '166', messagesCount: 0, @@ -1329,402 +1229,6 @@ describe('ContributionResolver', () => { }) expect(contributionListObject.contributionList).toHaveLength(7) }) - - it('returns all contributions for statusFilter = null', async () => { - const { - data: { listAllContributions: contributionListObject }, - } = await query({ - query: listAllContributions, - variables: { - currentPage: 1, - pageSize: 25, - order: 'DESC', - statusFilter: null, - }, - }) - expect(contributionListObject).toMatchObject({ - contributionCount: 7, - contributionList: expect.arrayContaining([ - expect.not.objectContaining({ - status: 'DELETED', - }), - expect.objectContaining({ - amount: '100', - status: 'CONFIRMED', - id: contributionToConfirm.data.createContribution.id, - memo: 'Test contribution to confirm', - messagesCount: 0, - }), - expect.objectContaining({ - id: pendingContribution.data.createContribution.id, - status: 'PENDING', - memo: 'Test PENDING contribution update', - amount: '10', - messagesCount: 0, - }), - expect.objectContaining({ - id: contributionToDeny.data.createContribution.id, - status: 'DENIED', - memo: 'Test contribution to deny', - amount: '100', - messagesCount: 0, - }), - expect.objectContaining({ - id: inProgressContribution.data.createContribution.id, - status: 'IN_PROGRESS', - memo: 'Test IN_PROGRESS contribution', - amount: '100', - messagesCount: 0, - }), - expect.objectContaining({ - id: bibiCreatedContribution.id, - status: 'CONFIRMED', - memo: 'Herzlich Willkommen bei Gradido!', - amount: '1000', - messagesCount: 0, - }), - expect.objectContaining({ - id: expect.any(Number), - status: 'CONFIRMED', - memo: 'Whatever contribution', - amount: '166', - messagesCount: 0, - }), - expect.objectContaining({ - id: expect.any(Number), - status: 'DENIED', - memo: 'Whatever contribution', - amount: '166', - messagesCount: 0, - }), - ]), - }) - expect(contributionListObject.contributionList).toHaveLength(7) - }) - - it('returns all contributions for statusFilter = []', async () => { - const { - data: { listAllContributions: contributionListObject }, - } = await query({ - query: listAllContributions, - variables: { - currentPage: 1, - pageSize: 25, - order: 'DESC', - statusFilter: [], - }, - }) - expect(contributionListObject).toMatchObject({ - contributionCount: 7, - contributionList: expect.arrayContaining([ - expect.not.objectContaining({ - status: 'DELETED', - }), - expect.objectContaining({ - amount: '100', - status: 'CONFIRMED', - id: contributionToConfirm.data.createContribution.id, - memo: 'Test contribution to confirm', - messagesCount: 0, - }), - expect.objectContaining({ - id: pendingContribution.data.createContribution.id, - status: 'PENDING', - memo: 'Test PENDING contribution update', - amount: '10', - messagesCount: 0, - }), - expect.objectContaining({ - id: contributionToDeny.data.createContribution.id, - status: 'DENIED', - memo: 'Test contribution to deny', - amount: '100', - messagesCount: 0, - }), - expect.objectContaining({ - id: inProgressContribution.data.createContribution.id, - status: 'IN_PROGRESS', - memo: 'Test IN_PROGRESS contribution', - amount: '100', - messagesCount: 0, - }), - expect.objectContaining({ - id: bibiCreatedContribution.id, - status: 'CONFIRMED', - memo: 'Herzlich Willkommen bei Gradido!', - amount: '1000', - messagesCount: 0, - }), - expect.objectContaining({ - id: expect.any(Number), - status: 'CONFIRMED', - memo: 'Whatever contribution', - amount: '166', - messagesCount: 0, - }), - expect.objectContaining({ - id: expect.any(Number), - status: 'DENIED', - memo: 'Whatever contribution', - amount: '166', - messagesCount: 0, - }), - ]), - }) - expect(contributionListObject.contributionList).toHaveLength(7) - }) - - it('returns all CONFIRMED contributions', async () => { - const { - data: { listAllContributions: contributionListObject }, - } = await query({ - query: listAllContributions, - variables: { - currentPage: 1, - pageSize: 25, - order: 'DESC', - statusFilter: ['CONFIRMED'], - }, - }) - expect(contributionListObject).toMatchObject({ - contributionCount: 3, - contributionList: expect.arrayContaining([ - expect.objectContaining({ - amount: '100', - status: 'CONFIRMED', - id: contributionToConfirm.data.createContribution.id, - memo: 'Test contribution to confirm', - messagesCount: 0, - }), - expect.objectContaining({ - id: bibiCreatedContribution.id, - status: 'CONFIRMED', - memo: 'Herzlich Willkommen bei Gradido!', - amount: '1000', - messagesCount: 0, - }), - expect.objectContaining({ - id: expect.any(Number), - status: 'CONFIRMED', - memo: 'Whatever contribution', - amount: '166', - messagesCount: 0, - }), - expect.not.objectContaining({ - status: 'PENDING', - }), - expect.not.objectContaining({ - status: 'DENIED', - }), - expect.not.objectContaining({ - status: 'DELETED', - }), - expect.not.objectContaining({ - status: 'IN_PROGRESS', - }), - ]), - }) - expect(contributionListObject.contributionList).toHaveLength(3) - }) - - it('returns all PENDING contributions', async () => { - const { - data: { listAllContributions: contributionListObject }, - } = await query({ - query: listAllContributions, - variables: { - currentPage: 1, - pageSize: 25, - order: 'DESC', - statusFilter: ['PENDING'], - }, - }) - expect(contributionListObject).toMatchObject({ - contributionCount: 1, - contributionList: expect.arrayContaining([ - expect.not.objectContaining({ - status: 'CONFIRMED', - }), - expect.not.objectContaining({ - status: 'DENIED', - }), - expect.not.objectContaining({ - status: 'DELETED', - }), - expect.not.objectContaining({ - status: 'IN_PROGRESS', - }), - expect.objectContaining({ - id: pendingContribution.data.createContribution.id, - status: 'PENDING', - memo: 'Test PENDING contribution update', - amount: '10', - messagesCount: 0, - }), - ]), - }) - expect(contributionListObject.contributionList).toHaveLength(1) - }) - - it('returns all IN_PROGRESS Creation', async () => { - const { - data: { listAllContributions: contributionListObject }, - } = await query({ - query: listAllContributions, - variables: { - currentPage: 1, - pageSize: 25, - order: 'DESC', - statusFilter: ['IN_PROGRESS'], - }, - }) - expect(contributionListObject).toMatchObject({ - contributionCount: 1, - contributionList: expect.arrayContaining([ - expect.not.objectContaining({ - status: 'CONFIRMED', - }), - expect.not.objectContaining({ - status: 'PENDING', - }), - expect.not.objectContaining({ - status: 'DENIED', - }), - expect.not.objectContaining({ - status: 'DELETED', - }), - expect.objectContaining({ - id: inProgressContribution.data.createContribution.id, - status: 'IN_PROGRESS', - memo: 'Test IN_PROGRESS contribution', - amount: '100', - messagesCount: 0, - }), - ]), - }) - expect(contributionListObject.contributionList).toHaveLength(1) - }) - - it('returns all DENIED Creation', async () => { - const { - data: { listAllContributions: contributionListObject }, - } = await query({ - query: listAllContributions, - variables: { - currentPage: 1, - pageSize: 25, - order: 'DESC', - statusFilter: ['DENIED'], - }, - }) - expect(contributionListObject).toMatchObject({ - contributionCount: 2, - contributionList: expect.arrayContaining([ - expect.objectContaining({ - id: contributionToDeny.data.createContribution.id, - status: 'DENIED', - memo: 'Test contribution to deny', - amount: '100', - }), - expect.objectContaining({ - id: expect.any(Number), - status: 'DENIED', - memo: 'Whatever contribution', - amount: '166', - messagesCount: 0, - }), - expect.not.objectContaining({ - status: 'CONFIRMED', - }), - expect.not.objectContaining({ - status: 'DELETED', - }), - expect.not.objectContaining({ - status: 'IN_PROGRESS', - }), - expect.not.objectContaining({ - status: 'PENDING', - }), - ]), - }) - expect(contributionListObject.contributionList).toHaveLength(2) - }) - - it('does not return any DELETED Creation', async () => { - const { - data: { listAllContributions: contributionListObject }, - } = await query({ - query: listAllContributions, - variables: { - currentPage: 1, - pageSize: 25, - order: 'DESC', - statusFilter: ['DELETED'], - }, - }) - expect(contributionListObject).toEqual({ - contributionCount: 0, - contributionList: [], - }) - expect(contributionListObject.contributionList).toHaveLength(0) - }) - - it('returns all CONFIRMED and PENDING Creation', async () => { - const { - data: { listAllContributions: contributionListObject }, - } = await query({ - query: listAllContributions, - variables: { - currentPage: 1, - pageSize: 25, - order: 'DESC', - statusFilter: ['CONFIRMED', 'PENDING'], - }, - }) - expect(contributionListObject).toMatchObject({ - contributionCount: 4, - contributionList: expect.arrayContaining([ - expect.objectContaining({ - amount: '100', - status: 'CONFIRMED', - id: contributionToConfirm.data.createContribution.id, - memo: 'Test contribution to confirm', - messagesCount: 0, - }), - expect.objectContaining({ - id: pendingContribution.data.createContribution.id, - status: 'PENDING', - memo: 'Test PENDING contribution update', - amount: '10', - messagesCount: 0, - }), - expect.objectContaining({ - id: bibiCreatedContribution.id, - status: 'CONFIRMED', - memo: 'Herzlich Willkommen bei Gradido!', - amount: '1000', - messagesCount: 0, - }), - expect.objectContaining({ - id: expect.any(Number), - status: 'CONFIRMED', - memo: 'Whatever contribution', - amount: '166', - messagesCount: 0, - }), - expect.not.objectContaining({ - status: 'DENIED', - }), - expect.not.objectContaining({ - status: 'DELETED', - }), - expect.not.objectContaining({ - status: 'IN_PROGRESS', - }), - ]), - }) - expect(contributionListObject.contributionList).toHaveLength(4) - }) }) }) @@ -2167,7 +1671,7 @@ describe('ContributionResolver', () => { contributionId: adminContribution?.id ?? -1, amount: 100.0, memo: 'Test Test Test', - creationDate: new Date().toString(), + contributionDate: new Date().toString(), }, }), ).resolves.toMatchObject({ @@ -2394,7 +1898,7 @@ describe('ContributionResolver', () => { variables: { amount: 100.0, memo: 'Test env contribution', - creationDate: contributionDateFormatter(new Date()), + contributionDate: contributionDateFormatter(new Date()), }, }) }) @@ -2471,7 +1975,7 @@ describe('ContributionResolver', () => { variables: { amount: 100.0, memo: 'Confirmed Contribution', - creationDate: contributionDateFormatter(new Date()), + contributionDate: contributionDateFormatter(new Date()), }, }) await query({ @@ -2531,7 +2035,7 @@ describe('ContributionResolver', () => { email: 'peter@lustig.de', amount: 400, memo: 'Herzlich Willkommen bei Gradido!', - creationDate: contributionDateFormatter( + contributionDate: contributionDateFormatter( new Date(now.getFullYear(), now.getMonth() - 1, 1), ), }) @@ -2565,7 +2069,7 @@ describe('ContributionResolver', () => { email: 'bibi@bloxberg.de', amount: 450, memo: 'Herzlich Willkommen bei Gradido liebe Bibi!', - creationDate: contributionDateFormatter( + contributionDate: contributionDateFormatter( new Date(now.getFullYear(), now.getMonth() - 2, 1), ), }) @@ -2666,7 +2170,7 @@ describe('ContributionResolver', () => { email: 'bibi@bloxberg.de', amount: 50, memo: 'Herzlich Willkommen bei Gradido liebe Bibi!', - creationDate: contributionDateFormatter( + contributionDate: contributionDateFormatter( new Date(now.getFullYear(), now.getMonth() - 2, 1), ), }) @@ -2674,7 +2178,7 @@ describe('ContributionResolver', () => { email: 'bibi@bloxberg.de', amount: 50, memo: 'Herzlich Willkommen bei Gradido liebe Bibi!', - creationDate: contributionDateFormatter( + contributionDate: contributionDateFormatter( new Date(now.getFullYear(), now.getMonth() - 2, 1), ), }) @@ -2765,7 +2269,7 @@ describe('ContributionResolver', () => { variables: { amount: 100.0, memo: '#firefighters', - creationDate: new Date().toString(), + contributionDate: new Date().toString(), }, }) }) @@ -2811,7 +2315,7 @@ describe('ContributionResolver', () => { id: expect.any(Number), memo: '#firefighters', messagesCount: 0, - status: 'PENDING', + contributionStatus: 'PENDING', user: expect.objectContaining({ firstName: 'Peter', lastName: 'Lustig', @@ -2825,7 +2329,7 @@ describe('ContributionResolver', () => { id: expect.any(Number), memo: 'Herzlich Willkommen bei Gradido liebe Bibi!', messagesCount: 0, - status: 'CONFIRMED', + contributionStatus: 'CONFIRMED', user: expect.objectContaining({ firstName: 'Bibi', lastName: 'Bloxberg', @@ -2839,7 +2343,7 @@ describe('ContributionResolver', () => { id: expect.any(Number), memo: 'Herzlich Willkommen bei Gradido liebe Bibi!', messagesCount: 0, - status: 'CONFIRMED', + contributionStatus: 'CONFIRMED', user: expect.objectContaining({ firstName: 'Bibi', lastName: 'Bloxberg', @@ -2853,7 +2357,7 @@ describe('ContributionResolver', () => { id: expect.any(Number), memo: 'Herzlich Willkommen bei Gradido liebe Bibi!', messagesCount: 0, - status: 'CONFIRMED', + contributionStatus: 'CONFIRMED', user: expect.objectContaining({ firstName: 'Bibi', lastName: 'Bloxberg', @@ -2867,7 +2371,7 @@ describe('ContributionResolver', () => { id: expect.any(Number), memo: 'Herzlich Willkommen bei Gradido!', messagesCount: 0, - status: 'PENDING', + contributionStatus: 'PENDING', user: expect.objectContaining({ firstName: 'Peter', lastName: 'Lustig', @@ -2881,7 +2385,7 @@ describe('ContributionResolver', () => { id: expect.any(Number), memo: 'Confirmed Contribution', messagesCount: 0, - status: 'CONFIRMED', + contributionStatus: 'CONFIRMED', user: expect.objectContaining({ firstName: 'Bob', lastName: 'der Baumeister', @@ -2895,7 +2399,7 @@ describe('ContributionResolver', () => { id: expect.any(Number), memo: 'Test env contribution', messagesCount: 0, - status: 'PENDING', + contributionStatus: 'PENDING', user: expect.objectContaining({ firstName: 'Peter', lastName: 'Lustig', @@ -2909,7 +2413,7 @@ describe('ContributionResolver', () => { id: expect.any(Number), memo: 'Aktives Grundeinkommen', messagesCount: 0, - status: 'PENDING', + contributionStatus: 'PENDING', user: expect.objectContaining({ firstName: 'Bibi', lastName: 'Bloxberg', @@ -2923,7 +2427,7 @@ describe('ContributionResolver', () => { id: expect.any(Number), memo: 'Das war leider zu Viel!', messagesCount: 1, - status: 'DELETED', + contributionStatus: 'DELETED', user: expect.objectContaining({ firstName: 'Peter', lastName: 'Lustig', @@ -2937,7 +2441,7 @@ describe('ContributionResolver', () => { id: expect.any(Number), memo: 'Whatever contribution', messagesCount: 0, - status: 'DENIED', + contributionStatus: 'DENIED', user: expect.objectContaining({ firstName: 'Räuber', lastName: 'Hotzenplotz', @@ -2951,7 +2455,7 @@ describe('ContributionResolver', () => { id: expect.any(Number), memo: 'Whatever contribution', messagesCount: 0, - status: 'DELETED', + contributionStatus: 'DELETED', user: expect.objectContaining({ firstName: 'Räuber', lastName: 'Hotzenplotz', @@ -2965,7 +2469,7 @@ describe('ContributionResolver', () => { id: expect.any(Number), memo: 'Whatever contribution', messagesCount: 0, - status: 'CONFIRMED', + contributionStatus: 'CONFIRMED', user: expect.objectContaining({ firstName: 'Räuber', lastName: 'Hotzenplotz', @@ -2979,7 +2483,7 @@ describe('ContributionResolver', () => { id: expect.any(Number), memo: 'Test contribution to delete', messagesCount: 0, - status: 'DELETED', + contributionStatus: 'DELETED', user: expect.objectContaining({ firstName: 'Bibi', lastName: 'Bloxberg', @@ -2993,7 +2497,7 @@ describe('ContributionResolver', () => { id: expect.any(Number), memo: 'Test contribution to deny', messagesCount: 0, - status: 'DENIED', + contributionStatus: 'DENIED', user: expect.objectContaining({ firstName: 'Bibi', lastName: 'Bloxberg', @@ -3007,7 +2511,7 @@ describe('ContributionResolver', () => { id: expect.any(Number), memo: 'Test contribution to confirm', messagesCount: 0, - status: 'CONFIRMED', + contributionStatus: 'CONFIRMED', user: expect.objectContaining({ firstName: 'Bibi', lastName: 'Bloxberg', @@ -3021,7 +2525,7 @@ describe('ContributionResolver', () => { id: expect.any(Number), memo: 'Test IN_PROGRESS contribution', messagesCount: 1, - status: 'IN_PROGRESS', + contributionStatus: 'IN_PROGRESS', user: expect.objectContaining({ firstName: 'Bibi', lastName: 'Bloxberg', @@ -3035,7 +2539,7 @@ describe('ContributionResolver', () => { id: expect.any(Number), memo: 'Test PENDING contribution update', messagesCount: 2, - status: 'PENDING', + contributionStatus: 'PENDING', user: expect.objectContaining({ firstName: 'Bibi', lastName: 'Bloxberg', @@ -3049,7 +2553,7 @@ describe('ContributionResolver', () => { id: expect.any(Number), memo: 'Herzlich Willkommen bei Gradido!', messagesCount: 0, - status: 'CONFIRMED', + contributionStatus: 'CONFIRMED', user: expect.objectContaining({ firstName: 'Bibi', lastName: 'Bloxberg', @@ -3087,7 +2591,7 @@ describe('ContributionResolver', () => { id: expect.any(Number), memo: '#firefighters', messagesCount: 0, - status: 'PENDING', + contributionStatus: 'PENDING', user: expect.objectContaining({ firstName: 'Peter', lastName: 'Lustig', @@ -3101,7 +2605,7 @@ describe('ContributionResolver', () => { id: expect.any(Number), memo: 'Herzlich Willkommen bei Gradido!', messagesCount: 0, - status: 'PENDING', + contributionStatus: 'PENDING', user: expect.objectContaining({ firstName: 'Peter', lastName: 'Lustig', @@ -3111,16 +2615,16 @@ describe('ContributionResolver', () => { }), }), expect.not.objectContaining({ - status: 'DENIED', + contributionStatus: 'DENIED', }), expect.not.objectContaining({ - status: 'DELETED', + contributionStatus: 'DELETED', }), expect.not.objectContaining({ - status: 'CONFIRMED', + contributionStatus: 'CONFIRMED', }), expect.not.objectContaining({ - status: 'IN_PROGRESS', + contributionStatus: 'IN_PROGRESS', }), ]), }) @@ -3148,7 +2652,7 @@ describe('ContributionResolver', () => { id: expect.any(Number), memo: '#firefighters', messagesCount: 0, - status: 'PENDING', + contributionStatus: 'PENDING', user: expect.objectContaining({ firstName: 'Peter', lastName: 'Lustig', @@ -3162,7 +2666,7 @@ describe('ContributionResolver', () => { id: expect.any(Number), memo: 'Herzlich Willkommen bei Gradido!', messagesCount: 0, - status: 'PENDING', + contributionStatus: 'PENDING', user: expect.objectContaining({ firstName: 'Peter', lastName: 'Lustig', @@ -3176,7 +2680,7 @@ describe('ContributionResolver', () => { id: expect.any(Number), memo: 'Test env contribution', messagesCount: 0, - status: 'PENDING', + contributionStatus: 'PENDING', user: expect.objectContaining({ firstName: 'Peter', lastName: 'Lustig', @@ -3190,7 +2694,7 @@ describe('ContributionResolver', () => { id: expect.any(Number), memo: 'Das war leider zu Viel!', messagesCount: 1, - status: 'DELETED', + contributionStatus: 'DELETED', user: expect.objectContaining({ firstName: 'Peter', lastName: 'Lustig', @@ -3225,7 +2729,7 @@ describe('ContributionResolver', () => { id: expect.any(Number), memo: 'Herzlich Willkommen bei Gradido!', messagesCount: 0, - status: 'PENDING', + contributionStatus: 'PENDING', user: expect.objectContaining({ firstName: 'Peter', lastName: 'Lustig', @@ -3239,7 +2743,7 @@ describe('ContributionResolver', () => { id: expect.any(Number), memo: 'Test env contribution', messagesCount: 0, - status: 'PENDING', + contributionStatus: 'PENDING', user: expect.objectContaining({ firstName: 'Peter', lastName: 'Lustig', @@ -3253,7 +2757,7 @@ describe('ContributionResolver', () => { id: expect.any(Number), memo: 'Das war leider zu Viel!', messagesCount: 1, - status: 'DELETED', + contributionStatus: 'DELETED', user: expect.objectContaining({ firstName: 'Peter', lastName: 'Lustig', @@ -3286,7 +2790,7 @@ describe('ContributionResolver', () => { id: expect.any(Number), memo: '#firefighters', messagesCount: 0, - status: 'PENDING', + contributionStatus: 'PENDING', user: expect.objectContaining({ firstName: 'Peter', lastName: 'Lustig', @@ -3339,7 +2843,7 @@ describe('ContributionResolver', () => { id: expect.any(Number), memo: 'Whatever contribution', messagesCount: 0, - status: 'DENIED', + contributionStatus: 'DENIED', user: expect.objectContaining({ firstName: 'Räuber', lastName: 'Hotzenplotz', @@ -3353,7 +2857,7 @@ describe('ContributionResolver', () => { id: expect.any(Number), memo: 'Whatever contribution', messagesCount: 0, - status: 'DELETED', + contributionStatus: 'DELETED', user: expect.objectContaining({ firstName: 'Räuber', lastName: 'Hotzenplotz', @@ -3367,7 +2871,7 @@ describe('ContributionResolver', () => { id: expect.any(Number), memo: 'Whatever contribution', messagesCount: 0, - status: 'CONFIRMED', + contributionStatus: 'CONFIRMED', user: expect.objectContaining({ firstName: 'Räuber', lastName: 'Hotzenplotz', diff --git a/backend/src/graphql/resolver/ContributionResolver.ts b/backend/src/graphql/resolver/ContributionResolver.ts index 8d77f462d..f576877ec 100644 --- a/backend/src/graphql/resolver/ContributionResolver.ts +++ b/backend/src/graphql/resolver/ContributionResolver.ts @@ -145,11 +145,15 @@ export class ContributionResolver { async listContributions( @Ctx() context: Context, @Arg('pagination') pagination: Paginated, - @Arg('messagePagination') messagePagination: Paginated, + @Arg('messagePagination', { nullable: true }) messagePagination?: Paginated, ): Promise { const user = getUser(context) - const [dbContributions, count] = await loadUserContributions(user.id, pagination, messagePagination) - + const [dbContributions, count] = await loadUserContributions( + user.id, + pagination, + messagePagination, + ) + // show contributions in progress first const inProgressContributions = dbContributions.filter( (contribution) => contribution.contributionStatus === ContributionStatus.IN_PROGRESS, @@ -163,10 +167,10 @@ export class ContributionResolver { [...inProgressContributions, ...notInProgressContributions].map((contribution) => { // we currently expect not much contribution messages for needing pagination // but if we get more than expected, we should get warned - if ((contribution.messages?.length || 0) > messagePagination.pageSize) { + if ((contribution.messages?.length || 0) > (messagePagination?.pageSize || 10)) { logger.warn('more contribution messages as expected, consider pagination', { contributionId: contribution.id, - expected: messagePagination.pageSize, + expected: messagePagination?.pageSize || 10, actual: contribution.messages?.length || 0, }) } diff --git a/backend/src/graphql/resolver/TransactionLinkResolver.test.ts b/backend/src/graphql/resolver/TransactionLinkResolver.test.ts index 6f432ce61..05aeef300 100644 --- a/backend/src/graphql/resolver/TransactionLinkResolver.test.ts +++ b/backend/src/graphql/resolver/TransactionLinkResolver.test.ts @@ -467,7 +467,7 @@ describe('TransactionLinkResolver', () => { variables: { amount: new Decimal(1000), memo: 'I was brewing potions for the community the whole month', - creationDate: now.toISOString(), + contributionDate: now.toISOString(), }, }) contribution = result.data.createContribution @@ -510,7 +510,7 @@ describe('TransactionLinkResolver', () => { contributionId: contribution ? contribution.id : -1, amount: new Decimal(800), memo: 'I was brewing potions for the community the whole month', - creationDate: now.toISOString(), + contributionDate: now.toISOString(), }, }) }) diff --git a/backend/src/graphql/resolver/TransactionResolver.test.ts b/backend/src/graphql/resolver/TransactionResolver.test.ts index 9b50c7925..533bd06b7 100644 --- a/backend/src/graphql/resolver/TransactionResolver.test.ts +++ b/backend/src/graphql/resolver/TransactionResolver.test.ts @@ -342,7 +342,7 @@ describe('send coins', () => { // create contribution as user bob const contribution = await mutate({ mutation: createContribution, - variables: { amount: 1000, memo: 'testing', creationDate: new Date().toISOString() }, + variables: { amount: 1000, memo: 'testing', contributionDate: new Date().toISOString() }, }) // login as admin diff --git a/backend/src/graphql/resolver/UserResolver.test.ts b/backend/src/graphql/resolver/UserResolver.test.ts index a9dfc2874..2c2cf5fa0 100644 --- a/backend/src/graphql/resolver/UserResolver.test.ts +++ b/backend/src/graphql/resolver/UserResolver.test.ts @@ -456,7 +456,11 @@ describe('UserResolver', () => { // create contribution as user bob contribution = await mutate({ mutation: createContribution, - variables: { amount: 1000, memo: 'testing', creationDate: new Date().toISOString() }, + variables: { + amount: 1000, + memo: 'testing', + contributionDate: new Date().toISOString(), + }, }) // login as admin diff --git a/backend/src/graphql/resolver/semaphore.test.ts b/backend/src/graphql/resolver/semaphore.test.ts index d12db9eb2..cbe046fd9 100644 --- a/backend/src/graphql/resolver/semaphore.test.ts +++ b/backend/src/graphql/resolver/semaphore.test.ts @@ -72,14 +72,14 @@ describe('semaphore', () => { email: 'bibi@bloxberg.de', amount: 1000, memo: 'Herzlich Willkommen bei Gradido!', - creationDate: nMonthsBefore(new Date()), + contributionDate: nMonthsBefore(new Date()), confirmed: true, }) await creationFactory(testEnv, { email: 'bob@baumeister.de', amount: 1000, memo: 'Herzlich Willkommen bei Gradido!', - creationDate: nMonthsBefore(new Date()), + contributionDate: nMonthsBefore(new Date()), confirmed: true, }) await mutate({ @@ -121,7 +121,7 @@ describe('semaphore', () => { } = await mutate({ mutation: createContribution, variables: { - creationDate: contributionDateFormatter(new Date()), + contributionDate: contributionDateFormatter(new Date()), amount: 200, memo: 'Bobs Contribution', }, @@ -144,7 +144,7 @@ describe('semaphore', () => { } = await mutate({ mutation: createContribution, variables: { - creationDate: contributionDateFormatter(new Date()), + contributionDate: contributionDateFormatter(new Date()), amount: 200, memo: 'Bibis Contribution', }, diff --git a/backend/src/graphql/resolver/util/creations.test.ts b/backend/src/graphql/resolver/util/creations.test.ts index 0d538a75d..5c5524f0b 100644 --- a/backend/src/graphql/resolver/util/creations.test.ts +++ b/backend/src/graphql/resolver/util/creations.test.ts @@ -98,7 +98,7 @@ describe('util/creation', () => { variables: { amount: 400.0, memo: 'Contribution for this month', - creationDate: contributionDateFormatter(now), + contributionDate: contributionDateFormatter(now), }, }) await mutate({ @@ -106,7 +106,7 @@ describe('util/creation', () => { variables: { amount: 500.0, memo: 'Contribution for the last month', - creationDate: contributionDateFormatter( + contributionDate: contributionDateFormatter( new Date(now.getFullYear(), now.getMonth() - 1, 1), ), }, diff --git a/backend/src/graphql/resolver/util/creations.ts b/backend/src/graphql/resolver/util/creations.ts index 719c86b9b..694d3a867 100644 --- a/backend/src/graphql/resolver/util/creations.ts +++ b/backend/src/graphql/resolver/util/creations.ts @@ -73,7 +73,6 @@ export const getUserCreations = async ( await sumAmountContributionPerUserAndLast3MonthQuery.getRawMany() logger.trace(sumAmountContributionPerUserAndLast3Month) - console.log(JSON.stringify(sumAmountContributionPerUserAndLast3Month, null, 2)) await queryRunner.release() diff --git a/backend/src/graphql/resolver/util/loadContributions.ts b/backend/src/graphql/resolver/util/loadContributions.ts index 2cc44bc47..0bf18aece 100644 --- a/backend/src/graphql/resolver/util/loadContributions.ts +++ b/backend/src/graphql/resolver/util/loadContributions.ts @@ -18,10 +18,10 @@ function buildBaseOptions(paginated: Paginated): FindManyOptions export const loadUserContributions = async ( userId: number, paginated: Paginated, - messagePagination: Paginated, + messagePagination?: Paginated, ): Promise<[DbContribution[], number]> => { const { order } = paginated - const { order: messageOrder } = messagePagination + const { order: messageOrder } = messagePagination || { order: 'ASC' } return DbContribution.findAndCount({ where: { userId }, withDeleted: true, @@ -41,7 +41,7 @@ export const loadAllContributions = async ( const { order } = paginated return DbContribution.findAndCount({ relations: { user: { emailContact: true } }, - order: { createdAt: order, id: order}, + order: { createdAt: order, id: order }, ...buildBaseOptions(paginated), }) } diff --git a/backend/src/seeds/creation/CreationInterface.ts b/backend/src/seeds/creation/CreationInterface.ts index 3e0f3cf6c..ee450bd93 100644 --- a/backend/src/seeds/creation/CreationInterface.ts +++ b/backend/src/seeds/creation/CreationInterface.ts @@ -2,7 +2,7 @@ export interface CreationInterface { email: string amount: number memo: string - creationDate: string + contributionDate: string confirmed?: boolean // number of months to move the confirmed creation to the past moveCreationDate?: number diff --git a/backend/src/seeds/creation/index.ts b/backend/src/seeds/creation/index.ts index c22a99b0c..1499f663b 100644 --- a/backend/src/seeds/creation/index.ts +++ b/backend/src/seeds/creation/index.ts @@ -122,7 +122,7 @@ bobsSendings.forEach((sending) => { email: 'bob@baumeister.de', amount: sending.amount, memo: sending.memo, - creationDate: nMonthsBefore(new Date()), + contributionDate: nMonthsBefore(new Date()), confirmed: true, }) }) @@ -132,7 +132,7 @@ export const creations: CreationInterface[] = [ email: 'bibi@bloxberg.de', amount: 1000, memo: 'Herzlich Willkommen bei Gradido!', - creationDate: nMonthsBefore(new Date()), + contributionDate: nMonthsBefore(new Date()), confirmed: true, moveCreationDate: 12, }, @@ -140,7 +140,7 @@ export const creations: CreationInterface[] = [ email: 'bibi@bloxberg.de', amount: 1000, memo: '#Hexen', - creationDate: nMonthsBefore(new Date()), + contributionDate: nMonthsBefore(new Date()), confirmed: true, moveCreationDate: 12, }, @@ -149,7 +149,7 @@ export const creations: CreationInterface[] = [ email: 'raeuber@hotzenplotz.de', amount: 1000, memo: 'Herzlich Willkommen bei Gradido!', - creationDate: nMonthsBefore(new Date()), + contributionDate: nMonthsBefore(new Date()), confirmed: true, }, ] diff --git a/backend/src/seeds/factory/creation.ts b/backend/src/seeds/factory/creation.ts index 4fce38206..478ce0c4a 100644 --- a/backend/src/seeds/factory/creation.ts +++ b/backend/src/seeds/factory/creation.ts @@ -34,7 +34,7 @@ export const creationFactory = async ( if (creation.moveCreationDate) { const transaction = await Transaction.findOneOrFail({ - where: { userId: user.id, creationDate: new Date(creation.creationDate) }, + where: { userId: user.id, creationDate: new Date(creation.contributionDate) }, order: { balanceDate: 'DESC' }, }) diff --git a/backend/src/seeds/graphql/mutations.ts b/backend/src/seeds/graphql/mutations.ts index f41c47e90..ec0a966a8 100644 --- a/backend/src/seeds/graphql/mutations.ts +++ b/backend/src/seeds/graphql/mutations.ts @@ -265,8 +265,8 @@ export const deleteContributionLink = gql` ` export const createContribution = gql` - mutation ($amount: Decimal!, $memo: String!, $creationDate: String!) { - createContribution(amount: $amount, memo: $memo, creationDate: $creationDate) { + mutation ($amount: Decimal!, $memo: String!, $contributionDate: String!) { + createContribution(amount: $amount, memo: $memo, contributionDate: $contributionDate) { id amount memo @@ -276,12 +276,12 @@ export const createContribution = gql` ` export const updateContribution = gql` - mutation ($contributionId: Int!, $amount: Decimal!, $memo: String!, $creationDate: String!) { + mutation ($contributionId: Int!, $amount: Decimal!, $memo: String!, $contributionDate: String!) { updateContribution( contributionId: $contributionId amount: $amount memo: $memo - creationDate: $creationDate + contributionDate: $contributionDate ) { id amount diff --git a/backend/src/seeds/graphql/queries.ts b/backend/src/seeds/graphql/queries.ts index e242a6083..5a8e06cc0 100644 --- a/backend/src/seeds/graphql/queries.ts +++ b/backend/src/seeds/graphql/queries.ts @@ -244,52 +244,47 @@ export const queryTransactionLink = gql` ` export const listContributions = gql` - query ( - $currentPage: Int = 1 - $pageSize: Int = 5 - $order: Order - $statusFilter: [ContributionStatus!] - ) { - listContributions( - currentPage: $currentPage - pageSize: $pageSize - order: $order - statusFilter: $statusFilter - ) { + query ($pagination: Paginated!) { + listContributions(pagination: $pagination) { contributionCount contributionList { id amount memo - createdAt contributionDate + contributionStatus + messagesCount + createdAt confirmedAt confirmedBy - deletedAt - status - messagesCount deniedAt deniedBy + updatedBy + updatedAt + deletedAt + moderatorId } } } ` export const listAllContributions = ` -query ($currentPage: Int = 1, $pageSize: Int = 5, $order: Order = DESC, $statusFilter: [ContributionStatus!]) { - listAllContributions(currentPage: $currentPage, pageSize: $pageSize, order: $order, statusFilter: $statusFilter) { +query ($pagination: Paginated!) { + listAllContributions(pagination: $pagination) { contributionCount contributionList { id - firstName - lastName + user { + firstName + lastName + } amount memo createdAt confirmedAt confirmedBy contributionDate - status + contributionStatus messagesCount deniedAt deniedBy @@ -318,7 +313,7 @@ export const adminListContributions = gql` confirmedAt confirmedBy contributionDate - status + contributionStatus messagesCount deniedAt deniedBy