diff --git a/backend/src/graphql/directive/isAuthorized.ts b/backend/src/graphql/directive/isAuthorized.ts index d5c8495bb..89da13ff7 100644 --- a/backend/src/graphql/directive/isAuthorized.ts +++ b/backend/src/graphql/directive/isAuthorized.ts @@ -5,10 +5,10 @@ import { AuthChecker } from 'type-graphql' import { decode, encode } from '../../auth/JWT' import { ROLE_UNAUTHORIZED, ROLE_USER, ROLE_ADMIN } from '../../auth/ROLES' import { RIGHTS } from '../../auth/RIGHTS' -import { ServerUserRepository } from '../../typeorm/repository/ServerUser' import { getCustomRepository } from '@dbTools/typeorm' import { UserRepository } from '../../typeorm/repository/User' import { INALIENABLE_RIGHTS } from '../../auth/INALIENABLE_RIGHTS' +import { ServerUser } from '@entity/ServerUser' const isAuthorized: AuthChecker = async ({ context }, rights) => { context.role = ROLE_UNAUTHORIZED // unauthorized user @@ -38,8 +38,7 @@ const isAuthorized: AuthChecker = async ({ context }, rights) => { // TODO this implementation is bullshit - two database queries cause our user identifiers are not aligned and vary between email, id and pubKey const userRepository = await getCustomRepository(UserRepository) const user = await userRepository.findByPubkeyHex(context.pubKey) - const serverUserRepository = await getCustomRepository(ServerUserRepository) - const countServerUsers = await serverUserRepository.count({ email: user.email }) + const countServerUsers = await ServerUser.count({ email: user.email }) context.role = countServerUsers > 0 ? ROLE_ADMIN : ROLE_USER context.setHeaders.push({ key: 'token', value: encode(decoded.pubKey) }) diff --git a/backend/src/graphql/resolver/AdminResolver.ts b/backend/src/graphql/resolver/AdminResolver.ts index 2c8cbfe27..bc07c79ec 100644 --- a/backend/src/graphql/resolver/AdminResolver.ts +++ b/backend/src/graphql/resolver/AdminResolver.ts @@ -9,7 +9,6 @@ import { CreatePendingCreations } from '../model/CreatePendingCreations' import { UpdatePendingCreation } from '../model/UpdatePendingCreation' import { RIGHTS } from '../../auth/RIGHTS' import { TransactionRepository } from '../../typeorm/repository/Transaction' -import { TransactionCreationRepository } from '../../typeorm/repository/TransactionCreation' import { UserRepository } from '../../typeorm/repository/User' import CreatePendingCreationArgs from '../arg/CreatePendingCreationArgs' import UpdatePendingCreationArgs from '../arg/UpdatePendingCreationArgs' @@ -198,13 +197,12 @@ export class AdminResolver { transaction = await transactionRepository.save(transaction) if (!transaction) throw new Error('Could not create transaction') - const transactionCreationRepository = getCustomRepository(TransactionCreationRepository) let transactionCreation = new TransactionCreation() transactionCreation.transactionId = transaction.id transactionCreation.userId = pendingCreation.userId transactionCreation.amount = parseInt(pendingCreation.amount.toString()) transactionCreation.targetDate = pendingCreation.date - transactionCreation = await transactionCreationRepository.save(transactionCreation) + transactionCreation = await TransactionCreation.save(transactionCreation) if (!transactionCreation) throw new Error('Could not create transactionCreation') const userTransactionRepository = getCustomRepository(UserTransactionRepository) @@ -256,9 +254,7 @@ async function getUserCreations(id: number): Promise { const lastMonthNumber = moment().subtract(1, 'month').format('M') const currentMonthNumber = moment().format('M') - const transactionCreationRepository = getCustomRepository(TransactionCreationRepository) - const createdAmountsQuery = await transactionCreationRepository - .createQueryBuilder('transaction_creations') + const createdAmountsQuery = await TransactionCreation.createQueryBuilder('transaction_creations') .select('MONTH(transaction_creations.target_date)', 'target_month') .addSelect('SUM(transaction_creations.amount)', 'sum') .where('transaction_creations.state_user_id = :id', { id }) diff --git a/backend/src/graphql/resolver/UserResolver.ts b/backend/src/graphql/resolver/UserResolver.ts index 6753712ab..5c9230b22 100644 --- a/backend/src/graphql/resolver/UserResolver.ts +++ b/backend/src/graphql/resolver/UserResolver.ts @@ -18,11 +18,11 @@ import { UserRepository } from '../../typeorm/repository/User' import { LoginEmailOptIn } from '@entity/LoginEmailOptIn' import { sendResetPasswordEmail } from '../../mailer/sendResetPasswordEmail' import { sendAccountActivationEmail } from '../../mailer/sendAccountActivationEmail' -import { LoginElopageBuysRepository } from '../../typeorm/repository/LoginElopageBuys' import { klicktippSignIn } from '../../apis/KlicktippController' import { RIGHTS } from '../../auth/RIGHTS' -import { ServerUserRepository } from '../../typeorm/repository/ServerUser' import { ROLE_ADMIN } from '../../auth/ROLES' +import { LoginElopageBuys } from '@entity/LoginElopageBuys' +import { ServerUser } from '@entity/ServerUser' const EMAIL_OPT_IN_RESET_PASSWORD = 2 const EMAIL_OPT_IN_REGISTER = 1 @@ -298,8 +298,7 @@ export class UserResolver { user.coinanimation = coinanimation // context.role is not set to the actual role yet on login - const serverUserRepository = await getCustomRepository(ServerUserRepository) - const countServerUsers = await serverUserRepository.count({ email: user.email }) + const countServerUsers = await ServerUser.count({ email: user.email }) user.isAdmin = countServerUsers > 0 context.setHeaders.push({ @@ -662,8 +661,7 @@ export class UserResolver { return false } - const loginElopageBuysRepository = getCustomRepository(LoginElopageBuysRepository) - const elopageBuyCount = await loginElopageBuysRepository.count({ payerEmail: userEntity.email }) + const elopageBuyCount = await LoginElopageBuys.count({ payerEmail: userEntity.email }) return elopageBuyCount > 0 } } diff --git a/backend/src/typeorm/repository/LoginElopageBuys.ts b/backend/src/typeorm/repository/LoginElopageBuys.ts deleted file mode 100644 index 0448c84ee..000000000 --- a/backend/src/typeorm/repository/LoginElopageBuys.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { EntityRepository, Repository } from '@dbTools/typeorm' -import { LoginElopageBuys } from '@entity/LoginElopageBuys' - -@EntityRepository(LoginElopageBuys) -export class LoginElopageBuysRepository extends Repository {} diff --git a/backend/src/typeorm/repository/LoginEmailOptIn.ts b/backend/src/typeorm/repository/LoginEmailOptIn.ts deleted file mode 100644 index 0906e8b51..000000000 --- a/backend/src/typeorm/repository/LoginEmailOptIn.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { EntityRepository, Repository } from '@dbTools/typeorm' -import { LoginEmailOptIn } from '@entity/LoginEmailOptIn' - -@EntityRepository(LoginEmailOptIn) -export class LoginEmailOptInRepository extends Repository {} diff --git a/backend/src/typeorm/repository/ServerUser.ts b/backend/src/typeorm/repository/ServerUser.ts deleted file mode 100644 index 0ab33c44a..000000000 --- a/backend/src/typeorm/repository/ServerUser.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { EntityRepository, Repository } from '@dbTools/typeorm' -import { ServerUser } from '@entity/ServerUser' - -@EntityRepository(ServerUser) -export class ServerUserRepository extends Repository {} diff --git a/backend/src/typeorm/repository/TransactionCreation.ts b/backend/src/typeorm/repository/TransactionCreation.ts deleted file mode 100644 index 938715574..000000000 --- a/backend/src/typeorm/repository/TransactionCreation.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { EntityRepository, Repository } from '@dbTools/typeorm' -import { TransactionCreation } from '@entity/TransactionCreation' - -@EntityRepository(TransactionCreation) -export class TransactionCreationRepository extends Repository {} diff --git a/backend/src/webhook/elopage.ts b/backend/src/webhook/elopage.ts index 0b392abb1..af6b5a097 100644 --- a/backend/src/webhook/elopage.ts +++ b/backend/src/webhook/elopage.ts @@ -28,16 +28,13 @@ */ import { LoginElopageBuys } from '@entity/LoginElopageBuys' -import { getCustomRepository } from '@dbTools/typeorm' import { UserResolver } from '../graphql/resolver/UserResolver' -import { LoginElopageBuysRepository } from '../typeorm/repository/LoginElopageBuys' import { User as dbUser } from '@entity/User' export const elopageWebhook = async (req: any, res: any): Promise => { // eslint-disable-next-line no-console console.log('Elopage Hook received', req.body) res.status(200).end() // Responding is important - const loginElopageBuyRepository = await getCustomRepository(LoginElopageBuysRepository) const loginElopageBuy = new LoginElopageBuys() const { @@ -82,7 +79,7 @@ export const elopageWebhook = async (req: any, res: any): Promise => { } // Save the hook data - await loginElopageBuyRepository.save(loginElopageBuy) + await LoginElopageBuys.save(loginElopageBuy) // create user for certain products /*