add contribution status enum and set it

This commit is contained in:
Moriz Wahl 2022-08-15 19:02:06 +02:00
parent daa8d48ca6
commit c417bc7a10
4 changed files with 25 additions and 0 deletions

View File

@ -0,0 +1,14 @@
import { registerEnumType } from 'type-graphql'
export enum ContributionStatus {
PENDING = 'PENDING',
DELETED = 'DELETED',
IN_PROGRESS = 'IN_PROGRESS',
DENIED = 'DENIED',
CONFIRMED = 'CONFIRMED',
}
registerEnumType(ContributionStatus, {
name: 'ContributionStatus',
description: 'Name of the Type of the Contribution Status',
})

View File

@ -37,6 +37,7 @@ import { User as dbUser } from '@entity/User'
import { User } from '@model/User' import { User } from '@model/User'
import { TransactionTypeId } from '@enum/TransactionTypeId' import { TransactionTypeId } from '@enum/TransactionTypeId'
import { ContributionType } from '@enum/ContributionType' import { ContributionType } from '@enum/ContributionType'
import { ContributionStatus } from '@enum/ContributionStatus'
import Decimal from 'decimal.js-light' import Decimal from 'decimal.js-light'
import { Decay } from '@model/Decay' import { Decay } from '@model/Decay'
import Paginated from '@arg/Paginated' import Paginated from '@arg/Paginated'
@ -262,6 +263,7 @@ export class AdminResolver {
contribution.memo = memo contribution.memo = memo
contribution.moderatorId = moderator.id contribution.moderatorId = moderator.id
contribution.contributionType = ContributionType.ADMIN contribution.contributionType = ContributionType.ADMIN
contribution.contributionStatus = ContributionStatus.PENDING
logger.trace('contribution to save', contribution) logger.trace('contribution to save', contribution)
await Contribution.save(contribution) await Contribution.save(contribution)
@ -339,6 +341,7 @@ export class AdminResolver {
contributionToUpdate.memo = memo contributionToUpdate.memo = memo
contributionToUpdate.contributionDate = new Date(creationDate) contributionToUpdate.contributionDate = new Date(creationDate)
contributionToUpdate.moderatorId = moderator.id contributionToUpdate.moderatorId = moderator.id
contributionToUpdate.contributionStatus = ContributionStatus.PENDING
await Contribution.save(contributionToUpdate) await Contribution.save(contributionToUpdate)
const result = new AdminUpdateContribution() const result = new AdminUpdateContribution()
@ -389,6 +392,7 @@ export class AdminResolver {
if (!contribution) { if (!contribution) {
throw new Error('Contribution not found for given id.') throw new Error('Contribution not found for given id.')
} }
contribution.contributionStatus = ContributionStatus.DELETED
const res = await contribution.softRemove() const res = await contribution.softRemove()
return !!res return !!res
} }
@ -456,6 +460,7 @@ export class AdminResolver {
contribution.confirmedAt = receivedCallDate contribution.confirmedAt = receivedCallDate
contribution.confirmedBy = moderatorUser.id contribution.confirmedBy = moderatorUser.id
contribution.transactionId = transaction.id contribution.transactionId = transaction.id
contribution.contributionStatus = ContributionStatus.CONFIRMED
await queryRunner.manager.update(Contribution, { id: contribution.id }, contribution) await queryRunner.manager.update(Contribution, { id: contribution.id }, contribution)
await queryRunner.commitTransaction() await queryRunner.commitTransaction()

View File

@ -8,6 +8,7 @@ import ContributionArgs from '@arg/ContributionArgs'
import Paginated from '@arg/Paginated' import Paginated from '@arg/Paginated'
import { Order } from '@enum/Order' import { Order } from '@enum/Order'
import { ContributionType } from '@enum/ContributionType' import { ContributionType } from '@enum/ContributionType'
import { ContributionStatus } from '@enum/ContributionStatus'
import { Contribution, ContributionListResult } from '@model/Contribution' import { Contribution, ContributionListResult } from '@model/Contribution'
import { UnconfirmedContribution } from '@model/UnconfirmedContribution' import { UnconfirmedContribution } from '@model/UnconfirmedContribution'
import { User } from '@model/User' import { User } from '@model/User'
@ -45,6 +46,7 @@ export class ContributionResolver {
contribution.contributionDate = creationDateObj contribution.contributionDate = creationDateObj
contribution.memo = memo contribution.memo = memo
contribution.contributionType = ContributionType.USER contribution.contributionType = ContributionType.USER
contribution.contributionStatus = ContributionStatus.PENDING
logger.trace('contribution to save', contribution) logger.trace('contribution to save', contribution)
await dbContribution.save(contribution) await dbContribution.save(contribution)
@ -68,6 +70,7 @@ export class ContributionResolver {
if (contribution.confirmedAt) { if (contribution.confirmedAt) {
throw new Error('A confirmed contribution can not be deleted') throw new Error('A confirmed contribution can not be deleted')
} }
contribution.contributionStatus = ContributionStatus.DELETED
const res = await contribution.softRemove() const res = await contribution.softRemove()
return !!res return !!res
} }
@ -166,6 +169,7 @@ export class ContributionResolver {
contributionToUpdate.amount = amount contributionToUpdate.amount = amount
contributionToUpdate.memo = memo contributionToUpdate.memo = memo
contributionToUpdate.contributionDate = new Date(creationDate) contributionToUpdate.contributionDate = new Date(creationDate)
contributionToUpdate.contributionStatus = ContributionStatus.PENDING
dbContribution.save(contributionToUpdate) dbContribution.save(contributionToUpdate)
return new UnconfirmedContribution(contributionToUpdate, user, creations) return new UnconfirmedContribution(contributionToUpdate, user, creations)

View File

@ -27,6 +27,7 @@ import { calculateDecay } from '@/util/decay'
import { executeTransaction } from './TransactionResolver' import { executeTransaction } from './TransactionResolver'
import { Order } from '@enum/Order' import { Order } from '@enum/Order'
import { ContributionType } from '@enum/ContributionType' import { ContributionType } from '@enum/ContributionType'
import { ContributionStatus } from '@enum/ContributionStatus'
import { Contribution as DbContribution } from '@entity/Contribution' import { Contribution as DbContribution } from '@entity/Contribution'
import { ContributionLink as DbContributionLink } from '@entity/ContributionLink' import { ContributionLink as DbContributionLink } from '@entity/ContributionLink'
import { getUserCreation, validateContribution } from './util/creations' import { getUserCreation, validateContribution } from './util/creations'
@ -233,6 +234,7 @@ export class TransactionLinkResolver {
contribution.amount = contributionLink.amount contribution.amount = contributionLink.amount
contribution.contributionLinkId = contributionLink.id contribution.contributionLinkId = contributionLink.id
contribution.contributionType = ContributionType.LINK contribution.contributionType = ContributionType.LINK
contribution.contributionStatus = ContributionStatus.CONFIRMED
await queryRunner.manager.insert(DbContribution, contribution) await queryRunner.manager.insert(DbContribution, contribution)