Skip to content

Commit 588d706

Browse files
authored
Try/catch-es for isRedesignEnabled setting (#2780)
* Try/catch-es for isRedesignEnabled setting * FUI - Logger in GQL console
1 parent 1855ed8 commit 588d706

30 files changed

+282
-85
lines changed

src/admin/leftPanel.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ export class LeftPanel extends React.Component<{}, LeftPanelState> {
9999
try {
100100
redesignSetting = await this.siteService.getSetting(isRedesignEnabledSetting);
101101
} catch (error) {
102-
this.logger?.trackError(error, { message: `Failed to get setting: ${isRedesignEnabledSetting}` });
102+
this.logger?.trackError(error, { message: `Failed to get setting: ${isRedesignEnabledSetting} - admin panel` });
103103
}
104104
this.setState({ isRedesignEnabled: !!redesignSetting });
105105
}

src/components/apis/api-products/apiProductsViewModelBinder.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { ViewModelBinder, WidgetState } from "@paperbits/common/widgets";
22
import { ISiteService } from "@paperbits/common/sites/ISiteService";
3+
import { Logger } from "@paperbits/common/logging";
34
import { isRedesignEnabledSetting } from "../../../constants";
45
import { layoutsMap } from "../../utils/react/TableListInfo";
56
import { ApiProductsModel } from "./apiProductsModel";
@@ -8,6 +9,7 @@ import { ApiProductsViewModel } from "./react/ApiProductsViewModel";
89
export class ApiProductsViewModelBinder implements ViewModelBinder<ApiProductsModel, ApiProductsViewModel> {
910
constructor(
1011
private readonly siteService: ISiteService,
12+
private readonly logger: Logger
1113
) {}
1214

1315
public stateToInstance(state: WidgetState, componentInstance: ApiProductsViewModel): void {
@@ -25,6 +27,14 @@ export class ApiProductsViewModelBinder implements ViewModelBinder<ApiProductsMo
2527
? model.detailsPageHyperlink.href
2628
: undefined
2729

28-
state.isRedesignEnabled = !!(await this.siteService.getSetting(isRedesignEnabledSetting));
30+
let isRedesignEnabled = false;
31+
32+
try {
33+
isRedesignEnabled = !!(await this.siteService.getSetting(isRedesignEnabledSetting));
34+
} catch (error) {
35+
this.logger?.trackError(error, { message: `Failed to get setting: ${isRedesignEnabledSetting} - ApiProductsViewModelBinder` });
36+
} finally {
37+
state.isRedesignEnabled = isRedesignEnabled;
38+
}
2939
}
3040
}

src/components/apis/details-of-api/detailsOfApiViewModelBinder.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { StyleCompiler } from "@paperbits/common/styles";
22
import { ViewModelBinder, WidgetState } from "@paperbits/common/widgets";
33
import { ISiteService } from "@paperbits/common/sites";
4+
import { Logger } from "@paperbits/common/logging";
45
import { DetailsOfApiModel } from "./detailsOfApiModel";
56
import { DetailsOfApiViewModel } from "./react/DetailsOfApiViewModel";
67
import { isRedesignEnabledSetting } from "../../../constants";
@@ -9,6 +10,7 @@ export class DetailsOfApiViewModelBinder implements ViewModelBinder<DetailsOfApi
910
constructor(
1011
private readonly styleCompiler: StyleCompiler,
1112
private readonly siteService: ISiteService,
13+
private readonly logger: Logger
1214
) { }
1315

1416
public stateToInstance(state: WidgetState, componentInstance: DetailsOfApiViewModel): void {
@@ -26,6 +28,14 @@ export class DetailsOfApiViewModelBinder implements ViewModelBinder<DetailsOfApi
2628
state.styles = await this.styleCompiler.getStyleModelAsync(model.styles);
2729
}
2830

29-
state.isRedesignEnabled = !!(await this.siteService.getSetting(isRedesignEnabledSetting));
31+
let isRedesignEnabled = false;
32+
33+
try {
34+
isRedesignEnabled = !!(await this.siteService.getSetting(isRedesignEnabledSetting));
35+
} catch (error) {
36+
this.logger?.trackError(error, { message: `Failed to get setting: ${isRedesignEnabledSetting} - DetailsOfApiViewModelBinder` });
37+
} finally {
38+
state.isRedesignEnabled = isRedesignEnabled;
39+
}
3040
}
3141
}

src/components/apis/history-of-api/historyOfApiViewModelBinder.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { ViewModelBinder, WidgetState } from "@paperbits/common/widgets";
22
import { StyleCompiler } from "@paperbits/common/styles";
33
import { ISiteService } from "@paperbits/common/sites";
4+
import { Logger } from "@paperbits/common/logging";
45
import { HistoryOfApiModel } from "./historyOfApiModel";
56
import { HistoryOfApiViewModel } from "./react/HistoryOfApiViewModel";
67
import { isRedesignEnabledSetting } from "../../../constants";
@@ -9,6 +10,7 @@ export class HistoryOfApiViewModelBinder implements ViewModelBinder<HistoryOfApi
910
constructor(
1011
private readonly styleCompiler: StyleCompiler,
1112
private readonly siteService: ISiteService,
13+
private readonly logger: Logger
1214
) { }
1315

1416
public stateToInstance(state: WidgetState, componentInstance: HistoryOfApiViewModel): void {
@@ -28,6 +30,14 @@ export class HistoryOfApiViewModelBinder implements ViewModelBinder<HistoryOfApi
2830
state.styles = await this.styleCompiler.getStyleModelAsync(model.styles);
2931
}
3032

31-
state.isRedesignEnabled = !!(await this.siteService.getSetting(isRedesignEnabledSetting));
33+
let isRedesignEnabled = false;
34+
35+
try {
36+
isRedesignEnabled = !!(await this.siteService.getSetting(isRedesignEnabledSetting));
37+
} catch (error) {
38+
this.logger?.trackError(error, { message: `Failed to get setting: ${isRedesignEnabledSetting} - HistoryOfApiViewModelBinder` });
39+
} finally {
40+
state.isRedesignEnabled = isRedesignEnabled;
41+
}
3242
}
3343
}

src/components/apis/list-of-apis/listOfApisViewModelBinder.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { ViewModelBinder, WidgetState } from "@paperbits/common/widgets";
22
import { StyleCompiler } from "@paperbits/common/styles";
33
import { ISiteService } from "@paperbits/common/sites";
4+
import { Logger } from "@paperbits/common/logging";
45
import { layoutsMap } from "../../utils/react/TableListInfo";
56
import { ListOfApisModel } from "./listOfApisModel";
67
import { ListOfApisViewModel } from "./react/ListOfApisViewModel";
@@ -10,6 +11,7 @@ export class ListOfApisViewModelBinder implements ViewModelBinder<ListOfApisMode
1011
constructor(
1112
private readonly styleCompiler: StyleCompiler,
1213
private readonly siteService: ISiteService,
14+
private readonly logger: Logger
1315
) { }
1416

1517
public stateToInstance(state: WidgetState, componentInstance: ListOfApisViewModel): void {
@@ -46,6 +48,14 @@ export class ListOfApisViewModelBinder implements ViewModelBinder<ListOfApisMode
4648
state.styles = await this.styleCompiler.getStyleModelAsync(model.styles);
4749
}
4850

49-
state.isRedesignEnabled = !!(await this.siteService.getSetting(isRedesignEnabledSetting));
51+
let isRedesignEnabled = false;
52+
53+
try {
54+
isRedesignEnabled = !!(await this.siteService.getSetting(isRedesignEnabledSetting));
55+
} catch (error) {
56+
this.logger?.trackError(error, { message: `Failed to get setting: ${isRedesignEnabledSetting} - ListOfApisViewModelBinder` });
57+
} finally {
58+
state.isRedesignEnabled = isRedesignEnabled;
59+
}
5060
}
5161
}

src/components/operations/operation-details/operationDetailsViewModelBinder.ts

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
import { ViewModelBinder, WidgetState } from "@paperbits/common/widgets";
22
import { StyleCompiler } from "@paperbits/common/styles";
33
import { ISiteService } from "@paperbits/common/sites";
4+
import { Logger } from "@paperbits/common/logging";
45
import { isRedesignEnabledSetting } from "../../../constants";
56
import { OperationDetailsViewModel } from "./react/OperationDetailsViewModel";
67
import { OperationDetailsModel } from "./operationDetailsModel";
78

89
export class OperationDetailsViewModelBinder implements ViewModelBinder<OperationDetailsModel, OperationDetailsViewModel> {
910
constructor(
1011
private readonly styleCompiler: StyleCompiler,
11-
private readonly siteService: ISiteService
12+
private readonly siteService: ISiteService,
13+
private readonly logger: Logger
1214
) { }
1315

1416
public stateToInstance(state: WidgetState, componentInstance: OperationDetailsViewModel): void {
@@ -36,6 +38,14 @@ export class OperationDetailsViewModelBinder implements ViewModelBinder<Operatio
3638
state.styles = await this.styleCompiler.getStyleModelAsync(model.styles);
3739
}
3840

39-
state.isRedesignEnabled = !!(await this.siteService.getSetting(isRedesignEnabledSetting));
41+
let isRedesignEnabled = false;
42+
43+
try {
44+
isRedesignEnabled = !!(await this.siteService.getSetting(isRedesignEnabledSetting));
45+
} catch (error) {
46+
this.logger?.trackError(error, { message: `Failed to get setting: ${isRedesignEnabledSetting} - OperationDetailsViewModelBinder` });
47+
} finally {
48+
state.isRedesignEnabled = isRedesignEnabled;
49+
}
4050
}
4151
}

src/components/operations/operation-details/react/runtime/OperationConsoleGql.tsx

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import Editor, { Monaco } from '@monaco-editor/react';
66
import { ISettingsProvider } from "@paperbits/common/configuration";
77
import { SessionManager } from "@paperbits/common/persistence/sessionManager";
88
import { HttpClient, HttpRequest } from "@paperbits/common/http";
9+
import { Logger } from "@paperbits/common/logging";
910
import { Stack } from "@fluentui/react";
1011
import {
1112
Accordion,
@@ -76,6 +77,7 @@ type OperationConsoleProps = {
7677
settingsProvider: ISettingsProvider;
7778
sessionManager: SessionManager;
7879
httpClient: HttpClient;
80+
logger: Logger;
7981
}
8082

8183
export enum ConsoleTab {
@@ -103,7 +105,8 @@ export const OperationConsoleGql = ({
103105
routeHelper,
104106
settingsProvider,
105107
sessionManager,
106-
httpClient
108+
httpClient,
109+
logger
107110
}: OperationConsoleProps) => {
108111
const [working, setWorking] = useState<boolean>(false);
109112
const [sendingRequest, setSendingRequest] = useState<boolean>(false);
@@ -434,7 +437,7 @@ export const OperationConsoleGql = ({
434437
setWsLogItems(wsLogItems => [data, ...wsLogItems]);
435438
}
436439
} catch (error) {
437-
//this.logger.trackError(error);
440+
logger.trackError(error);
438441
}
439442
}
440443
else if (data.logType === LogItemType.SendData) {
@@ -445,7 +448,7 @@ export const OperationConsoleGql = ({
445448
setWsLogItems(wsLogItems => [data, ...wsLogItems]);
446449
}
447450
} catch (error) {
448-
//this.logger.trackError(error);
451+
logger.trackError(error);
449452
}
450453
}
451454
else if (data.logType === LogItemType.Connection) {

src/components/operations/operation-details/react/runtime/OperationDetailsGql.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { useEffect, useState } from "react";
33
import { ISettingsProvider } from "@paperbits/common/configuration";
44
import { SessionManager } from "@paperbits/common/persistence/sessionManager";
55
import { HttpClient } from "@paperbits/common/http/httpClient";
6+
import { Logger } from "@paperbits/common/logging";
67
import {
78
GraphQLField,
89
GraphQLInputType,
@@ -68,6 +69,7 @@ export const OperationDetailsGql = ({
6869
settingsProvider,
6970
sessionManager,
7071
httpClient,
72+
logger,
7173
enableConsole,
7274
useCorsProxy,
7375
includeAllHostnames,
@@ -86,6 +88,7 @@ export const OperationDetailsGql = ({
8688
settingsProvider: ISettingsProvider;
8789
sessionManager: SessionManager;
8890
httpClient: HttpClient;
91+
logger: Logger
8992
}) => {
9093
const [working, setWorking] = useState(false);
9194
const [api, setApi] = useState<Api>(null);
@@ -343,6 +346,7 @@ export const OperationDetailsGql = ({
343346
settingsProvider={settingsProvider}
344347
sessionManager={sessionManager}
345348
httpClient={httpClient}
349+
logger={logger}
346350
/>
347351
<div className={"operation-table"}>
348352
<div className={"operation-table-header"}>

src/components/operations/operation-details/react/runtime/OperationDetailsRuntime.tsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { Router } from "@paperbits/common/routing";
44
import { ISettingsProvider } from "@paperbits/common/configuration";
55
import { SessionManager } from "@paperbits/common/persistence/sessionManager";
66
import { HttpClient } from "@paperbits/common/http/httpClient";
7+
import { Logger } from "@paperbits/common/logging";
78
import { FluentProvider} from "@fluentui/react-components";
89
import { TypeOfApi, fuiTheme } from "../../../../../constants";
910
import { ApiService } from "../../../../../services/apiService";
@@ -76,6 +77,9 @@ export class OperationDetailsRuntime extends React.Component<OperationDetailsRun
7677
@Resolve("httpClient")
7778
public httpClient: HttpClient;
7879

80+
@Resolve("logger")
81+
public logger: Logger;
82+
7983
constructor(props: OperationDetailsRuntimeProps) {
8084
super(props);
8185

@@ -151,6 +155,7 @@ export class OperationDetailsRuntime extends React.Component<OperationDetailsRun
151155
settingsProvider={this.settingsProvider}
152156
sessionManager={this.sessionManager}
153157
httpClient={this.httpClient}
158+
logger={this.logger}
154159
/>
155160
: <OperationDetails
156161
{...this.props}

src/components/operations/operation-list/ko/operationListViewModel.ts

Lines changed: 0 additions & 20 deletions
This file was deleted.

src/components/operations/operation-list/operationListViewModelBinder.ts

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
import { ViewModelBinder, WidgetState } from "@paperbits/common/widgets";
2-
import { OperationListViewModel } from "./react/OperationListViewModel";
3-
import { OperationListModel } from "./operationListModel";
42
import { StyleCompiler } from "@paperbits/common/styles";
53
import { ISiteService } from "@paperbits/common/sites";
4+
import { Logger } from "@paperbits/common/logging";
5+
import { OperationListViewModel } from "./react/OperationListViewModel";
6+
import { OperationListModel } from "./operationListModel";
67
import { isRedesignEnabledSetting } from "../../../constants";
78

8-
99
export class OperationListViewModelBinder implements ViewModelBinder<OperationListModel, OperationListViewModel> {
1010
constructor(
1111
private readonly styleCompiler: StyleCompiler,
12-
private readonly siteService: ISiteService
12+
private readonly siteService: ISiteService,
13+
private readonly logger: Logger
1314
) { }
1415

1516
public stateToInstance(state: WidgetState, componentInstance: OperationListViewModel): void {
@@ -41,6 +42,14 @@ export class OperationListViewModelBinder implements ViewModelBinder<OperationLi
4142
state.styles = await this.styleCompiler.getStyleModelAsync(model.styles);
4243
}
4344

44-
state.isRedesignEnabled = !!(await this.siteService.getSetting(isRedesignEnabledSetting));
45+
let isRedesignEnabled = false;
46+
47+
try {
48+
isRedesignEnabled = !!(await this.siteService.getSetting(isRedesignEnabledSetting));
49+
} catch (error) {
50+
this.logger?.trackError(error, { message: `Failed to get setting: ${isRedesignEnabledSetting} - OperationListViewModelBinder` });
51+
} finally {
52+
state.isRedesignEnabled = isRedesignEnabled;
53+
}
4554
}
4655
}

src/components/products/product-apis/productApisViewModelBinder.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { StyleCompiler } from "@paperbits/common/styles";
22
import { ISiteService } from "@paperbits/common/sites";
33
import { ViewModelBinder, WidgetState } from "@paperbits/common/widgets";
4+
import { Logger } from "@paperbits/common/logging";
45
import { FiltersPosition } from "../../apis/list-of-apis/listOfApisContract";
56
import { layoutsMap } from "../../utils/react/TableListInfo";
67
import { ProductApisModel } from "./productApisModel";
@@ -11,6 +12,7 @@ export class ProductApisViewModelBinder implements ViewModelBinder<ProductApisMo
1112
constructor(
1213
private readonly styleCompiler: StyleCompiler,
1314
private readonly siteService: ISiteService,
15+
private readonly logger: Logger
1416
) { }
1517

1618
public stateToInstance(state: WidgetState, componentInstance: ProductApisViewModel): void {
@@ -41,6 +43,14 @@ export class ProductApisViewModelBinder implements ViewModelBinder<ProductApisMo
4143
state.styles = await this.styleCompiler.getStyleModelAsync(model.styles);
4244
}
4345

44-
state.isRedesignEnabled = !!(await this.siteService.getSetting(isRedesignEnabledSetting));
46+
let isRedesignEnabled = false;
47+
48+
try {
49+
isRedesignEnabled = !!(await this.siteService.getSetting(isRedesignEnabledSetting));
50+
} catch (error) {
51+
this.logger?.trackError(error, { message: `Failed to get setting: ${isRedesignEnabledSetting} - ProductApisViewModelBinder` });
52+
} finally {
53+
state.isRedesignEnabled = isRedesignEnabled;
54+
}
4555
}
4656
}

0 commit comments

Comments
 (0)