mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
Merge pull request #2662 from gradido/logger_contributionLinkResolver
refactor(backend): use LogError on contributionLinkResolver
This commit is contained in:
commit
36e8e2c38d
@ -246,6 +246,7 @@ describe('Contribution Links', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
it('returns an error if missing startDate', async () => {
|
it('returns an error if missing startDate', async () => {
|
||||||
|
jest.clearAllMocks()
|
||||||
await expect(
|
await expect(
|
||||||
mutate({
|
mutate({
|
||||||
mutation: createContributionLink,
|
mutation: createContributionLink,
|
||||||
@ -270,6 +271,7 @@ describe('Contribution Links', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
it('returns an error if missing endDate', async () => {
|
it('returns an error if missing endDate', async () => {
|
||||||
|
jest.clearAllMocks()
|
||||||
await expect(
|
await expect(
|
||||||
mutate({
|
mutate({
|
||||||
mutation: createContributionLink,
|
mutation: createContributionLink,
|
||||||
@ -292,6 +294,7 @@ describe('Contribution Links', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
it('returns an error if endDate is before startDate', async () => {
|
it('returns an error if endDate is before startDate', async () => {
|
||||||
|
jest.clearAllMocks()
|
||||||
await expect(
|
await expect(
|
||||||
mutate({
|
mutate({
|
||||||
mutation: createContributionLink,
|
mutation: createContributionLink,
|
||||||
@ -316,27 +319,8 @@ describe('Contribution Links', () => {
|
|||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
it('returns an error if name is an empty string', async () => {
|
|
||||||
await expect(
|
|
||||||
mutate({
|
|
||||||
mutation: createContributionLink,
|
|
||||||
variables: {
|
|
||||||
...variables,
|
|
||||||
name: '',
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
).resolves.toEqual(
|
|
||||||
expect.objectContaining({
|
|
||||||
errors: [new GraphQLError('The name must be initialized!')],
|
|
||||||
}),
|
|
||||||
)
|
|
||||||
})
|
|
||||||
|
|
||||||
it('logs the error thrown', () => {
|
|
||||||
expect(logger.error).toBeCalledWith('The name must be initialized!')
|
|
||||||
})
|
|
||||||
|
|
||||||
it('returns an error if name is shorter than 5 characters', async () => {
|
it('returns an error if name is shorter than 5 characters', async () => {
|
||||||
|
jest.clearAllMocks()
|
||||||
await expect(
|
await expect(
|
||||||
mutate({
|
mutate({
|
||||||
mutation: createContributionLink,
|
mutation: createContributionLink,
|
||||||
@ -347,22 +331,17 @@ describe('Contribution Links', () => {
|
|||||||
}),
|
}),
|
||||||
).resolves.toEqual(
|
).resolves.toEqual(
|
||||||
expect.objectContaining({
|
expect.objectContaining({
|
||||||
errors: [
|
errors: [new GraphQLError('The value of name is too short')],
|
||||||
new GraphQLError(
|
|
||||||
`The value of 'name' with a length of 3 did not fulfill the requested bounderies min=5 and max=100`,
|
|
||||||
),
|
|
||||||
],
|
|
||||||
}),
|
}),
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
it('logs the error thrown', () => {
|
it('logs the error thrown', () => {
|
||||||
expect(logger.error).toBeCalledWith(
|
expect(logger.error).toBeCalledWith('The value of name is too short', 3)
|
||||||
`The value of 'name' with a length of 3 did not fulfill the requested bounderies min=5 and max=100`,
|
|
||||||
)
|
|
||||||
})
|
})
|
||||||
|
|
||||||
it('returns an error if name is longer than 100 characters', async () => {
|
it('returns an error if name is longer than 100 characters', async () => {
|
||||||
|
jest.clearAllMocks()
|
||||||
await expect(
|
await expect(
|
||||||
mutate({
|
mutate({
|
||||||
mutation: createContributionLink,
|
mutation: createContributionLink,
|
||||||
@ -373,42 +352,17 @@ describe('Contribution Links', () => {
|
|||||||
}),
|
}),
|
||||||
).resolves.toEqual(
|
).resolves.toEqual(
|
||||||
expect.objectContaining({
|
expect.objectContaining({
|
||||||
errors: [
|
errors: [new GraphQLError('The value of name is too long')],
|
||||||
new GraphQLError(
|
|
||||||
`The value of 'name' with a length of 101 did not fulfill the requested bounderies min=5 and max=100`,
|
|
||||||
),
|
|
||||||
],
|
|
||||||
}),
|
}),
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
it('logs the error thrown', () => {
|
it('logs the error thrown', () => {
|
||||||
expect(logger.error).toBeCalledWith(
|
expect(logger.error).toBeCalledWith('The value of name is too long', 101)
|
||||||
`The value of 'name' with a length of 101 did not fulfill the requested bounderies min=5 and max=100`,
|
|
||||||
)
|
|
||||||
})
|
|
||||||
|
|
||||||
it('returns an error if memo is an empty string', async () => {
|
|
||||||
await expect(
|
|
||||||
mutate({
|
|
||||||
mutation: createContributionLink,
|
|
||||||
variables: {
|
|
||||||
...variables,
|
|
||||||
memo: '',
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
).resolves.toEqual(
|
|
||||||
expect.objectContaining({
|
|
||||||
errors: [new GraphQLError('The memo must be initialized!')],
|
|
||||||
}),
|
|
||||||
)
|
|
||||||
})
|
|
||||||
|
|
||||||
it('logs the error thrown', () => {
|
|
||||||
expect(logger.error).toBeCalledWith('The memo must be initialized!')
|
|
||||||
})
|
})
|
||||||
|
|
||||||
it('returns an error if memo is shorter than 5 characters', async () => {
|
it('returns an error if memo is shorter than 5 characters', async () => {
|
||||||
|
jest.clearAllMocks()
|
||||||
await expect(
|
await expect(
|
||||||
mutate({
|
mutate({
|
||||||
mutation: createContributionLink,
|
mutation: createContributionLink,
|
||||||
@ -419,22 +373,17 @@ describe('Contribution Links', () => {
|
|||||||
}),
|
}),
|
||||||
).resolves.toEqual(
|
).resolves.toEqual(
|
||||||
expect.objectContaining({
|
expect.objectContaining({
|
||||||
errors: [
|
errors: [new GraphQLError('The value of memo is too short')],
|
||||||
new GraphQLError(
|
|
||||||
`The value of 'memo' with a length of 3 did not fulfill the requested bounderies min=5 and max=255`,
|
|
||||||
),
|
|
||||||
],
|
|
||||||
}),
|
}),
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
it('logs the error thrown', () => {
|
it('logs the error thrown', () => {
|
||||||
expect(logger.error).toBeCalledWith(
|
expect(logger.error).toBeCalledWith('The value of memo is too short', 3)
|
||||||
`The value of 'memo' with a length of 3 did not fulfill the requested bounderies min=5 and max=255`,
|
|
||||||
)
|
|
||||||
})
|
})
|
||||||
|
|
||||||
it('returns an error if memo is longer than 255 characters', async () => {
|
it('returns an error if memo is longer than 255 characters', async () => {
|
||||||
|
jest.clearAllMocks()
|
||||||
await expect(
|
await expect(
|
||||||
mutate({
|
mutate({
|
||||||
mutation: createContributionLink,
|
mutation: createContributionLink,
|
||||||
@ -445,22 +394,17 @@ describe('Contribution Links', () => {
|
|||||||
}),
|
}),
|
||||||
).resolves.toEqual(
|
).resolves.toEqual(
|
||||||
expect.objectContaining({
|
expect.objectContaining({
|
||||||
errors: [
|
errors: [new GraphQLError('The value of memo is too long')],
|
||||||
new GraphQLError(
|
|
||||||
`The value of 'memo' with a length of 256 did not fulfill the requested bounderies min=5 and max=255`,
|
|
||||||
),
|
|
||||||
],
|
|
||||||
}),
|
}),
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
it('logs the error thrown', () => {
|
it('logs the error thrown', () => {
|
||||||
expect(logger.error).toBeCalledWith(
|
expect(logger.error).toBeCalledWith('The value of memo is too long', 256)
|
||||||
`The value of 'memo' with a length of 256 did not fulfill the requested bounderies min=5 and max=255`,
|
|
||||||
)
|
|
||||||
})
|
})
|
||||||
|
|
||||||
it('returns an error if amount is not positive', async () => {
|
it('returns an error if amount is not positive', async () => {
|
||||||
|
jest.clearAllMocks()
|
||||||
await expect(
|
await expect(
|
||||||
mutate({
|
mutate({
|
||||||
mutation: createContributionLink,
|
mutation: createContributionLink,
|
||||||
@ -471,15 +415,13 @@ describe('Contribution Links', () => {
|
|||||||
}),
|
}),
|
||||||
).resolves.toEqual(
|
).resolves.toEqual(
|
||||||
expect.objectContaining({
|
expect.objectContaining({
|
||||||
errors: [new GraphQLError('The amount=0 must be initialized with a positiv value!')],
|
errors: [new GraphQLError('The amount must be a positiv value')],
|
||||||
}),
|
}),
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
it('logs the error thrown', () => {
|
it('logs the error thrown', () => {
|
||||||
expect(logger.error).toBeCalledWith(
|
expect(logger.error).toBeCalledWith('The amount must be a positiv value', new Decimal(0))
|
||||||
'The amount=0 must be initialized with a positiv value!',
|
|
||||||
)
|
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -530,14 +472,14 @@ describe('Contribution Links', () => {
|
|||||||
}),
|
}),
|
||||||
).resolves.toEqual(
|
).resolves.toEqual(
|
||||||
expect.objectContaining({
|
expect.objectContaining({
|
||||||
errors: [new GraphQLError('Contribution Link not found to given id.')],
|
errors: [new GraphQLError('Contribution Link not found')],
|
||||||
}),
|
}),
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
it('logs the error thrown', () => {
|
it('logs the error thrown', () => {
|
||||||
expect(logger.error).toBeCalledWith('Contribution Link not found to given id: -1')
|
expect(logger.error).toBeCalledWith('Contribution Link not found', -1)
|
||||||
})
|
})
|
||||||
|
|
||||||
describe('valid id', () => {
|
describe('valid id', () => {
|
||||||
@ -601,13 +543,13 @@ describe('Contribution Links', () => {
|
|||||||
mutate({ mutation: deleteContributionLink, variables: { id: -1 } }),
|
mutate({ mutation: deleteContributionLink, variables: { id: -1 } }),
|
||||||
).resolves.toEqual(
|
).resolves.toEqual(
|
||||||
expect.objectContaining({
|
expect.objectContaining({
|
||||||
errors: [new GraphQLError('Contribution Link not found to given id.')],
|
errors: [new GraphQLError('Contribution Link not found')],
|
||||||
}),
|
}),
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
it('logs the error thrown', () => {
|
it('logs the error thrown', () => {
|
||||||
expect(logger.error).toBeCalledWith('Contribution Link not found to given id: -1')
|
expect(logger.error).toBeCalledWith('Contribution Link not found', -1)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@ -20,6 +20,7 @@ import Paginated from '@arg/Paginated'
|
|||||||
|
|
||||||
// TODO: this is a strange construct
|
// TODO: this is a strange construct
|
||||||
import { transactionLinkCode as contributionLinkCode } from './TransactionLinkResolver'
|
import { transactionLinkCode as contributionLinkCode } from './TransactionLinkResolver'
|
||||||
|
import LogError from '@/server/LogError'
|
||||||
|
|
||||||
@Resolver()
|
@Resolver()
|
||||||
export class ContributionLinkResolver {
|
export class ContributionLinkResolver {
|
||||||
@ -39,35 +40,22 @@ export class ContributionLinkResolver {
|
|||||||
}: ContributionLinkArgs,
|
}: ContributionLinkArgs,
|
||||||
): Promise<ContributionLink> {
|
): Promise<ContributionLink> {
|
||||||
isStartEndDateValid(validFrom, validTo)
|
isStartEndDateValid(validFrom, validTo)
|
||||||
if (!name) {
|
if (name.length < CONTRIBUTIONLINK_NAME_MIN_CHARS) {
|
||||||
logger.error(`The name must be initialized!`)
|
throw new LogError('The value of name is too short', name.length)
|
||||||
throw new Error(`The name must be initialized!`)
|
|
||||||
}
|
}
|
||||||
if (
|
if (name.length > CONTRIBUTIONLINK_NAME_MAX_CHARS) {
|
||||||
name.length < CONTRIBUTIONLINK_NAME_MIN_CHARS ||
|
throw new LogError('The value of name is too long', name.length)
|
||||||
name.length > CONTRIBUTIONLINK_NAME_MAX_CHARS
|
|
||||||
) {
|
|
||||||
const msg = `The value of 'name' with a length of ${name.length} did not fulfill the requested bounderies min=${CONTRIBUTIONLINK_NAME_MIN_CHARS} and max=${CONTRIBUTIONLINK_NAME_MAX_CHARS}`
|
|
||||||
logger.error(`${msg}`)
|
|
||||||
throw new Error(`${msg}`)
|
|
||||||
}
|
}
|
||||||
if (!memo) {
|
if (memo.length < MEMO_MIN_CHARS) {
|
||||||
logger.error(`The memo must be initialized!`)
|
throw new LogError('The value of memo is too short', memo.length)
|
||||||
throw new Error(`The memo must be initialized!`)
|
|
||||||
}
|
}
|
||||||
if (memo.length < MEMO_MIN_CHARS || memo.length > MEMO_MAX_CHARS) {
|
if (memo.length > MEMO_MAX_CHARS) {
|
||||||
const msg = `The value of 'memo' with a length of ${memo.length} did not fulfill the requested bounderies min=${MEMO_MIN_CHARS} and max=${MEMO_MAX_CHARS}`
|
throw new LogError('The value of memo is too long', memo.length)
|
||||||
logger.error(`${msg}`)
|
|
||||||
throw new Error(`${msg}`)
|
|
||||||
}
|
|
||||||
if (!amount) {
|
|
||||||
logger.error(`The amount must be initialized!`)
|
|
||||||
throw new Error('The amount must be initialized!')
|
|
||||||
}
|
}
|
||||||
if (!new Decimal(amount).isPositive()) {
|
if (!new Decimal(amount).isPositive()) {
|
||||||
logger.error(`The amount=${amount} must be initialized with a positiv value!`)
|
throw new LogError('The amount must be a positiv value', amount)
|
||||||
throw new Error(`The amount=${amount} must be initialized with a positiv value!`)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const dbContributionLink = new DbContributionLink()
|
const dbContributionLink = new DbContributionLink()
|
||||||
dbContributionLink.amount = amount
|
dbContributionLink.amount = amount
|
||||||
dbContributionLink.name = name
|
dbContributionLink.name = name
|
||||||
@ -107,8 +95,7 @@ export class ContributionLinkResolver {
|
|||||||
async deleteContributionLink(@Arg('id', () => Int) id: number): Promise<Date | null> {
|
async deleteContributionLink(@Arg('id', () => Int) id: number): Promise<Date | null> {
|
||||||
const contributionLink = await DbContributionLink.findOne(id)
|
const contributionLink = await DbContributionLink.findOne(id)
|
||||||
if (!contributionLink) {
|
if (!contributionLink) {
|
||||||
logger.error(`Contribution Link not found to given id: ${id}`)
|
throw new LogError('Contribution Link not found', id)
|
||||||
throw new Error('Contribution Link not found to given id.')
|
|
||||||
}
|
}
|
||||||
await contributionLink.softRemove()
|
await contributionLink.softRemove()
|
||||||
logger.debug(`deleteContributionLink successful!`)
|
logger.debug(`deleteContributionLink successful!`)
|
||||||
@ -134,8 +121,7 @@ export class ContributionLinkResolver {
|
|||||||
): Promise<ContributionLink> {
|
): Promise<ContributionLink> {
|
||||||
const dbContributionLink = await DbContributionLink.findOne(id)
|
const dbContributionLink = await DbContributionLink.findOne(id)
|
||||||
if (!dbContributionLink) {
|
if (!dbContributionLink) {
|
||||||
logger.error(`Contribution Link not found to given id: ${id}`)
|
throw new LogError('Contribution Link not found', id)
|
||||||
throw new Error('Contribution Link not found to given id.')
|
|
||||||
}
|
}
|
||||||
dbContributionLink.amount = amount
|
dbContributionLink.amount = amount
|
||||||
dbContributionLink.name = name
|
dbContributionLink.name = name
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user