Skip to content

Commit 10f1b75

Browse files
committed
Fixing fetchRandomArtworkwithuser
1 parent 715af3d commit 10f1b75

File tree

3 files changed

+28
-23
lines changed

3 files changed

+28
-23
lines changed

README.md

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -354,18 +354,20 @@ fetchUserByUsername('t8').then((result) => {
354354
### Fetching random artwork with owner information
355355

356356
**Signature**:
357-
`fetchRandomArtworkWithUser = async (): Promise<ArtworkOwner>`
357+
`fetchRandomArtworkWithUser = async (amount?: number): Promise<Array<ArtworkOwner>>`
358358

359359
**Usage**:
360360
```typescript
361361
import { fetchRandomArtworkWithUser } from 'verto-cache-interface';
362362

363-
fetchRandomArtworkWithUser().then((result) => {
364-
console.log('Artwork ID ', result.id);
365-
console.log('Name ', result.name);
366-
console.log('Type ', result.type);
367-
console.log('Images ', result.images);
368-
console.log('Owner username ', result.owner.username);
363+
fetchRandomArtworkWithUser().then((arts) => {
364+
arts.forEach(result => {
365+
console.log('Artwork ID ', result.id);
366+
console.log('Name ', result.name);
367+
console.log('Type ', result.type);
368+
console.log('Images ', result.images);
369+
console.log('Owner username ', result.owner.username);
370+
});
369371
})
370372
```
371373

src/calls/fetch-random-artwork-with-user.ts

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,24 +11,26 @@ interface ArtworkOwner {
1111
owner: CommunityContractPeople
1212
}
1313

14-
export const fetchRandomArtworkWithUser = async (amount?: number): Promise<ArtworkOwner | undefined> => {
15-
const artwork = (await fetchRandomArtwork(amount || 1))?.entities?.[0];
14+
export const fetchRandomArtworkWithUser = async (amount?: number): Promise<Array<ArtworkOwner>> => {
15+
const artwork = (await fetchRandomArtwork(amount || 4))?.entities || [];
16+
const result: Array<ArtworkOwner> = [];
1617

17-
if (artwork) {
18-
const artworkId = artwork.contractId;
18+
for (let artworkElement of artwork) {
19+
const artworkId = artworkElement.contractId;
1920
const artworkState = (await fetchContract(artworkId))?.state;
2021
if(artworkState) {
21-
const owner = await fetchUserByUsername(artwork.lister);
22+
const owner = await fetchUserByUsername(artworkElement.lister);
2223
if(owner) {
23-
return {
24+
result.push({
2425
id: artworkId,
2526
name: artworkState.name,
26-
type: artwork.type,
27-
images: (artwork.type === "collection" && artworkState.items.slice(0, 3)) || [],
27+
type: artworkElement.type,
28+
images: (artworkElement.type === "collection" && artworkState?.items?.slice(0, 3)) || [],
2829
owner
29-
}
30+
});
3031
}
3132
}
3233
}
3334

35+
return result;
3436
}

src/tests/api.test.ts

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -139,14 +139,15 @@ describe("API test", () => {
139139
});
140140

141141
test("Fetch random artwork with user", async () => {
142-
const tokenArtwork = await fetchRandomArtworkWithUser(1);
143-
expect(tokenArtwork!.id).not.toBeUndefined();
144-
expect(tokenArtwork!.name).not.toBeUndefined();
145-
if(tokenArtwork!.type === "collection") {
146-
expect(tokenArtwork!.images).not.toBeUndefined();
147-
expect(tokenArtwork!.images.length).toBeGreaterThanOrEqual(1);
142+
const tokenArtwork = await fetchRandomArtworkWithUser();
143+
expect(tokenArtwork.length).toBeGreaterThanOrEqual(4);
144+
expect(tokenArtwork[0]!.id).not.toBeUndefined();
145+
expect(tokenArtwork[0]!.name).not.toBeUndefined();
146+
if(tokenArtwork[0]!.type === "collection") {
147+
expect(tokenArtwork[0]!.images).not.toBeUndefined();
148+
expect(tokenArtwork[0]!.images.length).toBeGreaterThanOrEqual(1);
148149
}
149-
expect(tokenArtwork!.owner.username).not.toBeUndefined();
150+
expect(tokenArtwork[0]!.owner.username).not.toBeUndefined();
150151
});
151152

152153
test("Fetch artwork metadata", async () => {

0 commit comments

Comments
 (0)