Skip to content

Commit

Permalink
fix: /explorer endpoint rarity sorting by adding exotic (#358)
Browse files Browse the repository at this point in the history
  • Loading branch information
aleortega authored Aug 23, 2024
1 parent 449d72f commit 00429bf
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 11 deletions.
6 changes: 3 additions & 3 deletions src/controllers/handlers/items-commons.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { EmoteCategory, WearableCategory } from '@dcl/schemas'
import { RARITIES } from '../../logic/utils'
import { EmoteCategory, Rarity, WearableCategory } from '@dcl/schemas'
import { SORTED_RARITIES } from '../../logic/utils'
import { InvalidRequestError } from '../../types'

export type FilterableItem = {
Expand All @@ -15,7 +15,7 @@ export function createFilters(url: URL): (item: FilterableItem) => boolean {
const name = url.searchParams.has('name') ? url.searchParams.get('name')!.toLowerCase() : undefined
const rarity = url.searchParams.has('rarity') ? url.searchParams.get('rarity')!.toLowerCase() : undefined

if (rarity && !RARITIES.includes(rarity)) {
if (rarity && !SORTED_RARITIES.includes(rarity as Rarity)) {
throw new InvalidRequestError(`Invalid rarity requested: '${rarity}'.`)
}

Expand Down
6 changes: 3 additions & 3 deletions src/logic/sorting.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import { RARITIES } from './utils'
import { SORTED_RARITIES } from './utils'
import { HasDate, HasName, HasRarity, HasUrn, InvalidRequestError, SortingFunction } from '../types'

function byUrn(item1: HasUrn, item2: HasUrn): number {
return item1.urn.localeCompare(item2.urn)
}

export function compareByRarity<T extends HasRarity>(item1: T, item2: T) {
const w1RarityValue = RARITIES.findIndex((rarity) => rarity === item1.rarity)
const w2RarityValue = RARITIES.findIndex((rarity) => rarity === item2.rarity)
const w1RarityValue = SORTED_RARITIES.findIndex((rarity) => rarity === item1.rarity)
const w2RarityValue = SORTED_RARITIES.findIndex((rarity) => rarity === item2.rarity)
return w2RarityValue - w1RarityValue
}

Expand Down
12 changes: 11 additions & 1 deletion src/logic/utils.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,17 @@
import { parseUrn as resolverParseUrn } from '@dcl/urn-resolver'
import { ThirdPartyProvider } from '../types'
import { Rarity } from '@dcl/schemas'

export const RARITIES = ['common', 'uncommon', 'rare', 'epic', 'legendary', 'mythic', 'unique']
export const SORTED_RARITIES = [
Rarity.COMMON,
Rarity.UNCOMMON,
Rarity.RARE,
Rarity.EPIC,
Rarity.LEGENDARY,
Rarity.EXOTIC,
Rarity.MYTHIC,
Rarity.UNIQUE
]

export async function parseUrn(urn: string) {
try {
Expand Down
4 changes: 2 additions & 2 deletions test/integration/emotes-handler.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { EmoteCategory, Entity } from '@dcl/schemas'
import { extractEmoteDefinitionFromEntity } from '../../src/adapters/definitions'
import { EmoteFromQuery } from '../../src/logic/fetch-elements/fetch-items'
import { leastRare, nameAZ, nameZA, rarest } from '../../src/logic/sorting'
import { RARITIES } from '../../src/logic/utils'
import { SORTED_RARITIES } from '../../src/logic/utils'
import { OnChainEmoteResponse } from '../../src/types'
import { test } from '../components'
import { generateEmoteContentDefinitions, generateEmotes } from '../data/emotes'
Expand Down Expand Up @@ -346,7 +346,7 @@ test('emotes-handler: GET /users/:address/emotes should', function ({ components
...w,
item: {
...w.item,
rarity: RARITIES[i % RARITIES.length]
rarity: SORTED_RARITIES[i % SORTED_RARITIES.length]
}
}))

Expand Down
4 changes: 2 additions & 2 deletions test/integration/wearables-handler.spec.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { Entity, WearableCategory } from '@dcl/schemas'
import { extractWearableDefinitionFromEntity } from '../../src/adapters/definitions'
import { WearableFromQuery } from '../../src/logic/fetch-elements/fetch-items'
import { RARITIES } from '../../src/logic/utils'
import { SORTED_RARITIES } from '../../src/logic/utils'
import { OnChainWearableResponse } from '../../src/types'
import { test } from '../components'
import { generateWearableEntities, generateWearables } from '../data/wearables'
Expand Down Expand Up @@ -502,7 +502,7 @@ test('wearables-handler: GET /users/:address/wearables should', function ({ comp
...w,
item: {
...w.item,
rarity: RARITIES[i % RARITIES.length]
rarity: SORTED_RARITIES[i % SORTED_RARITIES.length]
}
}))

Expand Down

0 comments on commit 00429bf

Please sign in to comment.