From 5d4611f83fdf3491ccea4e9718244245c7642929 Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Wed, 22 Oct 2025 11:22:24 +0200 Subject: [PATCH] remove simple white space and order changes to make review less noisy --- backend/src/seeds/factory/user.ts | 1 + .../migrations/0091-add_dlt_users_table.ts | 30 -------- .../migrations/0092-merge_dlt_tables.ts | 37 ---------- .../migrations/0096-upgrade_dlt_tables.ts | 26 +++++++ database/src/AppDatabase.ts | 6 +- database/src/entity/Community.ts | 2 +- database/src/entity/Contribution.ts | 2 +- database/src/entity/Event.ts | 2 +- database/src/entity/User.ts | 2 +- database/src/logging/AbstractLogging.view.ts | 2 +- .../logging/PendingTransactionLogging.view.ts | 2 +- database/src/queries/communities.test.ts | 4 +- database/src/queries/communities.ts | 18 +++-- database/src/queries/index.ts | 4 +- .../src/queries/pendingTransactions.test.ts | 71 ++++++++++--------- database/src/queries/pendingTransactions.ts | 6 +- database/src/queries/transactionLinks.ts | 2 +- database/src/queries/user.test.ts | 38 +++++----- database/src/queries/user.ts | 17 ++--- .../src/seeds/factory/pendingTransaction.ts | 8 +-- database/src/seeds/factory/user.ts | 16 ++--- database/src/seeds/users/peter-lustig.ts | 2 +- database/src/util/index.ts | 2 +- dht-node/.env.dist | 2 +- 24 files changed, 129 insertions(+), 173 deletions(-) delete mode 100644 database/migration/migrations/0091-add_dlt_users_table.ts delete mode 100644 database/migration/migrations/0092-merge_dlt_tables.ts create mode 100644 database/migration/migrations/0096-upgrade_dlt_tables.ts diff --git a/backend/src/seeds/factory/user.ts b/backend/src/seeds/factory/user.ts index 5da84c3b2..7904c61b2 100644 --- a/backend/src/seeds/factory/user.ts +++ b/backend/src/seeds/factory/user.ts @@ -13,6 +13,7 @@ export const userFactory = async ( user: UserInterface, ): Promise => { const { mutate } = client + const homeCom = await writeHomeCommunityEntry() // console.log('call createUser with', JSON.stringify(user, null, 2)) const response = await mutate({ mutation: createUser, variables: user }) diff --git a/database/migration/migrations/0091-add_dlt_users_table.ts b/database/migration/migrations/0091-add_dlt_users_table.ts deleted file mode 100644 index 95f5c2ca2..000000000 --- a/database/migration/migrations/0091-add_dlt_users_table.ts +++ /dev/null @@ -1,30 +0,0 @@ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - -export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { - await queryFn(` - CREATE TABLE \`dlt_users\` ( - \`id\` int unsigned NOT NULL AUTO_INCREMENT, - \`user_id\` int(10) unsigned NOT NULL, - \`message_id\` varchar(64) NULL DEFAULT NULL, - \`verified\` tinyint(4) NOT NULL DEFAULT 0, - \`created_at\` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), - \`verified_at\` datetime(3), - \`error\` text NULL DEFAULT NULL, - PRIMARY KEY (id) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;`) - - await queryFn( - 'ALTER TABLE `dlt_transactions` RENAME COLUMN `transactions_id` TO `transaction_id`;', - ) - await queryFn('ALTER TABLE `dlt_transactions` ADD COLUMN `error` text NULL DEFAULT NULL;') -} - -export async function downgrade(queryFn: (query: string, values?: any[]) => Promise>) { - await queryFn(`DROP TABLE \`dlt_users\`;`) - - await queryFn( - 'ALTER TABLE `dlt_transactions` RENAME COLUMN `transaction_id` TO `transactions_id`;', - ) - await queryFn('ALTER TABLE `dlt_transactions` DROP COLUMN `error`;') -} diff --git a/database/migration/migrations/0092-merge_dlt_tables.ts b/database/migration/migrations/0092-merge_dlt_tables.ts deleted file mode 100644 index 70ee2d49e..000000000 --- a/database/migration/migrations/0092-merge_dlt_tables.ts +++ /dev/null @@ -1,37 +0,0 @@ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - -export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { - await queryFn(`DROP TABLE \`dlt_users\`;`) - await queryFn(` - ALTER TABLE \`dlt_transactions\` - CHANGE \`transaction_id\` \`transaction_id\` INT(10) UNSIGNED NULL DEFAULT NULL, - ADD \`user_id\` INT UNSIGNED NULL DEFAULT NULL AFTER \`transaction_id\`, - ADD \`transaction_link_id\` INT UNSIGNED NULL DEFAULT NULL AFTER \`user_id\`, - ADD \`type_id\` INT UNSIGNED NOT NULL AFTER \`transaction_link_id\` - ; - `) -} - -export async function downgrade(queryFn: (query: string, values?: any[]) => Promise>) { - await queryFn(` - CREATE TABLE \`dlt_users\` ( - \`id\` int unsigned NOT NULL AUTO_INCREMENT, - \`user_id\` int(10) unsigned NOT NULL, - \`message_id\` varchar(64) NULL DEFAULT NULL, - \`verified\` tinyint(4) NOT NULL DEFAULT 0, - \`created_at\` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), - \`verified_at\` datetime(3), - \`error\` text NULL DEFAULT NULL, - PRIMARY KEY (id) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;`) - - await queryFn(` - ALTER TABLE \`dlt_transactions\` - CHANGE \`transaction_id\` \`transaction_id\` INT(10) UNSIGNED NOT NULL, - DROP COLUMN \`user_id\`, - DROP COLUMN \`transaction_link_id\` - DROP COLUMN \`type_id\` - ; - `) -} diff --git a/database/migration/migrations/0096-upgrade_dlt_tables.ts b/database/migration/migrations/0096-upgrade_dlt_tables.ts new file mode 100644 index 000000000..849cdfc88 --- /dev/null +++ b/database/migration/migrations/0096-upgrade_dlt_tables.ts @@ -0,0 +1,26 @@ +/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ +/* eslint-disable @typescript-eslint/no-explicit-any */ + +export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { + await queryFn(` + ALTER TABLE \`dlt_transactions\` + CHANGE \`transactions_id\` \`transaction_id\` INT(10) UNSIGNED NULL DEFAULT NULL, + ADD \`user_id\` INT UNSIGNED NULL DEFAULT NULL AFTER \`transaction_id\`, + ADD \`transaction_link_id\` INT UNSIGNED NULL DEFAULT NULL AFTER \`user_id\`, + ADD \`type_id\` INT UNSIGNED NOT NULL AFTER \`transaction_link_id\`, + ADD \`error\` text NULL DEFAULT NULL AFTER \`verified_at\`, + ; + `) +} + +export async function downgrade(queryFn: (query: string, values?: any[]) => Promise>) { + await queryFn(` + ALTER TABLE \`dlt_transactions\` + CHANGE \`transaction_id\` \`transactions_id\` INT(10) UNSIGNED NOT NULL, + DROP COLUMN \`user_id\`, + DROP COLUMN \`transaction_link_id\`, + DROP COLUMN \`type_id\`, + DROP COLUMN \`error\` + ; + `) +} diff --git a/database/src/AppDatabase.ts b/database/src/AppDatabase.ts index e29a09965..c5275cb18 100644 --- a/database/src/AppDatabase.ts +++ b/database/src/AppDatabase.ts @@ -1,9 +1,9 @@ -import { getLogger } from 'log4js' import { DataSource as DBDataSource, FileLogger } from 'typeorm' +import { Migration, entities } from './entity' +import { getLogger } from 'log4js' import { latestDbVersion } from '.' import { CONFIG } from './config' import { LOG4JS_BASE_CATEGORY_NAME } from './config/const' -import { entities, Migration } from './entity' const logger = getLogger(`${LOG4JS_BASE_CATEGORY_NAME}.AppDatabase`) @@ -92,7 +92,7 @@ export class AppDatabase { public async destroy(): Promise { await this.dataSource?.destroy() } - + // ###################################### // private methods // ###################################### diff --git a/database/src/entity/Community.ts b/database/src/entity/Community.ts index af9cc1e7d..f6597306a 100644 --- a/database/src/entity/Community.ts +++ b/database/src/entity/Community.ts @@ -10,8 +10,8 @@ import { UpdateDateColumn, } from 'typeorm' import { FederatedCommunity } from './FederatedCommunity' -import { GeometryTransformer } from './transformer/GeometryTransformer' import { User } from './User' +import { GeometryTransformer } from './transformer/GeometryTransformer' @Entity('communities') export class Community extends BaseEntity { diff --git a/database/src/entity/Contribution.ts b/database/src/entity/Contribution.ts index a2f410e1d..976385263 100644 --- a/database/src/entity/Contribution.ts +++ b/database/src/entity/Contribution.ts @@ -12,8 +12,8 @@ import { } from 'typeorm' import { ContributionMessage } from './ContributionMessage' import { Transaction } from './Transaction' -import { DecimalTransformer } from './transformer/DecimalTransformer' import { User } from './User' +import { DecimalTransformer } from './transformer/DecimalTransformer' @Entity('contributions') export class Contribution extends BaseEntity { diff --git a/database/src/entity/Event.ts b/database/src/entity/Event.ts index b5ed77b21..9d17ffdeb 100644 --- a/database/src/entity/Event.ts +++ b/database/src/entity/Event.ts @@ -13,8 +13,8 @@ import { ContributionLink } from './ContributionLink' import { ContributionMessage } from './ContributionMessage' import { Transaction } from './Transaction' import { TransactionLink } from './TransactionLink' -import { DecimalTransformer } from './transformer/DecimalTransformer' import { User } from './User' +import { DecimalTransformer } from './transformer/DecimalTransformer' @Entity('events') export class Event extends BaseEntity { diff --git a/database/src/entity/User.ts b/database/src/entity/User.ts index b2366b93c..6a40e9858 100644 --- a/database/src/entity/User.ts +++ b/database/src/entity/User.ts @@ -15,9 +15,9 @@ import { Contribution } from './Contribution' import { ContributionMessage } from './ContributionMessage' import { DltTransaction } from './DltTransaction' import { TransactionLink } from './TransactionLink' -import { GeometryTransformer } from './transformer/GeometryTransformer' import { UserContact } from './UserContact' import { UserRole } from './UserRole' +import { GeometryTransformer } from './transformer/GeometryTransformer' @Entity('users', { engine: 'InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci' }) export class User extends BaseEntity { diff --git a/database/src/logging/AbstractLogging.view.ts b/database/src/logging/AbstractLogging.view.ts index 7e1616c65..f9a96ad5a 100644 --- a/database/src/logging/AbstractLogging.view.ts +++ b/database/src/logging/AbstractLogging.view.ts @@ -1,5 +1,5 @@ -import { Decimal } from 'decimal.js-light' import util from 'util' +import { Decimal } from 'decimal.js-light' export abstract class AbstractLoggingView { protected bufferStringFormat: BufferEncoding = 'hex' diff --git a/database/src/logging/PendingTransactionLogging.view.ts b/database/src/logging/PendingTransactionLogging.view.ts index 20e08e662..fad2d8f56 100644 --- a/database/src/logging/PendingTransactionLogging.view.ts +++ b/database/src/logging/PendingTransactionLogging.view.ts @@ -1,7 +1,7 @@ -import { PendingTransactionState } from 'shared' import { PendingTransaction, Transaction } from '../entity' import { AbstractLoggingView } from './AbstractLogging.view' import { TransactionLoggingView } from './TransactionLogging.view' +import { PendingTransactionState } from 'shared' export class PendingTransactionLoggingView extends AbstractLoggingView { public constructor(private self: PendingTransaction) { diff --git a/database/src/queries/communities.test.ts b/database/src/queries/communities.test.ts index b6a374cb9..b435c3649 100644 --- a/database/src/queries/communities.test.ts +++ b/database/src/queries/communities.test.ts @@ -1,7 +1,7 @@ -import { afterAll, beforeAll, beforeEach, describe, expect, it } from 'vitest' import { Community as DbCommunity, FederatedCommunity as DbFederatedCommunity } from '..' import { AppDatabase } from '../AppDatabase' import { getCommunityByPublicKeyOrFail, getHomeCommunity, getHomeCommunityWithFederatedCommunityOrFail, getReachableCommunities } from './communities' +import { describe, expect, it, beforeEach, beforeAll, afterAll } from 'vitest' import { createCommunity, createVerifiedFederatedCommunity } from '../seeds/community' import { Ed25519PublicKey } from 'shared' @@ -117,4 +117,4 @@ describe('community.queries', () => { expect(await getReachableCommunities(1000)).toHaveLength(0) }) }) -}) +}) \ No newline at end of file diff --git a/database/src/queries/communities.ts b/database/src/queries/communities.ts index 48f0080f0..fee69b27e 100644 --- a/database/src/queries/communities.ts +++ b/database/src/queries/communities.ts @@ -27,9 +27,7 @@ export async function getCommunityByUuid(communityUuid: string): Promise { +export function findWithCommunityIdentifier(communityIdentifier: string): FindOptionsWhere { const where: FindOptionsWhere = {} // pre filter identifier type to reduce db query complexity if (urlSchema.safeParse(communityIdentifier).success) { @@ -71,15 +69,15 @@ export async function getCommunityByPublicKeyOrFail(publicKey: Ed25519PublicKey) // home community and all federated communities which have been verified within the last authenticationTimeoutMs export async function getReachableCommunities( authenticationTimeoutMs: number, - order?: FindOptionsOrder, + order?: FindOptionsOrder ): Promise { return await DbCommunity.find({ - where: [ - { - authenticatedAt: Not(IsNull()), - federatedCommunities: { + where: [ + { + authenticatedAt: Not(IsNull()), + federatedCommunities: { verifiedAt: MoreThanOrEqual(new Date(Date.now() - authenticationTimeoutMs)), - }, + } }, { foreign: false }, ], @@ -94,4 +92,4 @@ export async function getNotReachableCommunities( where: { authenticatedAt: IsNull(), foreign: true }, order, }) -} +} \ No newline at end of file diff --git a/database/src/queries/index.ts b/database/src/queries/index.ts index 8241e010c..2cd0164ce 100644 --- a/database/src/queries/index.ts +++ b/database/src/queries/index.ts @@ -1,11 +1,11 @@ import { LOG4JS_BASE_CATEGORY_NAME } from '../config/const' +export * from './user' export * from './communities' export * from './events' export * from './pendingTransactions' -export * from './transactionLinks' export * from './transactions' -export * from './user' +export * from './transactionLinks' export * from './communityHandshakes' export const LOG4JS_QUERIES_CATEGORY_NAME = `${LOG4JS_BASE_CATEGORY_NAME}.queries` diff --git a/database/src/queries/pendingTransactions.test.ts b/database/src/queries/pendingTransactions.test.ts index 1f7d0a3b7..5eab17136 100644 --- a/database/src/queries/pendingTransactions.test.ts +++ b/database/src/queries/pendingTransactions.test.ts @@ -1,22 +1,22 @@ -import Decimal from 'decimal.js-light' -import { PendingTransactionState } from 'shared' -import { v4 as uuidv4 } from 'uuid' -import { afterAll, beforeAll, describe, expect, it } from 'vitest' import { - Community as DbCommunity, PendingTransaction as DbPendingTransaction, User as DbUser, UserContact as DbUserContact, + Community as DbCommunity, } from '..' +import { countOpenPendingTransactions } from './pendingTransactions' +import { PendingTransactionState } from 'shared' import { AppDatabase } from '../AppDatabase' -import { createCommunity } from '../seeds/community' -import { pendingTransactionFactory } from '../seeds/factory/pendingTransaction' import { userFactory } from '../seeds/factory/user' +import { pendingTransactionFactory } from '../seeds/factory/pendingTransaction' import { bibiBloxberg } from '../seeds/users/bibi-bloxberg' +import { peterLustig } from '../seeds/users/peter-lustig' import { bobBaumeister } from '../seeds/users/bob-baumeister' import { garrickOllivander } from '../seeds/users/garrick-ollivander' -import { peterLustig } from '../seeds/users/peter-lustig' -import { countOpenPendingTransactions } from './pendingTransactions' +import { describe, expect, it, beforeAll, afterAll } from 'vitest' +import { createCommunity } from '../seeds/community' +import { v4 as uuidv4 } from 'uuid' +import Decimal from 'decimal.js-light' const db = AppDatabase.getInstance() @@ -27,6 +27,7 @@ afterAll(async () => { await db.destroy() }) + describe('countOpenPendingTransactions', () => { let bibi: DbUser let peter: DbUser @@ -40,44 +41,45 @@ describe('countOpenPendingTransactions', () => { await createCommunity(false) - bibi = await userFactory(bibiBloxberg) + bibi = await userFactory(bibiBloxberg) peter = await userFactory(peterLustig) bob = await userFactory(bobBaumeister) garrick = await userFactory(garrickOllivander) // Bibi -> Peter await pendingTransactionFactory( - bibi, - peter, - new Decimal(10), - 'Bibi -> Peter new', - PendingTransactionState.NEW, + bibi, + peter, + new Decimal(10), + 'Bibi -> Peter new', + PendingTransactionState.NEW ) await pendingTransactionFactory( - bibi, - peter, - new Decimal(100.01), - 'Bibi -> Peter settled', - PendingTransactionState.SETTLED, + bibi, + peter, + new Decimal(100.01), + 'Bibi -> Peter settled', + PendingTransactionState.SETTLED ) // Peter -> Bibi await pendingTransactionFactory( - peter, - bibi, - new Decimal(12), - 'Peter -> Bibi new', - PendingTransactionState.NEW, + peter, + bibi, + new Decimal(12), + 'Peter -> Bibi new', + PendingTransactionState.NEW ) // Bob -> Peter await pendingTransactionFactory( - bob, - peter, - new Decimal(17.1), - 'Bob -> Peter new', - PendingTransactionState.NEW, + bob, + peter, + new Decimal(17.1), + 'Bob -> Peter new', + PendingTransactionState.NEW ) + }) it('should return 0 if called with empty array', async () => { const count = await countOpenPendingTransactions([]) @@ -102,20 +104,21 @@ describe('countOpenPendingTransactions', () => { it('peter and bob have one transaction together, peter two additional, should return 3', async () => { const count = await countOpenPendingTransactions([peter.gradidoID, bob.gradidoID]) expect(count).toBe(3) - }) - + }) + it('peter has three transactions, should return 3', async () => { const count = await countOpenPendingTransactions([peter.gradidoID]) expect(count).toBe(3) }) + it('bibi has two transactions, should return 2', async () => { const count = await countOpenPendingTransactions([bibi.gradidoID]) expect(count).toBe(2) - }) + }) it('bob has one transaction, should return 1', async () => { const count = await countOpenPendingTransactions([bob.gradidoID]) expect(count).toBe(1) - }) + }) }) diff --git a/database/src/queries/pendingTransactions.ts b/database/src/queries/pendingTransactions.ts index b6481af33..44bf63f82 100644 --- a/database/src/queries/pendingTransactions.ts +++ b/database/src/queries/pendingTransactions.ts @@ -1,6 +1,6 @@ -import { PendingTransactionState } from 'shared' -import { In } from 'typeorm' import { PendingTransaction as DbPendingTransaction } from '../entity' +import { In } from 'typeorm' +import { PendingTransactionState } from 'shared' /** * Counts the number of open pending transactions for the given users. @@ -15,4 +15,4 @@ export async function countOpenPendingTransactions(users: string[]): Promise { return await DbTransactionLink.findOneOrFail({ diff --git a/database/src/queries/user.test.ts b/database/src/queries/user.test.ts index 57096d264..23279770d 100644 --- a/database/src/queries/user.test.ts +++ b/database/src/queries/user.test.ts @@ -1,14 +1,14 @@ -import { afterAll, beforeAll, beforeEach, describe, expect, it } from 'vitest' -import { clearLogs, getLogger, printLogs } from '../../../config-schema/test/testSetup.vitest' -import { Community as DbCommunity, User as DbUser, UserContact as DbUserContact } from '..' +import { User as DbUser, UserContact as DbUserContact, Community as DbCommunity } from '../entity' import { AppDatabase } from '../AppDatabase' -import { createCommunity } from '../seeds/community' +import { aliasExists, findUserByIdentifier } from './user' import { userFactory } from '../seeds/factory/user' import { bibiBloxberg } from '../seeds/users/bibi-bloxberg' -import { bobBaumeister } from '../seeds/users/bob-baumeister' +import { describe, expect, it, beforeAll, afterAll, beforeEach, } from 'vitest' +import { createCommunity } from '../seeds/community' import { peterLustig } from '../seeds/users/peter-lustig' +import { bobBaumeister } from '../seeds/users/bob-baumeister' +import { getLogger, printLogs, clearLogs } from '../../../config-schema/test/testSetup.vitest' import { LOG4JS_QUERIES_CATEGORY_NAME } from '.' -import { aliasExists, findUserByIdentifier } from './user' const db = AppDatabase.getInstance() const userIdentifierLoggerName = `${LOG4JS_QUERIES_CATEGORY_NAME}.user.findUserByIdentifier` @@ -26,9 +26,9 @@ describe('user.queries', () => { await DbUser.clear() await DbUserContact.clear() - const bibi = bibiBloxberg + const bibi = bibiBloxberg bibi.alias = 'b-b' - await userFactory(bibi) + await userFactory(bibi) }) it('should return true if alias exists', async () => { @@ -70,12 +70,12 @@ describe('user.queries', () => { const user = await findUserByIdentifier(userBibi.gradidoID, communityUuid) expect(user).toMatchObject(userBibi) }) - + it('userIdentifier is alias', async () => { const user = await findUserByIdentifier(userBibi.alias, communityUuid) expect(user).toMatchObject(userBibi) }) - + it('userIdentifier is email', async () => { const user = await findUserByIdentifier(userBibi.emailContact.email, communityUuid) expect(user).toMatchObject(userBibi) @@ -85,18 +85,18 @@ describe('user.queries', () => { expect(user).toBeNull() }) }) - + describe('communityIdentifier is community name', () => { it('userIdentifier is gradido id', async () => { const user = await findUserByIdentifier(userBibi.gradidoID, communityName) expect(user).toMatchObject(userBibi) }) - + it('userIdentifier is alias', async () => { const user = await findUserByIdentifier(userBibi.alias, communityName) expect(user).toMatchObject(userBibi) }) - + it('userIdentifier is email', async () => { const user = await findUserByIdentifier(userBibi.emailContact.email, communityName) expect(user).toMatchObject(userBibi) @@ -117,12 +117,12 @@ describe('user.queries', () => { const user = await findUserByIdentifier(userBibi.gradidoID) expect(user).toMatchObject(userBibi) }) - + it('userIdentifier is alias', async () => { const user = await findUserByIdentifier(userBibi.alias) expect(user).toMatchObject(userBibi) }) - + it('userIdentifier is email', async () => { const user = await findUserByIdentifier(userBibi.emailContact.email) expect(user).toMatchObject(userBibi) @@ -130,12 +130,10 @@ describe('user.queries', () => { it('userIdentifier is unknown type', async () => { const user = await findUserByIdentifier('sa') printLogs() - expect(getLogger(userIdentifierLoggerName).warn).toHaveBeenCalledWith( - 'Unknown identifier type', - 'sa', - ) + expect(getLogger(userIdentifierLoggerName).warn).toHaveBeenCalledWith('Unknown identifier type', 'sa') expect(user).toBeNull() }) - }) + }) }) }) + diff --git a/database/src/queries/user.ts b/database/src/queries/user.ts index 9e7d84c27..c117c9ff8 100644 --- a/database/src/queries/user.ts +++ b/database/src/queries/user.ts @@ -1,7 +1,7 @@ -import { getLogger } from 'log4js' -import { aliasSchema, emailSchema, uuidv4Schema } from 'shared' import { Raw } from 'typeorm' import { User as DbUser, UserContact as DbUserContact } from '../entity' +import { aliasSchema, emailSchema, uuidv4Schema } from 'shared' +import { getLogger } from 'log4js' import { findWithCommunityIdentifier, LOG4JS_QUERIES_CATEGORY_NAME } from './index' export async function aliasExists(alias: string): Promise { @@ -32,8 +32,8 @@ export const findUserByIdentifier = async ( identifier: string, communityIdentifier?: string, ): Promise => { - const communityWhere = communityIdentifier - ? findWithCommunityIdentifier(communityIdentifier) + const communityWhere = communityIdentifier + ? findWithCommunityIdentifier(communityIdentifier) : undefined if (uuidv4Schema.safeParse(identifier).success) { @@ -52,12 +52,12 @@ export const findUserByIdentifier = async ( }, relations: { user: { community: true } }, }) - if (userContact) { + if (userContact) { // TODO: remove circular reference const user = userContact.user user.emailContact = userContact return user - } + } } else if (aliasSchema.safeParse(identifier).success) { return await DbUser.findOne({ where: { alias: identifier, community: communityWhere }, @@ -65,10 +65,7 @@ export const findUserByIdentifier = async ( }) } else { // should don't happen often, so we create only in the rare case a logger for it - getLogger(`${LOG4JS_QUERIES_CATEGORY_NAME}.user.findUserByIdentifier`).warn( - 'Unknown identifier type', - identifier, - ) + getLogger(`${LOG4JS_QUERIES_CATEGORY_NAME}.user.findUserByIdentifier`).warn('Unknown identifier type', identifier) } return null } diff --git a/database/src/seeds/factory/pendingTransaction.ts b/database/src/seeds/factory/pendingTransaction.ts index 75cb7c70e..64f10cee7 100644 --- a/database/src/seeds/factory/pendingTransaction.ts +++ b/database/src/seeds/factory/pendingTransaction.ts @@ -1,6 +1,6 @@ -import { Decimal } from 'decimal.js-light' -import { PendingTransactionState } from 'shared' import { PendingTransaction as DbPendingTransaction, User as DbUser } from '../..' +import { PendingTransactionState } from 'shared' +import { Decimal } from 'decimal.js-light' export async function pendingTransactionFactory( sender: DbUser, @@ -14,8 +14,8 @@ export async function pendingTransactionFactory( pendingTransaction.memo = memo pendingTransaction.amount = amount pendingTransaction.userId = sender.id - pendingTransaction.userGradidoID = sender.gradidoID - pendingTransaction.userCommunityUuid = sender.communityUuid! + pendingTransaction.userGradidoID = sender.gradidoID + pendingTransaction.userCommunityUuid = sender.communityUuid! pendingTransaction.linkedUserId = receiver.id pendingTransaction.linkedUserGradidoID = receiver.gradidoID pendingTransaction.linkedUserCommunityUuid = receiver.communityUuid! diff --git a/database/src/seeds/factory/user.ts b/database/src/seeds/factory/user.ts index 912cf00d0..369aa51a4 100644 --- a/database/src/seeds/factory/user.ts +++ b/database/src/seeds/factory/user.ts @@ -1,16 +1,16 @@ -import random from 'crypto-random-bigint' -import { OptInType, PasswordEncryptionType, UserContactType } from 'shared' -import { v4 } from 'uuid' -import { User, UserContact } from '../../entity' -import { getHomeCommunity } from '../../queries/communities' import { UserInterface } from '../users/UserInterface' +import { User, UserContact } from '../../entity' +import { v4 } from 'uuid' +import { UserContactType, OptInType, PasswordEncryptionType } from 'shared' +import { getHomeCommunity } from '../../queries/communities' +import random from 'crypto-random-bigint' export const userFactory = async (user: UserInterface): Promise => { let dbUserContact = new UserContact() dbUserContact.email = user.email ?? '' dbUserContact.type = UserContactType.USER_CONTACT_EMAIL - + let dbUser = new User() dbUser.firstName = user.firstName ?? '' dbUser.lastName = user.lastName ?? '' @@ -35,11 +35,11 @@ export const userFactory = async (user: UserInterface): Promise => { dbUser.community = homeCommunity dbUser.communityUuid = homeCommunity.communityUuid! } - // TODO: improve with cascade + // TODO: improve with cascade dbUser = await dbUser.save() dbUserContact.userId = dbUser.id dbUserContact = await dbUserContact.save() dbUser.emailId = dbUserContact.id dbUser.emailContact = dbUserContact return dbUser.save() -} +} \ No newline at end of file diff --git a/database/src/seeds/users/peter-lustig.ts b/database/src/seeds/users/peter-lustig.ts index ebd5235af..58b07fe99 100644 --- a/database/src/seeds/users/peter-lustig.ts +++ b/database/src/seeds/users/peter-lustig.ts @@ -7,5 +7,5 @@ export const peterLustig: UserInterface = { // description: 'Latzhose und Nickelbrille', createdAt: new Date('2020-11-25T10:48:43'), emailChecked: true, - language: 'de', + language: 'de' } diff --git a/database/src/util/index.ts b/database/src/util/index.ts index e2eb6c04e..d2fde2126 100644 --- a/database/src/util/index.ts +++ b/database/src/util/index.ts @@ -1,2 +1,2 @@ -export * from './TRANSACTION_LINK_LOCK' export * from './TRANSACTIONS_LOCK' +export * from './TRANSACTION_LINK_LOCK' diff --git a/dht-node/.env.dist b/dht-node/.env.dist index 1f4fca697..351bc251d 100644 --- a/dht-node/.env.dist +++ b/dht-node/.env.dist @@ -13,7 +13,7 @@ TYPEORM_LOGGING_RELATIVE_PATH=typeorm.dht-node.log # Federation # if you set the value of FEDERATION_DHT_TOPIC, the DHT hyperswarm will start to announce and listen on an hash created from this topic FEDERATION_DHT_TOPIC=GRADIDO_HUB -FEDERATION_DHT_SEED=64ebcb0e3ad547848fed4197c6e1332f +# FEDERATION_DHT_SEED=64ebcb0e3ad547848fef4197c6e2332f FEDERATION_COMMUNITY_URL=http://localhost # comma separated values, which apis should be announced FEDERATION_COMMUNITY_APIS=1_0 \ No newline at end of file