fix to make compatible to gradido-blockchain

This commit is contained in:
einhornimmond 2025-11-29 14:33:13 +01:00
parent 15cd2a6e7f
commit 01b4f1ef66
5 changed files with 45 additions and 10 deletions

View File

@ -142,7 +142,6 @@ export const creations: CreationInterface[] = [
memo: '#Hexen',
contributionDate: nMonthsBefore(new Date()),
confirmed: true,
moveCreationDate: 12,
},
...bobsTransactions,
{

View File

@ -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
}

View File

@ -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

View File

@ -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()

View File

@ -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),
}