diff --git a/src/server/types/Pet.js b/src/server/types/Pet.js index 96aa0b1d..e2baa977 100644 --- a/src/server/types/Pet.js +++ b/src/server/types/Pet.js @@ -26,9 +26,11 @@ const typeDefs = gql` const resolvers = { Pet: { species: ({ customPetData }) => ({ - id: customPetData.custom_pet.species_id, + id: String(customPetData.custom_pet.species_id), + }), + color: ({ customPetData }) => ({ + id: String(customPetData.custom_pet.color_id), }), - color: ({ customPetData }) => ({ id: customPetData.custom_pet.color_id }), pose: ({ customPetData, petMetaData }) => getPoseFromPetData(petMetaData, customPetData), petAppearance: async ( @@ -40,7 +42,9 @@ const resolvers = { speciesId: customPetData.custom_pet.species_id, colorId: customPetData.custom_pet.color_id, }); - const petStates = await petStatesForPetTypeLoader.load(petType.id); + const petStates = petType + ? await petStatesForPetTypeLoader.load(petType.id) + : []; let petState; diff --git a/src/server/types/PetAppearance.js b/src/server/types/PetAppearance.js index a10fcda2..926ce25f 100644 --- a/src/server/types/PetAppearance.js +++ b/src/server/types/PetAppearance.js @@ -121,10 +121,20 @@ const typeDefs = gql` const resolvers = { Color: { name: async ({ id }, _, { colorTranslationLoader }) => { + // TODO: Add colorId=0 to the database? Pets on Neopets.com can have it. + if (id === "0") { + return "Unknown"; + } + const colorTranslation = await colorTranslationLoader.load(id); return capitalize(colorTranslation.name); }, isStandard: async ({ id }, _, { colorLoader }) => { + // TODO: Add colorId=0 to the database? Pets on Neopets.com can have it. + if (id === "0") { + return false; + } + const color = await colorLoader.load(id); return color.standard ? true : false; },