fix what don't work

This commit is contained in:
Einhornimmond 2021-09-27 19:52:46 +02:00
parent 06c80ebdfd
commit 0d33202946
8 changed files with 18 additions and 19 deletions

View File

@ -5,8 +5,7 @@ import { Transaction } from '../../typeorm/entity/Transaction'
@ObjectType()
export class Decay {
constructor()
constructor(json?: any) {
constructor(json: any) {
if (json) {
this.balance = Number(json.balance)
this.decayStart = json.decay_start

View File

@ -18,7 +18,7 @@ export class Transaction {
this.balance = Number(json.balance)
this.decayStart = json.decay_start
this.decayEnd = json.decay_end
this.decayDuration = parseFloat(json.decay_duration)
this.memo = json.memo
this.transactionId = json.transaction_id
this.name = json.name

View File

@ -7,7 +7,7 @@ import { Balance } from '../models/Balance'
import { apiGet } from '../../apis/HttpRequest'
import { User as dbUser } from '../../typeorm/entity/User'
import { Balance as dbBalance } from '../../typeorm/entity/Balance'
import calculateDecay from '../../util/decay'
import { calculateDecay } from '../../util/decay'
import { roundFloorFrom4 } from '../../util/round'
@Resolver()

View File

@ -10,7 +10,7 @@ import { User as dbUser } from '../../typeorm/entity/User'
import { Balance as dbBalance } from '../../typeorm/entity/Balance'
import listTransactions from './listTransactions'
import { roundFloorFrom4 } from '../../util/round'
import calculateDecay from '../../util/decay'
import { calculateDecay } from '../../util/decay'
@Resolver()
export class TransactionResolver {
@ -41,7 +41,7 @@ export class TransactionResolver {
const now = new Date()
transactions.balance = roundFloorFrom4(balanceEntity.amount)
transactions.decay = roundFloorFrom4(
calculateDecay(balanceEntity.amount, balanceEntity.recordDate, now),
await calculateDecay(balanceEntity.amount, balanceEntity.recordDate, now),
)
transactions.decayDate = now.toString()

View File

@ -12,7 +12,7 @@ async function calculateAndAddDecayTransactions(
decay: boolean,
skipFirstTransaction: boolean,
): Promise<Transaction[]> {
const finalTransactions: Transaction[] = []
let finalTransactions: Transaction[] = []
const transactionIds: number[] = []
const involvedUserIds: number[] = []
@ -29,14 +29,14 @@ async function calculateAndAddDecayTransactions(
.createQueryBuilder('transaction')
.where('transaction.id IN (:...transactions)', { transactions: transactionIds })
.leftJoinAndSelect(
'transaction.sendCoin',
'transactionSendCoin',
'transactionSendCoin.transactionid = transaction.id',
'transaction.transactionSendCoin',
'transactionSendCoin'
//'transactionSendCoin.transaction_id = transaction.id',
)
.leftJoinAndSelect(
'transaction.creation',
'transactionCreation',
'transactionSendCoin.transactionid = transaction.id',
'transaction.transactionCreation',
'transactionCreation'
//'transactionSendCoin.transaction_id = transaction.id',
)
.getMany()
@ -47,7 +47,7 @@ async function calculateAndAddDecayTransactions(
const decayStartTransaction = await Decay.getDecayStartBlock()
userTransactions.forEach(async (userTransaction: dbUserTransaction, i: number) => {
await userTransactions.forEach(async (userTransaction: dbUserTransaction, i: number) => {
const transaction = transactionIndiced[userTransaction.transactionId]
const finalTransaction = new Transaction()
finalTransaction.transactionId = transaction.id
@ -117,6 +117,7 @@ async function calculateAndAddDecayTransactions(
if (i > 0 || !skipFirstTransaction) {
finalTransactions.push(finalTransaction)
}
if (i === userTransactions.length - 1 && decay) {
const now = new Date()
const decay = await calculateDecayWithInterval(
@ -135,7 +136,6 @@ async function calculateAndAddDecayTransactions(
finalTransactions.push(decayTransaction)
}
}
return finalTransactions
})
return finalTransactions
@ -176,7 +176,7 @@ export default async function listTransactions(
user,
decay,
skipFirstTransaction,
)
)
if (order === 'DESC') {
transactions = transactions.reverse()
}

View File

@ -27,6 +27,6 @@ export class TransactionCreation extends BaseEntity {
targetDate: Timestamp
@OneToOne(() => Transaction)
@JoinColumn()
@JoinColumn({ name: 'transaction_id' })
transaction: Transaction
}

View File

@ -25,6 +25,6 @@ export class TransactionSendCoin extends BaseEntity {
amount: number
@OneToOne(() => Transaction)
@JoinColumn()
@JoinColumn({ name: 'transaction_id' })
transaction: Transaction
}

View File

@ -21,7 +21,7 @@ async function calculateDecayWithInterval(
to: number,
): Promise<Decay> {
const decayStartBlock = await Decay.getDecayStartBlock()
const result = new Decay()
const result = new Decay(undefined)
result.balance = amount
result.decayStart = from
result.decayEnd = from