From 1e0b246252b426db52d4ff19c7b0a7e5ee9b26d1 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Tue, 14 Jun 2022 09:44:37 +0200 Subject: [PATCH] simple createContributionLink mutation --- .../src/graphql/arg/ContributionLinkArgs.ts | 2 +- backend/src/graphql/model/ContributionLink.ts | 2 +- backend/src/graphql/resolver/AdminResolver.ts | 27 ++++++++++++++++--- 3 files changed, 26 insertions(+), 5 deletions(-) diff --git a/backend/src/graphql/arg/ContributionLinkArgs.ts b/backend/src/graphql/arg/ContributionLinkArgs.ts index f3d3f91df..809ce89c4 100644 --- a/backend/src/graphql/arg/ContributionLinkArgs.ts +++ b/backend/src/graphql/arg/ContributionLinkArgs.ts @@ -24,6 +24,6 @@ export default class ContributionLinkArgs { @Field(() => Decimal, { nullable: true }) maxAmountPerMonth: Decimal | null - @Field(() => Int, { default: 1 }) + @Field(() => Int) maxPerCycle: number } diff --git a/backend/src/graphql/model/ContributionLink.ts b/backend/src/graphql/model/ContributionLink.ts index df28bb0e5..9fb60e4aa 100644 --- a/backend/src/graphql/model/ContributionLink.ts +++ b/backend/src/graphql/model/ContributionLink.ts @@ -48,7 +48,7 @@ export class ContributionLink { @Field(() => Decimal, { nullable: true }) maxAmountPerMonth: Decimal | null - @Field(() => string) + @Field(() => String) cycle: string @Field(() => Int) diff --git a/backend/src/graphql/resolver/AdminResolver.ts b/backend/src/graphql/resolver/AdminResolver.ts index d9945a617..d99bf6c6f 100644 --- a/backend/src/graphql/resolver/AdminResolver.ts +++ b/backend/src/graphql/resolver/AdminResolver.ts @@ -468,9 +468,30 @@ export class AdminResolver { @Mutation(() => ContributionLink) async createContributionLink( @Args() - { amount, name, memo, cycle, validFrom, validTo, maxAmountPerMonth, maxPerCycle }: ContributionLinkArgs, - ) - + { + amount, + name, + memo, + cycle, + validFrom, + validTo, + maxAmountPerMonth, + maxPerCycle, + }: ContributionLinkArgs, + ): Promise { + const dbContributionLink = new DbContributionLink() + dbContributionLink.amount = amount + dbContributionLink.name = name + dbContributionLink.memo = memo + dbContributionLink.createdAt = new Date() + dbContributionLink.cycle = cycle + if (validFrom) dbContributionLink.validFrom = validFrom + if (validTo) dbContributionLink.validTo = validTo + dbContributionLink.maxAmountPerMonth = maxAmountPerMonth + dbContributionLink.maxPerCycle = maxPerCycle + dbContributionLink.save() + return new ContributionLink(dbContributionLink) + } } interface CreationMap {