add create project when when new id
This commit is contained in:
parent
d462929d34
commit
0b5da9d3a8
|
@ -4,6 +4,20 @@ import database from '../db'
|
|||
import { getPledges, getAllPledges } from '../utils/pledges'
|
||||
import { getProfilesById } from './profiles'
|
||||
|
||||
export const createPledgeFromFunding = (pledge, newId, amount, oldPledge, project = 0) => {
|
||||
const { owner, token, commitTime, nDelegates, pledgeState, delegates, profile } = oldPledge
|
||||
pledge.idPledge = Number(newId)
|
||||
pledge.owner = Number(owner)
|
||||
pledge.amount = amount
|
||||
pledge.token = token
|
||||
pledge.commitTime = Number(commitTime)
|
||||
pledge.nDelegates = Number(nDelegates)
|
||||
pledge.pledgeState = Number(pledgeState)
|
||||
pledge.intendedProject = Number(project)
|
||||
pledge.delegates = delegates
|
||||
pledge.profile.set(profile)
|
||||
}
|
||||
|
||||
const createPledge = (pledge, data, profiles) => {
|
||||
const { id, owner, amount, blockNumber, token, commitTime, nDelegates, pledgeState, intendedProject, delegates } = data
|
||||
const profile = profiles.find(p => p.idProfile == owner)
|
||||
|
|
|
@ -70,11 +70,11 @@ const SubmissionSection = ({ classes, profiles, delegatePledges, projectId, open
|
|||
if (Array.isArray(Transfer)) {
|
||||
Transfer.forEach(async t => {
|
||||
const { to, amount } = t.returnValues
|
||||
await pledge.transferTo(to, amount)
|
||||
await pledge.transferTo(to, amount, projectId)
|
||||
})
|
||||
} else {
|
||||
const { to, amount } = Transfer.returnValues
|
||||
await pledge.transferTo(to, amount)
|
||||
await pledge.transferTo(to, amount, projectId)
|
||||
}
|
||||
})
|
||||
.catch(e => {
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
import { action, field, relation, json } from '@nozbe/watermelondb/decorators'
|
||||
import { Q } from '@nozbe/watermelondb'
|
||||
import { LiquidModel } from '../utils/models'
|
||||
import { createPledgeFromFunding } from '../actions/pledges'
|
||||
|
||||
const sanitizeValues = json => json
|
||||
export default class Pledge extends LiquidModel {
|
||||
|
@ -21,8 +22,7 @@ export default class Pledge extends LiquidModel {
|
|||
@relation('profiles', 'profile_id') profile
|
||||
@json('delegates', sanitizeValues) delegates
|
||||
|
||||
@action async transferTo(to, amount) {
|
||||
//TODO check if exists then update or create.
|
||||
@action async transferTo(to, amount, projectId) {
|
||||
const toPledgeQuery = await this.collections.get('pledges').query(
|
||||
Q.where('pledge_id', to)
|
||||
).fetch()
|
||||
|
@ -38,6 +38,12 @@ export default class Pledge extends LiquidModel {
|
|||
pledge.amount = (BigInt(pledge.amount) + BigInt(amount)).toString()
|
||||
})
|
||||
)
|
||||
} else {
|
||||
args.push(
|
||||
this.prepareCreate(pledge => {
|
||||
createPledgeFromFunding(pledge, to, amount, this, projectId)
|
||||
})
|
||||
)
|
||||
}
|
||||
await this.batch(...args)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue