fix: improve error handling in fetchWeatherDetails method

This commit is contained in:
faris Aljohari
2025-06-04 01:08:33 -06:00
parent 4a984ae5dd
commit cd3e9016f2
2 changed files with 42 additions and 32 deletions

View File

@ -213,8 +213,8 @@ export class SpaceService {
{ incomingConnectionDisabled: false },
)
.leftJoinAndSelect('space.productAllocations', 'productAllocations')
.leftJoinAndSelect('productAllocations.tags', 'tags')
.leftJoinAndSelect('tags.product', 'tagProduct')
// .leftJoinAndSelect('productAllocations.tags', 'tags')
// .leftJoinAndSelect('productAllocations.product', 'product')
.leftJoinAndSelect(
'space.subspaces',
'subspaces',
@ -225,8 +225,11 @@ export class SpaceService {
'subspaces.productAllocations',
'subspaceProductAllocations',
)
.leftJoinAndSelect('subspaceProductAllocations.tags', 'subspaceTags')
.leftJoinAndSelect('subspaceTags.product', 'subspaceTagProduct')
// .leftJoinAndSelect('subspaceProductAllocations.tags', 'subspaceTag')
// .leftJoinAndSelect(
// 'subspaceProductAllocations.product',
// 'subspaceProduct',
// )
.leftJoinAndSelect('space.spaceModel', 'spaceModel')
.where('space.community_id = :communityUuid', { communityUuid })
.andWhere('space.spaceName != :orphanSpaceName', {
@ -264,9 +267,7 @@ export class SpaceService {
}),
);
}
const transformedSpaces = spaces.map(this.transformSpace);
const spaceHierarchy = this.buildSpaceHierarchy(transformedSpaces);
const spaceHierarchy = this.buildSpaceHierarchy(spaces);
return new SuccessResponseDto({
message: `Spaces in community ${communityUuid} successfully fetched in hierarchy`,
@ -326,13 +327,13 @@ export class SpaceService {
'incomingConnections.disabled = :incomingConnectionDisabled',
{ incomingConnectionDisabled: false },
)
.leftJoinAndSelect(
'space.tags',
'tags',
'tags.disabled = :tagDisabled',
{ tagDisabled: false },
)
.leftJoinAndSelect('tags.product', 'tagProduct')
// .leftJoinAndSelect(
// 'space.tags',
// 'tags',
// 'tags.disabled = :tagDisabled',
// { tagDisabled: false },
// )
// .leftJoinAndSelect('tags.product', 'tagProduct')
.leftJoinAndSelect(
'space.subspaces',
'subspaces',
@ -345,7 +346,7 @@ export class SpaceService {
'subspaceTags.disabled = :subspaceTagsDisabled',
{ subspaceTagsDisabled: false },
)
.leftJoinAndSelect('subspaceTags.product', 'subspaceTagProduct')
// .leftJoinAndSelect('subspaceTags.product', 'subspaceTagProduct')
.where('space.community_id = :communityUuid', { communityUuid })
.andWhere('space.spaceName != :orphanSpaceName', {
orphanSpaceName: ORPHAN_SPACE_NAME,

View File

@ -1,4 +1,4 @@
import { HttpStatus, Injectable } from '@nestjs/common';
import { HttpException, HttpStatus, Injectable } from '@nestjs/common';
import { HttpService } from '@nestjs/axios';
import { ConfigService } from '@nestjs/config';
import { firstValueFrom } from 'rxjs';
@ -17,6 +17,7 @@ export class WeatherService {
async fetchWeatherDetails(
query: GetWeatherDetailsDto,
): Promise<BaseResponseDto> {
try {
const { lat, lon } = query;
const weatherApiKey = this.configService.get<string>(
'OPEN_WEATHER_MAP_API_KEY',
@ -35,5 +36,13 @@ export class WeatherService {
},
statusCode: HttpStatus.OK,
});
} catch (error) {
console.log(`Error fetching weather data: ${error}`);
throw new HttpException(
`Wrong latitude or longitude provided`,
error.response?.status || HttpStatus.INTERNAL_SERVER_ERROR,
);
}
}
}