From 77e266e389438d325964d4d5d571ee37c1f04dd0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Thu, 9 Jun 2022 01:48:07 +0200 Subject: [PATCH] input and output types for creatingContributionLink --- .../graphql/arg/CreateContributionLinkArgs.ts | 2 +- backend/src/graphql/model/ContributionLink.ts | 78 +++++++++++++++++++ 2 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 backend/src/graphql/model/ContributionLink.ts diff --git a/backend/src/graphql/arg/CreateContributionLinkArgs.ts b/backend/src/graphql/arg/CreateContributionLinkArgs.ts index 2e3da86b3..3beda53e0 100644 --- a/backend/src/graphql/arg/CreateContributionLinkArgs.ts +++ b/backend/src/graphql/arg/CreateContributionLinkArgs.ts @@ -1,4 +1,4 @@ -import { ArgsType, Field, InputType } from 'type-graphql' +import { ArgsType, Field, Int, InputType } from 'type-graphql' import Decimal from 'decimal.js-light' @InputType() diff --git a/backend/src/graphql/model/ContributionLink.ts b/backend/src/graphql/model/ContributionLink.ts new file mode 100644 index 000000000..dd4b65aee --- /dev/null +++ b/backend/src/graphql/model/ContributionLink.ts @@ -0,0 +1,78 @@ +import { ObjectType, Field, Int } from 'type-graphql' +import Decimal from 'decimal.js-light' +import { ContributionLinks as dbContributionLinks } from '@entity/ContributionLinks' +import CONFIG from '@/config' + +@ObjectType() +export class ContributionLink { + constructor(contributionLink: dbContributionLinks) { + this.amount = contributionLink.amount + this.code = contributionLink.code + this.createdAt = contributionLink.createdAt + this.cycle = contributionLink.cycle + this.deletedAt = contributionLink.deletedAt + this.endDate = contributionLink.validTo + this.id = contributionLink.id + this.linkEnabled = contributionLink.linkEnabled + this.link = CONFIG.COMMUNITY_CONTRIBUTION_URL.replace(/{code}/g, contributionLink.code) + this.maxAccountBalance = contributionLink.maxAccountBalance + this.maxAmountPerMonth = contributionLink.maxAmountPerMonth + this.memo = contributionLink.memo + this.minGapHours = contributionLink.minGapHours + this.name = contributionLink.name + this.repetition = contributionLink.maxPerCycle + this.startDate = contributionLink.validFrom + this.totalMaxCountOfContribution = contributionLink.totalMaxCountOfContribution + } + + @Field(() => Decimal) + amount: Decimal + + @Field(() => String) + code: string + + @Field(() => Date, { nullable: true }) + createdAt: Date | null + + @Field(() => String) + cycle: string + + @Field(() => Date, { nullable: true }) + deletedAt: Date | null + + @Field(() => Date, { nullable: true }) + endDate: Date | null + + @Field(() => Int) + id?: number + + @Field(() => Boolean, { nullable: true }) + linkEnabled: boolean | null + + @Field(() => String) + link: string + + @Field(() => Decimal) + maxAccountBalance: Decimal + + @Field(() => Decimal) + maxAmountPerMonth: Decimal + + @Field(() => String) + memo: string + + @Field(() => Int, { nullable: true }) + minGapHours: number | null + + @Field(() => String) + name: string + + @Field(() => Int) + repetition: number + + @Field(() => Date, { nullable: true }) + startDate: Date | null + + @Field(() => Int, { nullable: true }) + totalMaxCountOfContribution: number | null +}