mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
Change the transactionList query so we can get only creation and get the list for specific users.
This commit is contained in:
parent
9bc13c39a6
commit
75cbea2321
@ -5,55 +5,40 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
|
import { transactionList } from '../graphql/transactionList'
|
||||||
export default {
|
export default {
|
||||||
name: 'CreationTransactionList',
|
name: 'CreationTransactionList',
|
||||||
|
props: {
|
||||||
|
userId: { type: Number, required: true },
|
||||||
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
items: [
|
items: [],
|
||||||
{
|
|
||||||
gdd: 700,
|
|
||||||
date: '16.11.2021',
|
|
||||||
memo: 'klaljk jakldasjd lajlaldjalajsd aasj asdl jaljaldj aa jda l jdla jda',
|
|
||||||
moderator: 'Moderator Eins',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
gdd: 800,
|
|
||||||
date: '23.10.2021',
|
|
||||||
memo: 'jij ijdas ijad sa jsd a ijaojodjajd jiaojdja dij aij doa aojd ao jd',
|
|
||||||
moderator: 'Moderator Eins',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
gdd: 1000,
|
|
||||||
date: '13.09.2021',
|
|
||||||
memo: 'asdd d adad adsdadda dsdadadasds asdadada da dadadad adadada d',
|
|
||||||
moderator: 'Moderator Eins',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
gdd: 400,
|
|
||||||
date: '03.07.2021',
|
|
||||||
memo: 'casc acas ac acacacs cac acacac acc acac ca cacac',
|
|
||||||
moderator: 'Moderator Zwei',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
gdd: 210,
|
|
||||||
date: '04.06.2021',
|
|
||||||
memo: 'asc dfdvdvdf vfvd vdfvdff vdvdfvd vff dvfd vdfv dfv dfvdf vdfvdfv',
|
|
||||||
moderator: 'Moderator Eins',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
gdd: 890,
|
|
||||||
date: '07.05.2021',
|
|
||||||
memo: 'reett ttertt etet et et ertetetet et ert et ertertertet',
|
|
||||||
moderator: 'Moderator Eins',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
gdd: 380,
|
|
||||||
date: '22.04.2021',
|
|
||||||
memo: 'bnnbnbbncvbcv bcbcbc bcb cbc bcb cvb cbccvvbcvb bvbcbcbcbc bcb cb',
|
|
||||||
moderator: 'Moderator Zwei',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
methods: {
|
||||||
|
getTransactions() {
|
||||||
|
this.$apollo
|
||||||
|
.query({
|
||||||
|
query: transactionList,
|
||||||
|
variables: {
|
||||||
|
currentPage: 1,
|
||||||
|
pageSize: 25,
|
||||||
|
order: 'DESC',
|
||||||
|
onlyCreations: true,
|
||||||
|
userId: parseInt(this.userId),
|
||||||
|
},
|
||||||
|
})
|
||||||
|
.then((result) => {
|
||||||
|
this.items = result.data.transactionList.transactions
|
||||||
|
})
|
||||||
|
.catch((error) => {
|
||||||
|
console.log('Something went wrong', error)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.getTransactions()
|
||||||
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -125,7 +125,10 @@
|
|||||||
:dateLastSend="$moment().subtract(1, 'month').format('dddd, DD.MMMM.YYYY HH:mm'),"
|
:dateLastSend="$moment().subtract(1, 'month').format('dddd, DD.MMMM.YYYY HH:mm'),"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<creation-transaction-list-formular v-if="showCreationTransactionListFormular" />
|
<creation-transaction-list-formular
|
||||||
|
v-if="showCreationTransactionListFormular"
|
||||||
|
:userId="row.item.userId"
|
||||||
|
/>
|
||||||
|
|
||||||
<b-button size="sm" @click="row.toggleDetails">
|
<b-button size="sm" @click="row.toggleDetails">
|
||||||
<b-icon
|
<b-icon
|
||||||
|
|||||||
@ -3,6 +3,7 @@ import gql from 'graphql-tag'
|
|||||||
export const searchUsers = gql`
|
export const searchUsers = gql`
|
||||||
query ($searchText: String!) {
|
query ($searchText: String!) {
|
||||||
searchUsers(searchText: $searchText) {
|
searchUsers(searchText: $searchText) {
|
||||||
|
userId
|
||||||
firstName
|
firstName
|
||||||
lastName
|
lastName
|
||||||
email
|
email
|
||||||
|
|||||||
44
admin/src/graphql/transactionList.js
Normal file
44
admin/src/graphql/transactionList.js
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
import gql from 'graphql-tag'
|
||||||
|
|
||||||
|
export const transactionList = gql`
|
||||||
|
query (
|
||||||
|
$currentPage: Int = 1
|
||||||
|
$pageSize: Int = 25
|
||||||
|
$order: Order = DESC
|
||||||
|
$onlyCreations: Boolean = false
|
||||||
|
$userId: Int = null
|
||||||
|
) {
|
||||||
|
transactionList(
|
||||||
|
currentPage: $currentPage
|
||||||
|
pageSize: $pageSize
|
||||||
|
order: $order
|
||||||
|
onlyCreations: $onlyCreations
|
||||||
|
userId: $userId
|
||||||
|
) {
|
||||||
|
gdtSum
|
||||||
|
count
|
||||||
|
balance
|
||||||
|
decay
|
||||||
|
decayDate
|
||||||
|
transactions {
|
||||||
|
type
|
||||||
|
balance
|
||||||
|
decayStart
|
||||||
|
decayEnd
|
||||||
|
decayDuration
|
||||||
|
memo
|
||||||
|
transactionId
|
||||||
|
name
|
||||||
|
email
|
||||||
|
date
|
||||||
|
decay {
|
||||||
|
balance
|
||||||
|
decayStart
|
||||||
|
decayEnd
|
||||||
|
decayDuration
|
||||||
|
decayStartBlock
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
`
|
||||||
@ -11,4 +11,10 @@ export default class Paginated {
|
|||||||
|
|
||||||
@Field(() => Order, { nullable: true })
|
@Field(() => Order, { nullable: true })
|
||||||
order?: Order
|
order?: Order
|
||||||
|
|
||||||
|
@Field(() => Boolean, { nullable: true })
|
||||||
|
onlyCreations?: boolean
|
||||||
|
|
||||||
|
@Field(() => Int, { nullable: true })
|
||||||
|
userId?: number
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,6 +2,9 @@ import { ObjectType, Field } from 'type-graphql'
|
|||||||
|
|
||||||
@ObjectType()
|
@ObjectType()
|
||||||
export class UserAdmin {
|
export class UserAdmin {
|
||||||
|
@Field(() => Number)
|
||||||
|
userId: number
|
||||||
|
|
||||||
@Field(() => String)
|
@Field(() => String)
|
||||||
email: string
|
email: string
|
||||||
|
|
||||||
|
|||||||
@ -29,6 +29,7 @@ export class AdminResolver {
|
|||||||
const adminUsers = await Promise.all(
|
const adminUsers = await Promise.all(
|
||||||
users.map(async (user) => {
|
users.map(async (user) => {
|
||||||
const adminUser = new UserAdmin()
|
const adminUser = new UserAdmin()
|
||||||
|
adminUser.userId = user.id
|
||||||
adminUser.firstName = user.firstName
|
adminUser.firstName = user.firstName
|
||||||
adminUser.lastName = user.lastName
|
adminUser.lastName = user.lastName
|
||||||
adminUser.email = user.email
|
adminUser.email = user.email
|
||||||
|
|||||||
@ -340,6 +340,7 @@ async function listTransactions(
|
|||||||
pageSize: number,
|
pageSize: number,
|
||||||
order: Order,
|
order: Order,
|
||||||
user: dbUser,
|
user: dbUser,
|
||||||
|
onlyCreations: boolean,
|
||||||
): Promise<TransactionList> {
|
): Promise<TransactionList> {
|
||||||
let limit = pageSize
|
let limit = pageSize
|
||||||
let offset = 0
|
let offset = 0
|
||||||
@ -379,6 +380,14 @@ async function listTransactions(
|
|||||||
|
|
||||||
const transactionList = new TransactionList()
|
const transactionList = new TransactionList()
|
||||||
transactionList.count = userTransactionsCount
|
transactionList.count = userTransactionsCount
|
||||||
|
if (onlyCreations) {
|
||||||
|
console.log('before filtering', transactions)
|
||||||
|
transactions = transactions.filter((transaction) => {
|
||||||
|
console.log('In filter', transaction)
|
||||||
|
return transaction.type === 'creation'
|
||||||
|
})
|
||||||
|
console.log('after filtering', transactions)
|
||||||
|
}
|
||||||
transactionList.transactions = transactions
|
transactionList.transactions = transactions
|
||||||
return transactionList
|
return transactionList
|
||||||
}
|
}
|
||||||
@ -469,14 +478,33 @@ export class TransactionResolver {
|
|||||||
@Authorized([RIGHTS.TRANSACTION_LIST])
|
@Authorized([RIGHTS.TRANSACTION_LIST])
|
||||||
@Query(() => TransactionList)
|
@Query(() => TransactionList)
|
||||||
async transactionList(
|
async transactionList(
|
||||||
@Args() { currentPage = 1, pageSize = 25, order = Order.DESC }: Paginated,
|
@Args()
|
||||||
|
{
|
||||||
|
currentPage = 1,
|
||||||
|
pageSize = 25,
|
||||||
|
order = Order.DESC,
|
||||||
|
onlyCreations = false,
|
||||||
|
userId,
|
||||||
|
}: Paginated,
|
||||||
@Ctx() context: any,
|
@Ctx() context: any,
|
||||||
): Promise<TransactionList> {
|
): Promise<TransactionList> {
|
||||||
// load user
|
// load user
|
||||||
const userRepository = getCustomRepository(UserRepository)
|
const userRepository = getCustomRepository(UserRepository)
|
||||||
const userEntity = await userRepository.findByPubkeyHex(context.pubKey)
|
let userEntity: dbUser | undefined
|
||||||
|
if (userId) {
|
||||||
|
console.log('Find by id, ', userId)
|
||||||
|
userEntity = await userRepository.findOneOrFail({ id: userId })
|
||||||
|
} else {
|
||||||
|
userEntity = await userRepository.findByPubkeyHex(context.pubKey)
|
||||||
|
}
|
||||||
|
|
||||||
const transactions = await listTransactions(currentPage, pageSize, order, userEntity)
|
const transactions = await listTransactions(
|
||||||
|
currentPage,
|
||||||
|
pageSize,
|
||||||
|
order,
|
||||||
|
userEntity,
|
||||||
|
onlyCreations,
|
||||||
|
)
|
||||||
|
|
||||||
// get gdt sum
|
// get gdt sum
|
||||||
const resultGDTSum = await apiPost(`${CONFIG.GDT_API_URL}/GdtEntries/sumPerEmailApi`, {
|
const resultGDTSum = await apiPost(`${CONFIG.GDT_API_URL}/GdtEntries/sumPerEmailApi`, {
|
||||||
|
|||||||
@ -47,8 +47,18 @@ export const logout = gql`
|
|||||||
`
|
`
|
||||||
|
|
||||||
export const transactionsQuery = gql`
|
export const transactionsQuery = gql`
|
||||||
query($currentPage: Int = 1, $pageSize: Int = 25, $order: Order = DESC) {
|
query(
|
||||||
transactionList(currentPage: $currentPage, pageSize: $pageSize, order: $order) {
|
$currentPage: Int = 1
|
||||||
|
$pageSize: Int = 25
|
||||||
|
$order: Order = DESC
|
||||||
|
$onlyCreations: Boolean = false
|
||||||
|
) {
|
||||||
|
transactionList(
|
||||||
|
currentPage: $currentPage
|
||||||
|
pageSize: $pageSize
|
||||||
|
order: $order
|
||||||
|
onlyCreations: $onlyCreations
|
||||||
|
) {
|
||||||
gdtSum
|
gdtSum
|
||||||
count
|
count
|
||||||
balance
|
balance
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user