Skip to content

Commit 249bfdd

Browse files
authored
Issue 53120: remove processRequest, use getCallbackWrapper (#1814)
1 parent 617e313 commit 249bfdd

5 files changed

Lines changed: 20 additions & 51 deletions

File tree

packages/components/package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/components/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@labkey/components",
3-
"version": "6.52.0",
3+
"version": "6.52.1",
44
"description": "Components, models, actions, and utility functions for LabKey applications and pages",
55
"sideEffects": false,
66
"files": [

packages/components/releaseNotes/components.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
# @labkey/components
22
Components, models, actions, and utility functions for LabKey applications and pages
33

4+
### version 6.52.1
5+
*Released*: 25 June 2025
6+
- Issue 53120: remove processRequest, use getCallbackWrapper
7+
48
### version 6.52.0
59
*Released*: 24 June 2025
610
- Improve ExecuteSql endpoint wrapper. See #1813.

packages/components/src/internal/query/api.ts

Lines changed: 2 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -491,14 +491,6 @@ export async function selectRowsDeprecated(options: SelectRowsDeprecatedOptions)
491491
resolve(response_);
492492
},
493493
failure: (data, request) => {
494-
// If we hit a communication failure, try to get better error messaging from the request.responseText (Issues 51232 and 51204)
495-
if (
496-
data.exception?.toLowerCase().indexOf('communication failure') === 0 &&
497-
processRequest(undefined, request, reject)
498-
) {
499-
return;
500-
}
501-
502494
console.error('There was a problem retrieving the data', data);
503495
reject({
504496
exceptionClass: data.exceptionClass,
@@ -803,9 +795,7 @@ export function insertRows(options: InsertRowsOptions): Promise<QueryCommandResp
803795
? true
804796
: options.skipReselectRows,
805797
apiVersion: 13.2,
806-
success: (response, request) => {
807-
if (processRequest(response, request, reject)) return;
808-
798+
success: response => {
809799
resolve(
810800
new QueryCommandResponse({
811801
schemaQuery,
@@ -886,9 +876,7 @@ export function updateRows(options: UpdateRowsOptions): Promise<QueryCommandResp
886876
options.skipReselectRows === null || options.skipReselectRows === undefined
887877
? true
888878
: options.skipReselectRows,
889-
success: (response, request) => {
890-
if (processRequest(response, request, reject)) return;
891-
879+
success: response => {
892880
resolve(
893881
new QueryCommandResponse({
894882
schemaQuery,
@@ -1151,19 +1139,6 @@ export function importData(config: IImportData): Promise<any> {
11511139
});
11521140
}
11531141

1154-
export function processRequest(response: any, request: any, reject: (reason?: any) => void): boolean {
1155-
if (!response && request?.responseText) {
1156-
const resp = JSON.parse(request.responseText);
1157-
if (!resp?.success) {
1158-
console.error(resp);
1159-
reject(resp);
1160-
return true;
1161-
}
1162-
}
1163-
1164-
return false;
1165-
}
1166-
11671142
/**
11681143
* Provides the default ContainerFilter to utilize when requesting data cross-folder.
11691144
* This ContainerFilter is applied to all `executeSql` and `selectRows` requests made via the methods
Lines changed: 11 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
1-
import { Ajax, Utils } from '@labkey/api';
1+
import { ActionURL } from '@labkey/api';
22

33
import { IDataViewInfo } from '../DataViewInfo';
4-
import { AppURL, buildURL } from '../url/AppURL';
4+
import { AppURL } from '../url/AppURL';
5+
import { request } from '../request';
56

67
export type ReportURLMapper = (report: IDataViewInfo) => AppURL;
78

89
/**
910
* FlattenResponse converts the response body (a nested tree structure) from browseDataTree into a flat list of
1011
* ReportItem objects. This method purposely ignores categories and their nested structures.
1112
*
12-
* @param response: the body from the browseDataTree API Action
13-
* @param urlMapper: ReportURLMapper
13+
* @param response the body from the browseDataTree API Action
14+
* @param urlMapper ReportURLMapper
1415
*/
1516
export function flattenBrowseDataTreeResponse(response: any, urlMapper?: ReportURLMapper): IDataViewInfo[] {
1617
function _flattenBrowseDataTreeResponse(all, item): IDataViewInfo[] {
@@ -32,22 +33,11 @@ export function flattenBrowseDataTreeResponse(response: any, urlMapper?: ReportU
3233
return _flattenBrowseDataTreeResponse([], response);
3334
}
3435

35-
export function loadReports(urlMapper?: ReportURLMapper): Promise<IDataViewInfo[]> {
36-
return new Promise((resolve, reject) => {
37-
Ajax.request({
38-
method: 'GET',
39-
url: buildURL('reports', 'browseDataTree.api'),
40-
success: request => {
41-
const reports = flattenBrowseDataTreeResponse(JSON.parse(request.responseText), urlMapper);
42-
resolve(reports);
43-
},
44-
failure: Utils.getCallbackWrapper(
45-
error => {
46-
reject(error);
47-
},
48-
this,
49-
true
50-
),
51-
});
36+
export async function loadReports(urlMapper?: ReportURLMapper): Promise<IDataViewInfo[]> {
37+
const result = await request({
38+
url: ActionURL.buildURL('reports', 'browseDataTree.api'),
39+
errorLogMsg: 'Failed to load reports',
5240
});
41+
42+
return flattenBrowseDataTreeResponse(result, urlMapper);
5343
}

0 commit comments

Comments
 (0)