Skip to content

Commit

Permalink
fix: make artist fields nullable
Browse files Browse the repository at this point in the history
  • Loading branch information
sumitkolhe committed Mar 30, 2024
1 parent 3128fe9 commit 4787ce9
Show file tree
Hide file tree
Showing 2 changed files with 69 additions and 52 deletions.
38 changes: 19 additions & 19 deletions src/modules/artists/helpers/artist.helper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,29 +14,29 @@ export const createArtistPayload = (artist: z.infer<typeof ArtistAPIResponseMode
name: artist.name,
url: artist.urls?.overview || artist.perma_url,
type: artist.type,
followerCount: Number(artist.follower_count),
fanCount: artist.fan_count,
isVerified: artist.isVerified,
dominantLanguage: artist.dominantLanguage,
dominantType: artist.dominantType,
bio: artist.bio && JSON.parse(artist.bio),
dob: artist.dob,
fb: artist.fb,
twitter: artist.twitter,
wiki: artist.wiki,
availableLanguages: artist.availableLanguages,
isRadioPresent: artist.isRadioPresent,
followerCount: artist.follower_count ? Number(artist.follower_count) : null,
fanCount: artist.fan_count || null,
isVerified: artist.isVerified || null,
dominantLanguage: artist.dominantLanguage || null,
dominantType: artist.dominantType || null,
bio: artist.bio ? JSON.parse(artist.bio) : null,
dob: artist.dob || null,
fb: artist.fb || null,
twitter: artist.twitter || null,
wiki: artist.wiki || null,
availableLanguages: artist.availableLanguages || null,
isRadioPresent: artist.isRadioPresent || null,
image: createImageLinks(artist.image),
topSongs: artist.topSongs?.map(createSongPayload) || [],
topAlbums: artist.topAlbums?.map(createAlbumPayload) || [],
singles: artist.singles?.map(createSongPayload) || [],
topSongs: artist.topSongs?.map(createSongPayload) || null,
topAlbums: artist.topAlbums?.map(createAlbumPayload) || null,
singles: artist.singles?.map(createSongPayload) || null,
similarArtists:
artist.similarArtists?.map((similarArtist) => ({
id: similarArtist.id,
name: similarArtist.name,
url: similarArtist.perma_url,
image: createImageLinks(similarArtist.image_url),
languages: similarArtist.languages && JSON.parse(similarArtist.languages),
languages: similarArtist.languages ? JSON.parse(similarArtist.languages) : null,
wiki: similarArtist.wiki,
dob: similarArtist.dob,
fb: similarArtist.fb,
Expand All @@ -45,9 +45,9 @@ export const createArtistPayload = (artist: z.infer<typeof ArtistAPIResponseMode
type: similarArtist.type,
dominantType: similarArtist.dominantType,
aka: similarArtist.aka,
bio: similarArtist.bio,
similarArtists: similarArtist.similar && JSON.parse(similarArtist.similar)
})) || []
bio: similarArtist.bio ? JSON.parse(similarArtist.bio) : null,
similarArtists: similarArtist.similar ? JSON.parse(similarArtist.similar) : null
})) || null
})

export const createArtistMapPayload = (
Expand Down
83 changes: 50 additions & 33 deletions src/modules/artists/models/artist.model.ts
Original file line number Diff line number Diff line change
Expand Up @@ -128,38 +128,55 @@ export const ArtistModel = z.object({
url: z.string(),
type: z.string(),
image: z.array(DownloadLinkModel),
followerCount: z.number(),
fanCount: z.string(),
isVerified: z.boolean(),
dominantLanguage: z.string(),
dominantType: z.string(),
bio: z.string(),
dob: z.string(),
fb: z.string(),
twitter: z.string(),
wiki: z.string(),
followerCount: z.number().nullable(),
fanCount: z.string().nullable(),
isVerified: z.boolean().nullable(),
dominantLanguage: z.string().nullable(),
dominantType: z.string().nullable(),
bio: z
.array(
z.object({
text: z.string().nullable(),
title: z.string().nullable(),
sequence: z.number().nullable()
})
)
.nullable(),
dob: z.string().nullable(),
fb: z.string().nullable(),
twitter: z.string().nullable(),
wiki: z.string().nullable(),
availableLanguages: z.array(z.string()),
isRadioPresent: z.boolean(),
topSongs: z.array(SongModel),
topAlbums: z.array(AlbumModel),
singles: z.array(SongModel),
similarArtists: z.array(
z.object({
id: z.string(),
name: z.string(),
url: z.string(),
image: z.array(DownloadLinkModel),
languages: z.string(),
wiki: z.string(),
dob: z.string(),
fb: z.string(),
twitter: z.string(),
isRadioPresent: z.boolean(),
type: z.string(),
dominantType: z.string(),
aka: z.string(),
bio: z.string(),
similarArtists: z.string()
})
)
isRadioPresent: z.boolean().nullable(),
topSongs: z.array(SongModel).nullable(),
topAlbums: z.array(AlbumModel).nullable(),
singles: z.array(SongModel).nullable(),
similarArtists: z
.array(
z.object({
id: z.string(),
name: z.string(),
url: z.string(),
image: z.array(DownloadLinkModel),
languages: z.record(z.string(), z.string()).nullable(),
wiki: z.string(),
dob: z.string(),
fb: z.string(),
twitter: z.string(),
isRadioPresent: z.boolean(),
type: z.string(),
dominantType: z.string(),
aka: z.string(),
bio: z.string().nullable(),
similarArtists: z
.array(
z.object({
id: z.string(),
name: z.string()
})
)
.nullable()
})
)
.nullable()
})

0 comments on commit 4787ce9

Please sign in to comment.