From 71dcf307191a66ed5509c8dffd94cdd58af5491f Mon Sep 17 00:00:00 2001 From: Michael Zetterberg Date: Wed, 24 Jul 2024 11:32:15 +0200 Subject: [PATCH] fix: make sure all logged errors are preceeded with a message Just logging an error makes it difficult to relate the error log to code in the codebase. Error logging a message right before the error itself makes it easier to search the codebase for that error log. --- actions/editProfile.ts | 6 ++- .../preview-current/page.tsx | 1 + app/api/web/revalidate/route.ts | 2 +- auth.ts | 1 + lib/graphql/_request.ts | 1 + lib/graphql/batchRequest.ts | 1 + lib/graphql/previewRequest.ts | 1 + middleware.ts | 2 +- middlewares/webView.ts | 1 + .../routers/contentstack/accountPage/query.ts | 4 +- server/routers/contentstack/base/query.ts | 6 +-- .../routers/contentstack/breadcrumbs/query.ts | 8 ++-- .../routers/contentstack/hotelPage/query.ts | 2 +- .../contentstack/languageSwitcher/query.ts | 4 +- .../routers/contentstack/loyaltyPage/query.ts | 4 +- .../contentstack/myPages/navigation/query.ts | 6 +-- server/routers/hotels/query.ts | 6 +-- server/routers/user/query.ts | 46 +++++++++---------- 18 files changed, 56 insertions(+), 46 deletions(-) diff --git a/actions/editProfile.ts b/actions/editProfile.ts index 39dde0cc5..494609a82 100644 --- a/actions/editProfile.ts +++ b/actions/editProfile.ts @@ -31,6 +31,7 @@ export async function editProfile(_prevState: State, values: FormData) { status: Status.success, } } else { + console.error("Error parsing edit profile") console.error(parsedData.error) return { message: "Invalid data, parse failed!", @@ -39,6 +40,9 @@ export async function editProfile(_prevState: State, values: FormData) { } } catch (error) { if (error instanceof ZodError) { + console.error(`ZodError handling profile edit`) + console.error(error) + return { errors: error.issues.map((issue) => ({ message: `Server validation: ${issue.message}`, @@ -49,7 +53,7 @@ export async function editProfile(_prevState: State, values: FormData) { } } - console.info(`EditProfile Server Action Error`) + console.error(`EditProfile Server Action Error`) console.error(error) return { diff --git a/app/[lang]/(preview-current)/preview-current/page.tsx b/app/[lang]/(preview-current)/preview-current/page.tsx index c6d089247..556e3de53 100644 --- a/app/[lang]/(preview-current)/preview-current/page.tsx +++ b/app/[lang]/(preview-current)/preview-current/page.tsx @@ -35,6 +35,7 @@ export default async function CurrentPreviewPage({ return } catch (error) { // TODO: throw 500 + console.error("Error in current preview page") console.error(error) throw new Error("Something went wrong") } diff --git a/app/api/web/revalidate/route.ts b/app/api/web/revalidate/route.ts index 292de8822..5fd43a0b6 100644 --- a/app/api/web/revalidate/route.ts +++ b/app/api/web/revalidate/route.ts @@ -107,7 +107,7 @@ export async function POST(request: NextRequest) { return Response.json({ revalidated: true, now: Date.now() }) } catch (error) { - console.info("Failed to revalidate tag(s)") + console.error("Failed to revalidate tag(s)") console.error(error) return internalServerError({ revalidated: false, now: Date.now() }) } diff --git a/auth.ts b/auth.ts index 352dec920..2245d7613 100644 --- a/auth.ts +++ b/auth.ts @@ -104,6 +104,7 @@ export const config = { return url } } catch (e) { + console.error("Error in auth redirect callback") console.error(e) } } diff --git a/lib/graphql/_request.ts b/lib/graphql/_request.ts index 6b4c254d1..9dad21077 100644 --- a/lib/graphql/_request.ts +++ b/lib/graphql/_request.ts @@ -68,6 +68,7 @@ export async function request( return { data: response } } catch (error) { + console.error("Error in graphql request") console.error(error) throw new Error("Something went wrong") } diff --git a/lib/graphql/batchRequest.ts b/lib/graphql/batchRequest.ts index 10e5835fd..d254677d8 100644 --- a/lib/graphql/batchRequest.ts +++ b/lib/graphql/batchRequest.ts @@ -28,6 +28,7 @@ export async function batchRequest( return { data } } catch (error) { + console.error("Error in batched graphql request") console.error(error) throw new Error("Something went wrong") } diff --git a/lib/graphql/previewRequest.ts b/lib/graphql/previewRequest.ts index 2a8437b66..eadf3fbba 100644 --- a/lib/graphql/previewRequest.ts +++ b/lib/graphql/previewRequest.ts @@ -35,6 +35,7 @@ export async function previewRequest( return { data: response } } catch (error) { + console.error("Error in preview graphql request") console.error(error) throw new Error("Something went wrong") } diff --git a/middleware.ts b/middleware.ts index 1596231cf..8400a3596 100644 --- a/middleware.ts +++ b/middleware.ts @@ -56,7 +56,7 @@ export const middleware: NextMiddleware = async (request, event) => { } catch (e) { if (e instanceof NextResponse && e.status) { const cause = await e.json() - console.error(`Error in middleware`) + console.error(`NextResponse Error in middleware`) console.error(cause) return NextResponse.rewrite( diff --git a/middlewares/webView.ts b/middlewares/webView.ts index c5e2a505b..0536e87c0 100644 --- a/middlewares/webView.ts +++ b/middlewares/webView.ts @@ -126,6 +126,7 @@ export const middleware: NextMiddleware = async (request) => { } } catch (e) { if (e instanceof Error) { + console.error("Error in webView middleware") console.error(`${e.name}: ${e.message}`) } diff --git a/server/routers/contentstack/accountPage/query.ts b/server/routers/contentstack/accountPage/query.ts index ab63d265e..14b94eb0c 100644 --- a/server/routers/contentstack/accountPage/query.ts +++ b/server/routers/contentstack/accountPage/query.ts @@ -56,7 +56,7 @@ export const accountPageQueryRouter = router({ const validatedAccountPageRefs = validateAccountPageRefsSchema.safeParse(cleanedData) if (!validatedAccountPageRefs.success) { - console.info(`Failed to validate My Page Refs - (uid: ${uid})`) + console.error(`Failed to validate My Page Refs - (uid: ${uid})`) console.error(validatedAccountPageRefs.error) return null } @@ -86,7 +86,7 @@ export const accountPageQueryRouter = router({ ) if (!validatedAccountPage.success) { - console.info(`Failed to validate Account Page - (uid: ${uid})`) + console.error(`Failed to validate Account Page - (uid: ${uid})`) console.error(validatedAccountPage.error) return null } diff --git a/server/routers/contentstack/base/query.ts b/server/routers/contentstack/base/query.ts index 959098653..4884a59a0 100644 --- a/server/routers/contentstack/base/query.ts +++ b/server/routers/contentstack/base/query.ts @@ -47,7 +47,7 @@ export const baseQueryRouter = router({ ) if (!validatedContactConfigConfig.success) { - console.info( + console.error( `Failed to validate Contact Config Data - (lang: ${ctx.lang})` ) console.error(validatedContactConfigConfig.error) @@ -85,7 +85,7 @@ export const baseQueryRouter = router({ ) if (!validatedHeaderConfig.success) { - console.info(`Failed to validate Header - (lang: ${input.lang})`) + console.error(`Failed to validate Header - (lang: ${input.lang})`) console.error(validatedHeaderConfig.error) return null } @@ -126,7 +126,7 @@ export const baseQueryRouter = router({ ) if (!validatedFooterConfig.success) { - console.info(`Failed to validate Footer - (lang: ${input.lang})`) + console.error(`Failed to validate Footer - (lang: ${input.lang})`) console.error(validatedFooterConfig.error) return null } diff --git a/server/routers/contentstack/breadcrumbs/query.ts b/server/routers/contentstack/breadcrumbs/query.ts index 9bc8fd713..0379c05ee 100644 --- a/server/routers/contentstack/breadcrumbs/query.ts +++ b/server/routers/contentstack/breadcrumbs/query.ts @@ -40,7 +40,7 @@ async function getLoyaltyPageBreadcrumbs(variables: Variables) { ) if (!validatedRefsData.success) { - console.info( + console.error( `Failed to validate Loyaltypage Breadcrumbs Refs - (url: ${variables.url})` ) console.error(validatedRefsData.error) @@ -63,7 +63,7 @@ async function getLoyaltyPageBreadcrumbs(variables: Variables) { validateLoyaltyPageBreadcrumbsContentstackSchema.safeParse(response.data) if (!validatedBreadcrumbsData.success) { - console.info( + console.error( `Failed to validate Loyaltypage Breadcrumbs Data - (url: ${variables.url})` ) console.error(validatedBreadcrumbsData.error) @@ -87,7 +87,7 @@ async function getMyPagesBreadcrumbs(variables: Variables) { refsResponse.data ) if (!validatedRefsData.success) { - console.info( + console.error( `Failed to validate My Page Breadcrumbs Refs - (url: ${variables.url})` ) console.error(validatedRefsData.error) @@ -110,7 +110,7 @@ async function getMyPagesBreadcrumbs(variables: Variables) { validateMyPagesBreadcrumbsContentstackSchema.safeParse(response.data) if (!validatedBreadcrumbsData.success) { - console.info( + console.error( `Failed to validate My Page Breadcrumbs Data - (url: ${variables.url})` ) console.error(validatedBreadcrumbsData.error) diff --git a/server/routers/contentstack/hotelPage/query.ts b/server/routers/contentstack/hotelPage/query.ts index bd649da0f..d434c6b6f 100644 --- a/server/routers/contentstack/hotelPage/query.ts +++ b/server/routers/contentstack/hotelPage/query.ts @@ -19,7 +19,7 @@ export const hotelPageQueryRouter = router({ const validatedHotelPage = validateHotelPageSchema.safeParse(response.data) if (!validatedHotelPage.success) { - console.info( + console.error( `Failed to validate Hotel Page - (uid: ${uid}, lang: ${lang})` ) console.error(validatedHotelPage.error) diff --git a/server/routers/contentstack/languageSwitcher/query.ts b/server/routers/contentstack/languageSwitcher/query.ts index 82b64be14..a41fd2a99 100644 --- a/server/routers/contentstack/languageSwitcher/query.ts +++ b/server/routers/contentstack/languageSwitcher/query.ts @@ -102,7 +102,7 @@ async function getLanguageSwitcher(options: LanguageSwitcherVariables) { }, ]) default: - console.info(`type: [${options.contentType}]`) + console.error(`type: [${options.contentType}]`) console.error(`Trying to get a content type that is not supported`) throw internalServerError() } @@ -136,7 +136,7 @@ export const languageSwitcherQueryRouter = router({ validateLanguageSwitcherData.safeParse(urls) if (!validatedLanguageSwitcherData.success) { - console.info( + console.error( `Failed to validate Language Switcher Data - (contentType: ${ctx.contentType}, lang: ${ctx.lang}, uid: ${ctx.uid})` ) console.error(validatedLanguageSwitcherData.error) diff --git a/server/routers/contentstack/loyaltyPage/query.ts b/server/routers/contentstack/loyaltyPage/query.ts index ecdc08ac7..c23422c4a 100644 --- a/server/routers/contentstack/loyaltyPage/query.ts +++ b/server/routers/contentstack/loyaltyPage/query.ts @@ -88,7 +88,7 @@ export const loyaltyPageQueryRouter = router({ const validatedLoyaltyPageRefs = validateLoyaltyPageRefsSchema.safeParse(cleanedData) if (!validatedLoyaltyPageRefs.success) { - console.info( + console.error( `Failed to validate Loyaltypage Refs - (lang: ${lang}, uid: ${uid})` ) console.error(validatedLoyaltyPageRefs.error) @@ -219,7 +219,7 @@ export const loyaltyPageQueryRouter = router({ validateLoyaltyPageSchema.safeParse(loyaltyPage) if (!validatedLoyaltyPage.success) { - console.info( + console.error( `Failed to validate Loyaltypage Data - (lang: ${lang}, uid: ${uid})` ) console.error(validatedLoyaltyPage.error) diff --git a/server/routers/contentstack/myPages/navigation/query.ts b/server/routers/contentstack/myPages/navigation/query.ts index 2b4c1b543..c8ef87de4 100644 --- a/server/routers/contentstack/myPages/navigation/query.ts +++ b/server/routers/contentstack/myPages/navigation/query.ts @@ -77,7 +77,7 @@ export const navigationQueryRouter = router({ const validatedMyPagesNavigationRefs = navigationRefsPayloadSchema.safeParse(refsResponse.data) if (!validatedMyPagesNavigationRefs.success) { - console.info( + console.error( `Failed to validate My Pages Navigation Refs - (lang: ${lang}` ) console.error(validatedMyPagesNavigationRefs.error) @@ -109,7 +109,7 @@ export const navigationQueryRouter = router({ response.data ) if (!validatedMyPagesNavigation.success) { - console.info( + console.error( `Failed to validate My Pages Navigation Data - (lang: ${lang}` ) console.error(validatedMyPagesNavigation.error) @@ -126,7 +126,7 @@ export const navigationQueryRouter = router({ const validatedNav = getNavigationSchema.safeParse(nav) if (!validatedNav.success) { - console.info( + console.error( `Failed to validate My Pages Navigation Return Data - (lang: ${lang}` ) console.error(validatedNav.error) diff --git a/server/routers/hotels/query.ts b/server/routers/hotels/query.ts index edd888519..c60f4359e 100644 --- a/server/routers/hotels/query.ts +++ b/server/routers/hotels/query.ts @@ -45,7 +45,7 @@ export const hotelQueryRouter = router({ ) if (!validatedHotelData.success) { - console.info(`Get Individual Hotel Data - Verified Data Error`) + console.error(`Get Individual Hotel Data - Verified Data Error`) console.error(validatedHotelData.error) throw badRequestError() } @@ -56,7 +56,7 @@ export const hotelQueryRouter = router({ .map((roomCategory) => { const validatedRoom = RoomSchema.safeParse(roomCategory) if (!validatedRoom.success) { - console.info(`Get Room Category Data - Verified Data Error`) + console.error(`Get Room Category Data - Verified Data Error`) console.error(validatedRoom.error) throw badRequestError() } @@ -83,7 +83,7 @@ export const hotelQueryRouter = router({ const validatedHotelData = getRatesSchema.safeParse(tempRatesData) if (!validatedHotelData.success) { - console.info(`Get Individual Rates Data - Verified Data Error`) + console.error(`Get Individual Rates Data - Verified Data Error`) console.error(validatedHotelData.error) throw badRequestError() } diff --git a/server/routers/user/query.ts b/server/routers/user/query.ts index 370989034..aad0c08ca 100644 --- a/server/routers/user/query.ts +++ b/server/routers/user/query.ts @@ -50,7 +50,7 @@ async function getVerifiedUser({ session }: { session: Session }) { const verifiedData = getUserSchema.safeParse(apiJson.data.attributes) if (!verifiedData.success) { - console.info( + console.error( `Failed to validate User - (User: ${JSON.stringify(session.user)})` ) console.error(verifiedData.error) @@ -248,7 +248,7 @@ export const userQueryRouter = router({ ) if (!previousStaysResponse.ok) { - console.info( + console.error( `API Response Failed - Getting Previous Stays for tracking user` ) console.error(previousStaysResponse) @@ -259,7 +259,7 @@ export const userQueryRouter = router({ const verifiedPreviousStaysData = getStaysSchema.safeParse(previousStaysApiJson) if (!verifiedPreviousStaysData.success) { - console.info(`Failed to validate Previous Stays Data for tracking user`) + console.error(`Failed to validate Previous Stays Data for tracking user`) console.error(verifiedPreviousStaysData.error) return notLoggedInUserTrackingData } @@ -323,8 +323,8 @@ export const userQueryRouter = router({ // default: // throw internalServerError(apiResponse) // } - console.info(`API Response Failed - Getting Previous Stays`) - console.info(`User: (${JSON.stringify(ctx.session.user)})`) + console.error(`API Response Failed - Getting Previous Stays`) + console.error(`User: (${JSON.stringify(ctx.session.user)})`) console.error(apiResponse) return null } @@ -333,8 +333,8 @@ export const userQueryRouter = router({ const verifiedData = getStaysSchema.safeParse(apiJson) if (!verifiedData.success) { - console.info(`Failed to validate Previous Stays Data`) - console.info(`User: (${JSON.stringify(ctx.session.user)})`) + console.error(`Failed to validate Previous Stays Data`) + console.error(`User: (${JSON.stringify(ctx.session.user)})`) console.error(verifiedData.error) return null } @@ -390,8 +390,8 @@ export const userQueryRouter = router({ // default: // throw internalServerError(apiResponse) // } - console.info(`API Response Failed - Getting Upcoming Stays`) - console.info(`User: (${JSON.stringify(ctx.session.user)})`) + console.error(`API Response Failed - Getting Upcoming Stays`) + console.error(`User: (${JSON.stringify(ctx.session.user)})`) console.error(apiResponse) return null } @@ -399,8 +399,8 @@ export const userQueryRouter = router({ const apiJson = await apiResponse.json() const verifiedData = getStaysSchema.safeParse(apiJson) if (!verifiedData.success) { - console.info(`Failed to validate Upcoming Stays Data`) - console.info(`User: (${JSON.stringify(ctx.session.user)})`) + console.error(`Failed to validate Upcoming Stays Data`) + console.error(`User: (${JSON.stringify(ctx.session.user)})`) console.error(verifiedData.error) return null } @@ -442,8 +442,8 @@ export const userQueryRouter = router({ // default: // throw internalServerError() // } - console.info(`API Response Failed - Getting Friend Transactions`) - console.info(`User: (${JSON.stringify(opts.ctx.session.user)})`) + console.error(`API Response Failed - Getting Friend Transactions`) + console.error(`User: (${JSON.stringify(opts.ctx.session.user)})`) console.error(apiResponse) return null } @@ -451,8 +451,8 @@ export const userQueryRouter = router({ const apiJson = await apiResponse.json() const verifiedData = getFriendTransactionsSchema.safeParse(apiJson) if (!verifiedData.success) { - console.info(`Failed to validate Friend Transactions Data`) - console.info(`User: (${JSON.stringify(opts.ctx.session.user)})`) + console.error(`Failed to validate Friend Transactions Data`) + console.error(`User: (${JSON.stringify(opts.ctx.session.user)})`) console.error(verifiedData.error) return null } @@ -482,8 +482,8 @@ export const userQueryRouter = router({ }) if (!apiResponse.ok) { - console.info(`API Response Failed - Getting Creadit Cards`) - console.info(`User: (${JSON.stringify(ctx.session.user)})`) + console.error(`API Response Failed - Getting Creadit Cards`) + console.error(`User: (${JSON.stringify(ctx.session.user)})`) console.error(apiResponse) return null } @@ -491,8 +491,8 @@ export const userQueryRouter = router({ const apiJson = await apiResponse.json() const verifiedData = getCreditCardsSchema.safeParse(apiJson) if (!verifiedData.success) { - console.info(`Failed to validate Credit Cards Data`) - console.info(`User: (${JSON.stringify(ctx.session.user)})`) + console.error(`Failed to validate Credit Cards Data`) + console.error(`User: (${JSON.stringify(ctx.session.user)})`) console.error(verifiedData.error) return null } @@ -519,8 +519,8 @@ export const userQueryRouter = router({ // default: // throw internalServerError() // } - console.info(`API Response Failed - Getting Membership Cards`) - console.info(`User: (${JSON.stringify(ctx.session.user)})`) + console.error(`API Response Failed - Getting Membership Cards`) + console.error(`User: (${JSON.stringify(ctx.session.user)})`) console.error(apiResponse) } @@ -531,8 +531,8 @@ export const userQueryRouter = router({ ) if (!verifiedData.success) { - console.info(`Failed to validate Memberships Cards Data`) - console.info(`User: (${JSON.stringify(ctx.session.user)})`) + console.error(`Failed to validate Memberships Cards Data`) + console.error(`User: (${JSON.stringify(ctx.session.user)})`) console.error(verifiedData.error) return null }