Skip to content

Commit

Permalink
add new filter to getNFTs, fix history
Browse files Browse the repository at this point in the history
  • Loading branch information
Leouarz committed Feb 4, 2022
1 parent be7d59f commit c18198b
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 18 deletions.
23 changes: 13 additions & 10 deletions src/api/services/gqlQueriesBuilder.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,13 +36,18 @@ export class GQLQueriesBuilder {
${query.filter?.series ? `{serieId: { in: ${JSON.stringify(query.filter.series)} }}` : ""}
${query.filter?.creator ? `{creator: {equalTo: "${query.filter.creator}"}}` : ""}
${query.filter?.isCapsule !== undefined ? `{isCapsule: {isEqual: ${query.filter.isCapsule}}}` : ""}
${query.filter?.price !== undefined ?
`{price:
{${query.filter?.priceFilter ? query.filter.priceFilter : "isEqual"}: "${query.filter.price}"}
}`
:
""
}
${query.filter?.priceStartRange !== undefined ?
`{priceRounded: {greaterThanOrEqualTo: "${query.filter.priceStartRange}"}}`
: ""}
${query.filter?.priceEndRange !== undefined ?
`{priceRounded: {lessThanOrEqualTo: "${query.filter.priceEndRange}"}}`
: ""}
${query.filter?.timestampCreateStartRange !== undefined ?
`{timestampCreate: {greaterThanOrEqualTo: "${query.filter.timestampCreateStartRange}"}}`
: ""}
${query.filter?.timestampCreateEndRange !== undefined ?
`{timestampCreate: {lessThanOrEqualTo: "${query.filter.timestampCreateEndRange}"}}`
: ""}
]
}
${query.filter?.owner ? `owner: "${query.filter.owner}"` : ""}
Expand Down Expand Up @@ -254,9 +259,7 @@ export class GQLQueriesBuilder {
timestamp
typeOfTransaction
amount
extrinsic{
id
}
extrinsicId
}
}
}
Expand Down
20 changes: 12 additions & 8 deletions src/api/validators/nftValidators.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ export type NFTsQuery = {
limit?: number
}
sort?: string
sortMongo?: string
sortOffchain?: string
filter?: {
ids?: string[]
idsToExclude?: string[]
Expand All @@ -21,14 +21,16 @@ export type NFTsQuery = {
categories?: string[]
owner?: string
creator?: string
price?: string
priceFilter?: string
priceStartRange?: string
priceEndRange?: string
timestampCreateStartRange?: string,
timestampCreateEndRange?: string,
seriesLocked?: boolean
isCapsule?: boolean
}
}
export const validationGetNFTs = (query: any) => {
const { sort, sortMongo } = query
const { sort, sortOffchain } = query
let { pagination, filter } = query;
if (pagination) pagination = JSON.parse(pagination);
if (filter) filter = JSON.parse(filter);
Expand All @@ -38,7 +40,7 @@ export const validationGetNFTs = (query: any) => {
limit: Joi.number().integer().min(0).max(LIMIT_MAX_PAGINATION),
}),
sort: Joi.string().regex(/[a-zA-Z]{1,}:[a-zA-Z]{1,},{0,1}/),
sortMongo: Joi.string(),
sortOffchain: Joi.string(),
filter: Joi.object({
ids: Joi.array().items(Joi.number().integer().min(0)),
idsToExclude: Joi.array().items(Joi.number().integer().min(0)),
Expand All @@ -49,13 +51,15 @@ export const validationGetNFTs = (query: any) => {
categories: Joi.array().items(Joi.string()),
owner: Joi.string(),
creator: Joi.string(),
price: Joi.string(),
priceFilter: Joi.string(),
priceStartRange: Joi.string(),
priceEndRange: Joi.string(),
timestampCreateStartRange: Joi.string(),
timestampCreateEndRange: Joi.string(),
seriesLocked: Joi.boolean(),
isCapsule: Joi.boolean(),
}),
})
return validateQuery(validationSchema, { pagination, sort, sortMongo, filter }) as NFTsQuery;
return validateQuery(validationSchema, { pagination, sort, sortOffchain, filter }) as NFTsQuery;
}


Expand Down

0 comments on commit c18198b

Please sign in to comment.