From 01b4f1ef661ec9d52b0d433d7f3771bb55390406 Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Sat, 29 Nov 2025 14:33:13 +0100 Subject: [PATCH] fix to make compatible to gradido-blockchain --- database/src/seeds/creation/index.ts | 1 - database/src/seeds/factory/creation.ts | 25 ++++++++++++++++++----- database/src/seeds/factory/user.ts | 13 ++++++++++-- database/src/seeds/index.ts | 14 +++++++++++-- database/src/seeds/users/bibi-bloxberg.ts | 2 ++ 5 files changed, 45 insertions(+), 10 deletions(-) diff --git a/database/src/seeds/creation/index.ts b/database/src/seeds/creation/index.ts index cdb123dcb..109591d46 100644 --- a/database/src/seeds/creation/index.ts +++ b/database/src/seeds/creation/index.ts @@ -142,7 +142,6 @@ export const creations: CreationInterface[] = [ memo: '#Hexen', contributionDate: nMonthsBefore(new Date()), confirmed: true, - moveCreationDate: 12, }, ...bobsTransactions, { diff --git a/database/src/seeds/factory/creation.ts b/database/src/seeds/factory/creation.ts index 618cbeebd..8870a717f 100644 --- a/database/src/seeds/factory/creation.ts +++ b/database/src/seeds/factory/creation.ts @@ -29,7 +29,7 @@ export async function creationFactory( if (!moderatorUser) { throw new Error('Moderator user not found') } - await confirmTransaction(contribution, moderatorUser) + await confirmTransaction(creation, contribution, moderatorUser) } return contribution } @@ -51,7 +51,13 @@ export async function creationFactoryBulk( } let contribution = await createContribution(creation, user, false) if (creation.confirmed) { - const { contribution: _, transaction } = await confirmTransaction(contribution, moderatorUser, transactionId, false) + const { contribution: _, transaction } = await confirmTransaction( + creation, + contribution, + moderatorUser, + transactionId, + false + ) dbTransactions.push(transaction) transactionId++ } @@ -80,24 +86,25 @@ export async function createContribution(creation: CreationInterface, user: User } export async function confirmTransaction( + creation: CreationInterface, contribution: Contribution, moderatorUser: User, transactionId?: number, store: boolean = true ): Promise<{ contribution: Contribution, transaction: Transaction }> { - const now = new Date() + const balanceDate = getBalanceDate(creation) const transaction = await createTransaction( contribution.amount, contribution.memo, contribution.user, moderatorUser, TransactionTypeId.CREATION, - now, + balanceDate, contribution.contributionDate, transactionId, store, ) - contribution.confirmedAt = now + contribution.confirmedAt = balanceDate contribution.confirmedBy = moderatorUser.id contribution.transactionId = transaction.id contribution.transaction = transaction @@ -116,4 +123,12 @@ function getContributionDate(creation: CreationInterface): Date { return new Date(nMonthsBefore(new Date(creation.contributionDate), creation.moveCreationDate)) } return new Date(creation.contributionDate) +} + +function getBalanceDate(creation: CreationInterface): Date { + const now = new Date() + if (creation.moveCreationDate) { + return new Date(nMonthsBefore(now, creation.moveCreationDate)) + } + return now } \ No newline at end of file diff --git a/database/src/seeds/factory/user.ts b/database/src/seeds/factory/user.ts index 4a8a434d4..fb1ab852e 100644 --- a/database/src/seeds/factory/user.ts +++ b/database/src/seeds/factory/user.ts @@ -27,6 +27,7 @@ export async function userFactoryBulk(users: UserInterface[], homeCommunity?: Co const lastUserContact = await UserContact.findOne({ order: { id: 'DESC' }, select: ['id'], where: {} }) let userId = lastUser ? lastUser.id + 1 : 1 let emailId = lastUserContact ? lastUserContact.id + 1 : 1 + // console.log(`start with userId: ${userId} and emailId: ${emailId}`) for(const user of users) { const dbUser = await createUser(user, homeCommunity, false) dbUser.id = userId @@ -45,9 +46,13 @@ export async function userFactoryBulk(users: UserInterface[], homeCommunity?: Co } const dataSource = AppDatabase.getInstance().getDataSource() await dataSource.transaction(async transaction => { + // typeorm change my data what I don't want + // because of manuel id assignment + const dbUsersCopy = dbUsers.map(user => ({ ...user })) + const dbUserContactsCopy = dbUserContacts.map(userContact => ({ ...userContact })) await Promise.all([ - transaction.getRepository(User).insert(dbUsers), - transaction.getRepository(UserContact).insert(dbUserContacts) + transaction.getRepository(User).insert(dbUsersCopy), + transaction.getRepository(UserContact).insert(dbUserContactsCopy) ]) }) return dbUsers @@ -87,6 +92,10 @@ export async function createUserContact(user: UserInterface, userId?: number, st dbUserContact.email = user.email ?? '' dbUserContact.type = UserContactType.USER_CONTACT_EMAIL + if (user.createdAt) { + dbUserContact.createdAt = user.createdAt + dbUserContact.updatedAt = user.createdAt + } if (user.emailChecked) { dbUserContact.emailVerificationCode = random(64).toString() dbUserContact.emailOptInTypeId = OptInType.EMAIL_OPT_IN_REGISTER diff --git a/database/src/seeds/index.ts b/database/src/seeds/index.ts index 5f085c5f8..67229133e 100644 --- a/database/src/seeds/index.ts +++ b/database/src/seeds/index.ts @@ -5,7 +5,7 @@ import { users } from './users' import { internet, name } from 'faker' import { creationFactoryBulk } from './factory/creation' import { creations } from './creation' -import { transactionLinkFactoryBulk } from './factory/transactionLink' +import { transactionLinkCode, transactionLinkFactoryBulk } from './factory/transactionLink' import { transactionLinks } from './transactionLink' import { contributionLinkFactory } from './factory/contributionLink' import { contributionLinks } from './contributionLink' @@ -59,7 +59,17 @@ async function run() { console.info(`##seed## seeding all contributionLinks successful ...`) // create Transaction Links - await transactionLinkFactoryBulk(transactionLinks, userCreationIndexedByEmail) + const movedTransactionLinks = transactionLinks.map(transactionLink => { + let createdAt = new Date(new Date().getTime() + 1000) + if (transactionLink.createdAt) { + createdAt = transactionLink.createdAt + } + return { + ...transactionLink, + createdAt: createdAt, + } + }) + await transactionLinkFactoryBulk(movedTransactionLinks, userCreationIndexedByEmail) console.info(`##seed## seeding all transactionLinks successful ...`) await db.destroy() diff --git a/database/src/seeds/users/bibi-bloxberg.ts b/database/src/seeds/users/bibi-bloxberg.ts index 9a40e922b..f78a3af1c 100644 --- a/database/src/seeds/users/bibi-bloxberg.ts +++ b/database/src/seeds/users/bibi-bloxberg.ts @@ -9,4 +9,6 @@ export const bibiBloxberg: UserInterface = { emailChecked: true, language: 'de', publisherId: 1234, + // move user createdAt before transaction link + createdAt: new Date(2021, 9, 17), }