1
0
mirror of https://github.com/oceanprotocol/market.git synced 2024-06-30 05:41:41 +02:00

Restore profile header and downloads tab (#1129)

* show results

* sales number displayed correctly

* get downloads

* use totalSales parameter

* fixes

* sum sales fix

Co-authored-by: ClaudiaHolhos <claudia@oceanprotocol.com>
This commit is contained in:
claudiaHash 2022-02-21 17:15:33 +02:00 committed by GitHub
parent c1ab042c5e
commit db7ae82f4a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 32 additions and 30 deletions

View File

@ -220,18 +220,14 @@ function ProfileProvider({
async (cancelToken: CancelToken) => { async (cancelToken: CancelToken) => {
if (!accountId || !chainIds) return if (!accountId || !chainIds) return
const didList: string[] = [] const dtList: string[] = []
const tokenOrders = await getUserTokenOrders(accountId, chainIds) const tokenOrders = await getUserTokenOrders(accountId, chainIds)
for (let i = 0; i < tokenOrders?.length; i++) { for (let i = 0; i < tokenOrders?.length; i++) {
const did = web3.utils dtList.push(tokenOrders[i].datatoken.address)
.toChecksumAddress(tokenOrders[i].datatoken.address)
.replace('0x', 'did:op:')
didList.push(did)
} }
const downloads = await getDownloadAssets( const downloads = await getDownloadAssets(
didList, dtList,
tokenOrders, tokenOrders,
chainIds, chainIds,
cancelToken cancelToken

View File

@ -332,22 +332,21 @@ export async function getPublishedAssets(
} }
export async function getDownloadAssets( export async function getDownloadAssets(
didList: string[], dtList: string[],
tokenOrders: OrdersData[], tokenOrders: OrdersData[],
chainIds: number[], chainIds: number[],
cancelToken: CancelToken cancelToken: CancelToken
): Promise<DownloadedAsset[]> { ): Promise<DownloadedAsset[]> {
try {
const baseQueryparams = { const baseQueryparams = {
chainIds, chainIds,
filters: [ filters: [
getFilterTerm('_id', didList), getFilterTerm('services.datatokenAddress', dtList),
getFilterTerm('service.type', 'access') getFilterTerm('services.type', 'access')
] ]
} as BaseQueryParams } as BaseQueryParams
const query = generateBaseQuery(baseQueryparams) const query = generateBaseQuery(baseQueryparams)
try {
const result = await queryMetadata(query, cancelToken) const result = await queryMetadata(query, cancelToken)
const downloadedAssets: DownloadedAsset[] = result.results const downloadedAssets: DownloadedAsset[] = result.results
.map((asset) => { .map((asset) => {
const order = tokenOrders.find( const order = tokenOrders.find(
@ -367,6 +366,10 @@ export async function getDownloadAssets(
return downloadedAssets return downloadedAssets
} catch (error) { } catch (error) {
if (axios.isCancel(error)) {
LoggerInstance.log(error.message)
} else {
LoggerInstance.error(error.message) LoggerInstance.error(error.message)
} }
}
} }

View File

@ -12,7 +12,10 @@ import {
PoolShares as PoolSharesList, PoolShares as PoolSharesList,
PoolShares_poolShares as PoolShare PoolShares_poolShares as PoolShare
} from '../@types/subgraph/PoolShares' } from '../@types/subgraph/PoolShares'
import { OrdersData_orders as OrdersData } from '../@types/subgraph/OrdersData' import {
OrdersData_orders as OrdersData,
OrdersData_orders_datatoken as OrdersDatatoken
} from '../@types/subgraph/OrdersData'
import { UserSalesQuery as UsersSalesList } from '../@types/subgraph/UserSalesQuery' import { UserSalesQuery as UsersSalesList } from '../@types/subgraph/UserSalesQuery'
export interface UserLiquidity { export interface UserLiquidity {
@ -141,7 +144,11 @@ const UserTokenOrders = gql`
orderDirection: desc orderDirection: desc
where: { consumer: $user } where: { consumer: $user }
) { ) {
consumer {
id
}
datatoken { datatoken {
id
address address
symbol symbol
} }
@ -155,14 +162,11 @@ const UserTokenOrders = gql`
} }
` `
// TODO: counting orders might be enough here to get sales for a user
const UserSalesQuery = gql` const UserSalesQuery = gql`
query UserSalesQuery($userSalesId: ID) { query UserSalesQuery($user: String!) {
users(where: { id: $userSalesId }) { users(where: { id: $user }) {
id id
orders(first: 10000) { totalSales
id
}
} }
} }
` `
@ -378,9 +382,8 @@ export async function getUserTokenOrders(
variables, variables,
chainIds chainIds
) )
for (let i = 0; i < tokenOrders?.length; i++) { for (let i = 0; i < tokenOrders?.length; i++) {
tokenOrders[i].tokenOrders.forEach((tokenOrder: OrdersData) => { tokenOrders[i].orders.forEach((tokenOrder: OrdersData) => {
data.push(tokenOrder) data.push(tokenOrder)
}) })
} }
@ -395,7 +398,7 @@ export async function getUserSales(
accountId: string, accountId: string,
chainIds: number[] chainIds: number[]
): Promise<number> { ): Promise<number> {
const variables = { userSalesId: accountId?.toLowerCase() } const variables = { user: accountId?.toLowerCase() }
try { try {
const userSales = await fetchDataForMultipleChains( const userSales = await fetchDataForMultipleChains(
UserSalesQuery, UserSalesQuery,
@ -405,7 +408,7 @@ export async function getUserSales(
let salesSum = 0 let salesSum = 0
for (let i = 0; i < userSales.length; i++) { for (let i = 0; i < userSales.length; i++) {
if (userSales[i].users.length > 0) { if (userSales[i].users.length > 0) {
salesSum += userSales[i].users[0].nrSales salesSum += parseInt(userSales[i].users[0].totalSales)
} }
} }
return salesSum return salesSum
@ -434,7 +437,7 @@ export async function getTopAssetsPublishers(
if (publishersIndex === -1) { if (publishersIndex === -1) {
const publisher: AccountTeaserVM = { const publisher: AccountTeaserVM = {
address: fetchedUsers.data.users[i].id, address: fetchedUsers.data.users[i].id,
nrSales: fetchedUsers.data.users[i].orders.length nrSales: fetchedUsers.data.users[i].totalSales
} }
publisherSales.push(publisher) publisherSales.push(publisher)
} else { } else {