mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
Changed the Contribution.find so that we can throw a specific error, added an GraphQL Model as return value instead of DbEntity.
This commit is contained in:
parent
1c433e2d57
commit
2c459a8fae
@ -62,9 +62,10 @@ import {
|
|||||||
MEMO_MAX_CHARS,
|
MEMO_MAX_CHARS,
|
||||||
MEMO_MIN_CHARS,
|
MEMO_MIN_CHARS,
|
||||||
} from './const/const'
|
} from './const/const'
|
||||||
import { ContributionMessage } from '@entity/ContributionMessage'
|
import { ContributionMessage as DbContributionMessage } from '@entity/ContributionMessage'
|
||||||
import ContributionMessageArgs from '@arg/ContributionMessageArgs'
|
import ContributionMessageArgs from '@arg/ContributionMessageArgs'
|
||||||
import { ContributionMessageType } from '@enum/MessageType'
|
import { ContributionMessageType } from '@enum/MessageType'
|
||||||
|
import { ContributionMessage } from '@model/ContributionMessage'
|
||||||
|
|
||||||
// const EMAIL_OPT_IN_REGISTER = 1
|
// const EMAIL_OPT_IN_REGISTER = 1
|
||||||
// const EMAIL_OPT_UNKNOWN = 3 // elopage?
|
// const EMAIL_OPT_UNKNOWN = 3 // elopage?
|
||||||
@ -710,16 +711,18 @@ export class AdminResolver {
|
|||||||
const queryRunner = getConnection().createQueryRunner()
|
const queryRunner = getConnection().createQueryRunner()
|
||||||
await queryRunner.connect()
|
await queryRunner.connect()
|
||||||
await queryRunner.startTransaction('READ UNCOMMITTED')
|
await queryRunner.startTransaction('READ UNCOMMITTED')
|
||||||
const contributionMessage = new ContributionMessage()
|
const contributionMessage = DbContributionMessage.create()
|
||||||
try {
|
try {
|
||||||
const contribution = await Contribution.findOneOrFail({ id: contributionId })
|
const contribution = await Contribution.findOne({ id: contributionId })
|
||||||
|
if (!contribution) {
|
||||||
|
throw new Error('Contribution not found')
|
||||||
|
}
|
||||||
contributionMessage.contributionId = contributionId
|
contributionMessage.contributionId = contributionId
|
||||||
contributionMessage.createdAt = new Date()
|
contributionMessage.createdAt = new Date()
|
||||||
contributionMessage.message = message
|
contributionMessage.message = message
|
||||||
contributionMessage.userId = user.id
|
contributionMessage.userId = user.id
|
||||||
contributionMessage.type = ContributionMessageType.DIALOG
|
contributionMessage.type = ContributionMessageType.DIALOG
|
||||||
await queryRunner.manager.insert(ContributionMessage, contributionMessage)
|
await queryRunner.manager.insert(DbContributionMessage, contributionMessage)
|
||||||
|
|
||||||
if (
|
if (
|
||||||
contribution.contributionStatus === ContributionStatus.DELETED ||
|
contribution.contributionStatus === ContributionStatus.DELETED ||
|
||||||
@ -737,6 +740,6 @@ export class AdminResolver {
|
|||||||
} finally {
|
} finally {
|
||||||
await queryRunner.release()
|
await queryRunner.release()
|
||||||
}
|
}
|
||||||
return contributionMessage
|
return new ContributionMessage(contributionMessage, new User(user))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,17 +1,18 @@
|
|||||||
import { backendLogger as logger } from '@/server/logger'
|
import { backendLogger as logger } from '@/server/logger'
|
||||||
import { RIGHTS } from '@/auth/RIGHTS'
|
import { RIGHTS } from '@/auth/RIGHTS'
|
||||||
import { Context, getUser } from '@/server/context'
|
import { Context, getUser } from '@/server/context'
|
||||||
import { ContributionMessage } from '@entity/ContributionMessage'
|
import { ContributionMessage as DbContributionMessage } from '@entity/ContributionMessage'
|
||||||
import { Args, Authorized, Ctx, Mutation, Resolver } from 'type-graphql'
|
import { Args, Authorized, Ctx, Mutation, Resolver } from 'type-graphql'
|
||||||
import ContributionMessageArgs from '@arg/ContributionMessageArgs'
|
import ContributionMessageArgs from '@arg/ContributionMessageArgs'
|
||||||
import { Contribution } from '@entity/Contribution'
|
import { Contribution } from '@entity/Contribution'
|
||||||
import { ContributionMessageType } from '@enum/MessageType'
|
import { ContributionMessageType } from '@enum/MessageType'
|
||||||
import { ContributionStatus } from '@enum/ContributionStatus'
|
import { ContributionStatus } from '@enum/ContributionStatus'
|
||||||
import { getConnection } from '@dbTools/typeorm'
|
import { getConnection } from '@dbTools/typeorm'
|
||||||
|
import { ContributionMessage } from '@model/ContributionMessage'
|
||||||
|
import { User } from '@model/User'
|
||||||
|
|
||||||
@Resolver()
|
@Resolver()
|
||||||
export class ContributionResolver {
|
export class ContributionResolver {
|
||||||
// TODO: Have two method one for admin on for
|
|
||||||
@Authorized([RIGHTS.CREATE_CONTRIBUTION_MESSAGE])
|
@Authorized([RIGHTS.CREATE_CONTRIBUTION_MESSAGE])
|
||||||
@Mutation(() => ContributionMessage)
|
@Mutation(() => ContributionMessage)
|
||||||
async createContributionMessage(
|
async createContributionMessage(
|
||||||
@ -22,9 +23,12 @@ export class ContributionResolver {
|
|||||||
const queryRunner = getConnection().createQueryRunner()
|
const queryRunner = getConnection().createQueryRunner()
|
||||||
await queryRunner.connect()
|
await queryRunner.connect()
|
||||||
await queryRunner.startTransaction('READ UNCOMMITTED')
|
await queryRunner.startTransaction('READ UNCOMMITTED')
|
||||||
const contributionMessage = new ContributionMessage()
|
const contributionMessage = DbContributionMessage.create()
|
||||||
try {
|
try {
|
||||||
const contribution = await Contribution.findOneOrFail({ id: contributionId })
|
const contribution = await Contribution.findOne({ id: contributionId })
|
||||||
|
if (!contribution) {
|
||||||
|
throw new Error('Contribution not found')
|
||||||
|
}
|
||||||
if (contribution.userId !== user.id) {
|
if (contribution.userId !== user.id) {
|
||||||
throw new Error('Can not send message to contribution of another user')
|
throw new Error('Can not send message to contribution of another user')
|
||||||
}
|
}
|
||||||
@ -34,7 +38,7 @@ export class ContributionResolver {
|
|||||||
contributionMessage.message = message
|
contributionMessage.message = message
|
||||||
contributionMessage.userId = user.id
|
contributionMessage.userId = user.id
|
||||||
contributionMessage.type = ContributionMessageType.DIALOG
|
contributionMessage.type = ContributionMessageType.DIALOG
|
||||||
await queryRunner.manager.insert(ContributionMessage, contributionMessage)
|
await queryRunner.manager.insert(DbContributionMessage, contributionMessage)
|
||||||
|
|
||||||
if (contribution.contributionStatus === ContributionStatus.IN_PROGRESS) {
|
if (contribution.contributionStatus === ContributionStatus.IN_PROGRESS) {
|
||||||
contribution.contributionStatus = ContributionStatus.PENDING
|
contribution.contributionStatus = ContributionStatus.PENDING
|
||||||
@ -48,6 +52,6 @@ export class ContributionResolver {
|
|||||||
} finally {
|
} finally {
|
||||||
await queryRunner.release()
|
await queryRunner.release()
|
||||||
}
|
}
|
||||||
return contributionMessage
|
return new ContributionMessage(contributionMessage, new User(user))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user