@gen3/core 0.10.95 → 0.10.98
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.js +267 -6
- package/dist/cjs/index.js.map +1 -1
- package/dist/dts/features/authz/authzMappingSlice.d.ts +463 -31
- package/dist/dts/features/authz/authzMappingSlice.d.ts.map +1 -1
- package/dist/dts/features/authz/index.d.ts +2 -2
- package/dist/dts/features/authz/index.d.ts.map +1 -1
- package/dist/dts/features/authz/types.d.ts +17 -0
- package/dist/dts/features/authz/types.d.ts.map +1 -1
- package/dist/dts/features/cohort/cohortSlice.d.ts +2 -0
- package/dist/dts/features/cohort/cohortSlice.d.ts.map +1 -1
- package/dist/dts/features/dataLibrary/index.d.ts +1 -1
- package/dist/dts/features/dataLibrary/index.d.ts.map +1 -1
- package/dist/dts/features/dataLibrary/storage/types.d.ts +1 -5
- package/dist/dts/features/dataLibrary/storage/types.d.ts.map +1 -1
- package/dist/dts/features/dataLibrary/useDataLibrary.d.ts +1 -1
- package/dist/dts/features/dataLibrary/useDataLibrary.d.ts.map +1 -1
- package/dist/dts/features/fence/utils.d.ts.map +1 -1
- package/dist/dts/features/filters/filters.d.ts.map +1 -1
- package/dist/dts/features/filters/index.d.ts +2 -2
- package/dist/dts/features/filters/index.d.ts.map +1 -1
- package/dist/dts/features/filters/types.d.ts +4 -1
- package/dist/dts/features/filters/types.d.ts.map +1 -1
- package/dist/dts/features/gen3/gen3Api.d.ts.map +1 -1
- package/dist/dts/features/guppy/guppySlice.d.ts +186 -1
- package/dist/dts/features/guppy/guppySlice.d.ts.map +1 -1
- package/dist/dts/features/requestor/index.d.ts +3 -0
- package/dist/dts/features/requestor/index.d.ts.map +1 -1
- package/dist/dts/features/requestor/remoteSupport/index.d.ts +5 -0
- package/dist/dts/features/requestor/remoteSupport/index.d.ts.map +1 -0
- package/dist/dts/features/requestor/remoteSupport/registerDefaultRemoteSupport.d.ts +2 -0
- package/dist/dts/features/requestor/remoteSupport/registerDefaultRemoteSupport.d.ts.map +1 -0
- package/dist/dts/features/requestor/remoteSupport/registeredRemoteSupportServices.d.ts +48 -0
- package/dist/dts/features/requestor/remoteSupport/registeredRemoteSupportServices.d.ts.map +1 -0
- package/dist/dts/features/requestor/remoteSupport/types.d.ts +12 -0
- package/dist/dts/features/requestor/remoteSupport/types.d.ts.map +1 -0
- package/dist/dts/features/requestor/remoteSupport/zenDesk.d.ts +5 -0
- package/dist/dts/features/requestor/remoteSupport/zenDesk.d.ts.map +1 -0
- package/dist/dts/features/requestor/requestorSlice.d.ts +595 -23
- package/dist/dts/features/requestor/requestorSlice.d.ts.map +1 -1
- package/dist/dts/features/user/userSliceRTK.d.ts.map +1 -1
- package/dist/dts/types/index.d.ts +20 -0
- package/dist/dts/types/index.d.ts.map +1 -1
- package/dist/dts/utils/caseConversion.d.ts +3 -0
- package/dist/dts/utils/caseConversion.d.ts.map +1 -0
- package/dist/dts/utils/conversions.d.ts +33 -0
- package/dist/dts/utils/conversions.d.ts.map +1 -0
- package/dist/dts/utils/index.d.ts +2 -1
- package/dist/dts/utils/index.d.ts.map +1 -1
- package/dist/dts/utils/logger.d.ts +6 -0
- package/dist/dts/utils/logger.d.ts.map +1 -0
- package/dist/dts/utils/test/caseConversion.unit.test.d.ts +2 -0
- package/dist/dts/utils/test/caseConversion.unit.test.d.ts.map +1 -0
- package/dist/esm/index.js +252 -7
- package/dist/esm/index.js.map +1 -1
- package/dist/index.d.ts +1968 -665
- package/package.json +2 -2
package/dist/cjs/index.js
CHANGED
|
@@ -97,6 +97,7 @@ const isFetchError = (obj)=>{
|
|
|
97
97
|
*/ const fetchFence = async ({ endpoint, headers, body = {}, method = 'GET', isJSON = true })=>{
|
|
98
98
|
const res = await fetch(`${GEN3_FENCE_API}${endpoint}`, {
|
|
99
99
|
method: method,
|
|
100
|
+
credentials: 'include',
|
|
100
101
|
headers: headers,
|
|
101
102
|
body: 'POST' === method ? JSON.stringify(body) : null
|
|
102
103
|
});
|
|
@@ -189,6 +190,10 @@ const userAuthApi = react.createApi({
|
|
|
189
190
|
return {
|
|
190
191
|
error: error
|
|
191
192
|
};
|
|
193
|
+
} else {
|
|
194
|
+
return {
|
|
195
|
+
error: 'Unknown Error'
|
|
196
|
+
};
|
|
192
197
|
}
|
|
193
198
|
}
|
|
194
199
|
return {
|
|
@@ -246,6 +251,9 @@ const selectHeadersWithCSRFToken = toolkit.createSelector([
|
|
|
246
251
|
}
|
|
247
252
|
if (csrfToken) headers.set('X-CSRF-Token', csrfToken);
|
|
248
253
|
return headers;
|
|
254
|
+
},
|
|
255
|
+
validateStatus: (response)=>{
|
|
256
|
+
return response.status >= 200 && response.status < 300;
|
|
249
257
|
}
|
|
250
258
|
}),
|
|
251
259
|
endpoints: ()=>({})
|
|
@@ -823,7 +831,8 @@ const newCohort = ({ filters = {}, customName })=>{
|
|
|
823
831
|
filters: filters ?? {},
|
|
824
832
|
modified: false,
|
|
825
833
|
saved: false,
|
|
826
|
-
modified_datetime: ts.toISOString()
|
|
834
|
+
modified_datetime: ts.toISOString(),
|
|
835
|
+
counts: {}
|
|
827
836
|
};
|
|
828
837
|
};
|
|
829
838
|
const createCohortId = ()=>toolkit.nanoid();
|
|
@@ -1497,6 +1506,22 @@ const fetchFencePresignedURL = async ({ guid, method = 'GET', onAbort = ()=>null
|
|
|
1497
1506
|
return await response.json();
|
|
1498
1507
|
};
|
|
1499
1508
|
|
|
1509
|
+
/**
|
|
1510
|
+
* Converts HistogramData to HistogramDataAsStringKey by ensuring the key is a string.
|
|
1511
|
+
* If the key is already a string, it's used as is.
|
|
1512
|
+
* If the key is a number tuple [min, max], it's converted to a string in the format "min-max".
|
|
1513
|
+
*
|
|
1514
|
+
* @param data The HistogramData object to convert
|
|
1515
|
+
* @returns HistogramDataAsStringKey with the converted key
|
|
1516
|
+
*/ const convertToHistogramDataAsStringKey = (data)=>{
|
|
1517
|
+
return {
|
|
1518
|
+
key: typeof data.key === 'string' ? data.key : `${data.key[0]}-${data.key[1]}`,
|
|
1519
|
+
count: data.count
|
|
1520
|
+
};
|
|
1521
|
+
};
|
|
1522
|
+
const calculatePercentageAsNumber = (count, total)=>count ? count / total * 100 : 0;
|
|
1523
|
+
const calculatePercentageAsString = (count, total)=>`${(count / total * 100).toFixed(2)}%`;
|
|
1524
|
+
|
|
1500
1525
|
const queryWTSFederatedLoginStatus = async (signal)=>{
|
|
1501
1526
|
try {
|
|
1502
1527
|
const results = await fetchJSONDataFromURL(`${GEN3_WTS_API}/external_oidc/`, false, HttpMethod.GET, undefined, signal);
|
|
@@ -1807,19 +1832,42 @@ const CoreProvider = ({ children })=>{
|
|
|
1807
1832
|
// Add more endpoints here
|
|
1808
1833
|
const { useAskQuestionMutation, useGetAISearchStatusQuery, useGetAISearchVersionQuery } = aiSearchApi;
|
|
1809
1834
|
|
|
1835
|
+
const TAGS$1 = 'authz';
|
|
1836
|
+
const authzTags = gen3Api.enhanceEndpoints({
|
|
1837
|
+
addTagTypes: [
|
|
1838
|
+
TAGS$1
|
|
1839
|
+
]
|
|
1840
|
+
});
|
|
1810
1841
|
/**
|
|
1811
1842
|
* Creates the authzApi for checking arborist permissions for a selected user
|
|
1812
1843
|
* @see https://petstore.swagger.io/?url=https://raw.githubusercontent.com/uc-cdis/arborist/master/docs/openapi.yaml#/auth/get_auth_mapping
|
|
1813
1844
|
* @see https://github.com/uc-cdis/arborist/blob/master/docs/relationships.simplified.png
|
|
1814
1845
|
* @returns: An arborist response dict of user permissions {method, service} for each resource path.
|
|
1815
|
-
*/ const authzApi =
|
|
1846
|
+
*/ const authzApi = authzTags.injectEndpoints({
|
|
1816
1847
|
endpoints: (builder)=>({
|
|
1817
1848
|
getAuthzMappings: builder.query({
|
|
1818
1849
|
query: ()=>`${GEN3_AUTHZ_API}/mapping`
|
|
1850
|
+
}),
|
|
1851
|
+
getAuthzResources: builder.query({
|
|
1852
|
+
query: ()=>({
|
|
1853
|
+
url: `${GEN3_AUTHZ_API}/resources`,
|
|
1854
|
+
method: 'GET'
|
|
1855
|
+
})
|
|
1856
|
+
}),
|
|
1857
|
+
createAuthzResource: builder.mutation({
|
|
1858
|
+
query: (request)=>({
|
|
1859
|
+
// url: `${GEN3_AUTHZ_API}/resources/${request.resourcePath}${request?.path ? `&p=${request.path}` : ''}`,
|
|
1860
|
+
url: `${GEN3_AUTHZ_API}/resources`,
|
|
1861
|
+
method: 'POST',
|
|
1862
|
+
body: request.data
|
|
1863
|
+
}),
|
|
1864
|
+
invalidatesTags: [
|
|
1865
|
+
TAGS$1
|
|
1866
|
+
]
|
|
1819
1867
|
})
|
|
1820
1868
|
})
|
|
1821
1869
|
});
|
|
1822
|
-
const { useGetAuthzMappingsQuery, useLazyGetAuthzMappingsQuery } = authzApi;
|
|
1870
|
+
const { useGetAuthzMappingsQuery, useLazyGetAuthzMappingsQuery, useGetAuthzResourcesQuery, useLazyGetAuthzResourcesQuery, useCreateAuthzResourceMutation } = authzApi;
|
|
1823
1871
|
const selectAuthzMapping = authzApi.endpoints.getAuthzMappings.select();
|
|
1824
1872
|
const selectAuthzMappingData = toolkit.createSelector(selectAuthzMapping, (authzMapping)=>authzMapping?.data ?? {
|
|
1825
1873
|
mappings: []
|
|
@@ -2937,6 +2985,7 @@ const handleOperation = (handler, op)=>{
|
|
|
2937
2985
|
case 'nested':
|
|
2938
2986
|
return handler.handleNestedFilter(op);
|
|
2939
2987
|
case 'in':
|
|
2988
|
+
case 'includes':
|
|
2940
2989
|
return handler.handleIncludes(op);
|
|
2941
2990
|
case 'excludeifany':
|
|
2942
2991
|
return handler.handleExcludeIfAny(op);
|
|
@@ -3091,6 +3140,9 @@ function isUnion(value) {
|
|
|
3091
3140
|
function isIntersection(value) {
|
|
3092
3141
|
return typeof value === 'object' && value !== null && value.operator === 'and' && Array.isArray(value.operands);
|
|
3093
3142
|
}
|
|
3143
|
+
const isOperandsType = (operation)=>{
|
|
3144
|
+
return operation?.operands !== undefined;
|
|
3145
|
+
};
|
|
3094
3146
|
|
|
3095
3147
|
const FieldNameOverrides = {};
|
|
3096
3148
|
const COMMON_PREPOSITIONS = [
|
|
@@ -3930,7 +3982,7 @@ const buildGetAggregationQuery = (type, fields, filters, accessibility = Accessi
|
|
|
3930
3982
|
};
|
|
3931
3983
|
return queryBody;
|
|
3932
3984
|
};
|
|
3933
|
-
const { useGetRawDataAndTotalCountsQuery, useGetAccessibleDataQuery, useGetAllFieldsForTypeQuery, useGetAggsQuery, useGetAggsNoFilterSelfQuery, useLazyGetAggsQuery, useGetSubAggsQuery, useGetCountsQuery, useGetFieldCountSummaryQuery, useGetFieldsForIndexQuery, useGetSharedFieldsForIndexQuery, useGeneralGQLQuery, useLazyGeneralGQLQuery } = explorerApi;
|
|
3985
|
+
const { useGetRawDataAndTotalCountsQuery, useGetAccessibleDataQuery, useGetAllFieldsForTypeQuery, useGetAggsQuery, useGetAggsNoFilterSelfQuery, useLazyGetAggsQuery, useLazyGetAggsNoFilterSelfQuery, useGetSubAggsQuery, useGetCountsQuery, useGetFieldCountSummaryQuery, useGetFieldsForIndexQuery, useGetSharedFieldsForIndexQuery, useGeneralGQLQuery, useLazyGeneralGQLQuery } = explorerApi;
|
|
3934
3986
|
|
|
3935
3987
|
/**
|
|
3936
3988
|
* Creates a Guppy API for fetching bulk (> 10K rows) elasticsearch data
|
|
@@ -4210,6 +4262,178 @@ const queryMultipleMDSRecords = async (guids, useAggMDS = false, signal)=>{
|
|
|
4210
4262
|
});
|
|
4211
4263
|
};
|
|
4212
4264
|
|
|
4265
|
+
class MissingServiceConfigurationError extends Error {
|
|
4266
|
+
constructor(serviceName){
|
|
4267
|
+
super(`Missing service configuration for ${serviceName}`);
|
|
4268
|
+
this.name = 'MissingServiceConfigurationError';
|
|
4269
|
+
}
|
|
4270
|
+
}
|
|
4271
|
+
|
|
4272
|
+
// Default console logger
|
|
4273
|
+
const defaultLogger = {
|
|
4274
|
+
warn: (message)=>console.warn(message),
|
|
4275
|
+
error: (message)=>console.error(message)
|
|
4276
|
+
};
|
|
4277
|
+
|
|
4278
|
+
const DefaultRemoteSupportAction = async ()=>{
|
|
4279
|
+
throw new Error('No remote support service registered for this service name');
|
|
4280
|
+
};
|
|
4281
|
+
class RemoteSupportServiceRegistry {
|
|
4282
|
+
constructor(logger = defaultLogger){
|
|
4283
|
+
this.services = new Map();
|
|
4284
|
+
this.logger = logger;
|
|
4285
|
+
}
|
|
4286
|
+
/**
|
|
4287
|
+
* Register a remote support service
|
|
4288
|
+
* @param serviceName - Unique identifier for the service
|
|
4289
|
+
* @param action - The action function to execute for this service
|
|
4290
|
+
* @throws Error if serviceName or action is invalid
|
|
4291
|
+
*/ registerService(serviceName, action) {
|
|
4292
|
+
if (!serviceName?.trim()) {
|
|
4293
|
+
throw new Error('Service name cannot be empty or null');
|
|
4294
|
+
}
|
|
4295
|
+
if (typeof action !== 'function') {
|
|
4296
|
+
throw new Error('Action must be a function');
|
|
4297
|
+
}
|
|
4298
|
+
if (this.services.has(serviceName)) {
|
|
4299
|
+
this.logger.warn(`Service '${serviceName}' is already registered and will be overwritten.`);
|
|
4300
|
+
}
|
|
4301
|
+
this.services.set(serviceName, action);
|
|
4302
|
+
}
|
|
4303
|
+
/**
|
|
4304
|
+
* Get a registered service action
|
|
4305
|
+
* @param serviceName - The service identifier
|
|
4306
|
+
* @returns The registered action or default action if not found
|
|
4307
|
+
*/ getSupportService(serviceName) {
|
|
4308
|
+
if (!serviceName?.trim()) {
|
|
4309
|
+
this.logger.error('Service name cannot be empty or null');
|
|
4310
|
+
return DefaultRemoteSupportAction;
|
|
4311
|
+
}
|
|
4312
|
+
const service = this.services.get(serviceName);
|
|
4313
|
+
if (!service) {
|
|
4314
|
+
this.logger.warn(`Service '${serviceName}' not registered. Using default action.`);
|
|
4315
|
+
throw new MissingServiceConfigurationError(serviceName);
|
|
4316
|
+
}
|
|
4317
|
+
return service;
|
|
4318
|
+
}
|
|
4319
|
+
/**
|
|
4320
|
+
* Check if a service is registered
|
|
4321
|
+
* @param serviceName - The service identifier
|
|
4322
|
+
* @returns true if service is registered
|
|
4323
|
+
*/ hasService(serviceName) {
|
|
4324
|
+
return this.services.has(serviceName);
|
|
4325
|
+
}
|
|
4326
|
+
/**
|
|
4327
|
+
* Get all registered service names
|
|
4328
|
+
* @returns Array of registered service names
|
|
4329
|
+
*/ getRegisteredServices() {
|
|
4330
|
+
return Array.from(this.services.keys());
|
|
4331
|
+
}
|
|
4332
|
+
/**
|
|
4333
|
+
* Unregister a service
|
|
4334
|
+
* @param serviceName - The service identifier
|
|
4335
|
+
* @returns true if service was removed, false if it wasn't registered
|
|
4336
|
+
*/ unregisterService(serviceName) {
|
|
4337
|
+
return this.services.delete(serviceName);
|
|
4338
|
+
}
|
|
4339
|
+
/**
|
|
4340
|
+
* Clear all registered services
|
|
4341
|
+
*/ clear() {
|
|
4342
|
+
this.services.clear();
|
|
4343
|
+
}
|
|
4344
|
+
/**
|
|
4345
|
+
* Get the number of registered services
|
|
4346
|
+
*/ size() {
|
|
4347
|
+
return this.services.size;
|
|
4348
|
+
}
|
|
4349
|
+
}
|
|
4350
|
+
let defaultRegistryInstance = null;
|
|
4351
|
+
function getRemoteSupportServiceRegistry(logger) {
|
|
4352
|
+
if (!defaultRegistryInstance) {
|
|
4353
|
+
defaultRegistryInstance = new RemoteSupportServiceRegistry(logger);
|
|
4354
|
+
}
|
|
4355
|
+
return defaultRegistryInstance;
|
|
4356
|
+
}
|
|
4357
|
+
|
|
4358
|
+
const ZENDESK_MAX_SUBJECT_LENGTH = 255;
|
|
4359
|
+
const ZENDESK_DOMAIN = process.env.NEXT_PUBLIC_GEN3_ZENDESK_API || 'https://<SUBDOMAIN_NAME>.zendesk.com';
|
|
4360
|
+
const createZendeskTicket = async ({ subject, fullName, email, contents }, configuration)=>{
|
|
4361
|
+
const { zendeskSubdomainName } = configuration;
|
|
4362
|
+
try {
|
|
4363
|
+
let zendeskTicketCreationURL = `${ZENDESK_DOMAIN}/api/v2/requests`;
|
|
4364
|
+
if (zendeskSubdomainName) {
|
|
4365
|
+
zendeskTicketCreationURL = zendeskTicketCreationURL.replace('<SUBDOMAIN_NAME>', zendeskSubdomainName);
|
|
4366
|
+
} else {
|
|
4367
|
+
// This is the default Gen3 helpdesk subdomain
|
|
4368
|
+
zendeskTicketCreationURL = zendeskTicketCreationURL.replace('<SUBDOMAIN_NAME>', 'gen3support');
|
|
4369
|
+
}
|
|
4370
|
+
let ticketSubject = subject;
|
|
4371
|
+
if (subject.length > ZENDESK_MAX_SUBJECT_LENGTH) {
|
|
4372
|
+
ticketSubject = `${subject.substring(0, ZENDESK_MAX_SUBJECT_LENGTH - 3)}...`;
|
|
4373
|
+
}
|
|
4374
|
+
await fetch(zendeskTicketCreationURL, {
|
|
4375
|
+
method: 'POST',
|
|
4376
|
+
headers: {
|
|
4377
|
+
'Content-Type': 'application/json'
|
|
4378
|
+
},
|
|
4379
|
+
body: JSON.stringify({
|
|
4380
|
+
request: {
|
|
4381
|
+
subject: ticketSubject,
|
|
4382
|
+
comment: {
|
|
4383
|
+
body: contents
|
|
4384
|
+
},
|
|
4385
|
+
requester: {
|
|
4386
|
+
name: fullName,
|
|
4387
|
+
email
|
|
4388
|
+
}
|
|
4389
|
+
}
|
|
4390
|
+
})
|
|
4391
|
+
}).then((response)=>{
|
|
4392
|
+
if (response.status !== 201) {
|
|
4393
|
+
throw new Error(`Request for create Zendesk ticket failed with status ${response.status}`);
|
|
4394
|
+
}
|
|
4395
|
+
return response;
|
|
4396
|
+
});
|
|
4397
|
+
} catch (err) {
|
|
4398
|
+
throw new Error(`Request for create Zendesk ticket failed: ${err}`);
|
|
4399
|
+
}
|
|
4400
|
+
};
|
|
4401
|
+
|
|
4402
|
+
const registerDefaultRemoteSupport = ()=>{
|
|
4403
|
+
const registry = getRemoteSupportServiceRegistry();
|
|
4404
|
+
registry.registerService('zenDesk', createZendeskTicket);
|
|
4405
|
+
};
|
|
4406
|
+
|
|
4407
|
+
/**
|
|
4408
|
+
* Converts a Partial<RequestListQuery> object to a URL query string
|
|
4409
|
+
* @param params - The parameters to convert
|
|
4410
|
+
* @returns A formatted query string (including the leading '?')
|
|
4411
|
+
*/ const convertToQueryString = (params)=>{
|
|
4412
|
+
if (!params || Object.keys(params).length === 0) {
|
|
4413
|
+
return '';
|
|
4414
|
+
}
|
|
4415
|
+
const queryParts = [];
|
|
4416
|
+
// Handle policy_ids array
|
|
4417
|
+
if (params.policy_ids && params.policy_ids.length > 0) {
|
|
4418
|
+
params.policy_ids.forEach((id)=>{
|
|
4419
|
+
queryParts.push(`policy_id=${encodeURIComponent(id)}`);
|
|
4420
|
+
});
|
|
4421
|
+
}
|
|
4422
|
+
if (params.resource_ids && params.resource_ids.length > 0) {
|
|
4423
|
+
params.resource_ids.forEach((id)=>{
|
|
4424
|
+
queryParts.push(`resource_id=${encodeURIComponent(id)}`);
|
|
4425
|
+
});
|
|
4426
|
+
}
|
|
4427
|
+
// Handle status
|
|
4428
|
+
if (params.status !== undefined) {
|
|
4429
|
+
queryParts.push(`status=${encodeURIComponent(params.status)}`);
|
|
4430
|
+
}
|
|
4431
|
+
// Handle revoke
|
|
4432
|
+
if (params.revoke !== undefined) {
|
|
4433
|
+
queryParts.push(`revoke=${params.revoke}`);
|
|
4434
|
+
}
|
|
4435
|
+
return queryParts.length > 0 ? `?${queryParts.join('&')}` : undefined;
|
|
4436
|
+
};
|
|
4213
4437
|
/**
|
|
4214
4438
|
* Defines requester service using a base URL and expected endpoints. Derived from gen3Api core API.
|
|
4215
4439
|
*
|
|
@@ -4218,9 +4442,30 @@ const queryMultipleMDSRecords = async (guids, useAggMDS = false, signal)=>{
|
|
|
4218
4442
|
* @see https://github.com/uc-cdis/requestor?tab=readme-ov-file#requestor
|
|
4219
4443
|
* @see https://petstore.swagger.io/?url=https://raw.githubusercontent.com/uc-cdis/requestor/master/docs/openapi.yaml#/Query/list_requests_request_get
|
|
4220
4444
|
* @returns: Object of request made
|
|
4221
|
-
*/
|
|
4445
|
+
*/ //TODO convert snakeCase yTpes o camelCase by adding transform respomse
|
|
4446
|
+
const requestorApi = gen3Api.injectEndpoints({
|
|
4222
4447
|
endpoints: (builder)=>({
|
|
4448
|
+
status: builder.query({
|
|
4449
|
+
// get status of requestor service
|
|
4450
|
+
query: ()=>`${GEN3_REQUESTOR_API}/_status`
|
|
4451
|
+
}),
|
|
4223
4452
|
request: builder.query({
|
|
4453
|
+
query: (params)=>{
|
|
4454
|
+
const strParams = params ? convertToQueryString(params) : undefined;
|
|
4455
|
+
return `${GEN3_REQUESTOR_API}/request${strParams ?? ''}`;
|
|
4456
|
+
}
|
|
4457
|
+
}),
|
|
4458
|
+
userRequest: builder.query({
|
|
4459
|
+
// get a list of requests
|
|
4460
|
+
query: (params)=>{
|
|
4461
|
+
const strParams = params ? convertToQueryString(params) : undefined;
|
|
4462
|
+
return `${GEN3_REQUESTOR_API}/request/user${strParams ?? ''}`;
|
|
4463
|
+
}
|
|
4464
|
+
}),
|
|
4465
|
+
requestById: builder.query({
|
|
4466
|
+
query: (requestId)=>`${GEN3_REQUESTOR_API}/request/${requestId}`
|
|
4467
|
+
}),
|
|
4468
|
+
createRequest: builder.mutation({
|
|
4224
4469
|
query: (queryBody)=>({
|
|
4225
4470
|
url: `${GEN3_REQUESTOR_API}/request`,
|
|
4226
4471
|
method: 'POST',
|
|
@@ -4234,7 +4479,7 @@ const queryMultipleMDSRecords = async (guids, useAggMDS = false, signal)=>{
|
|
|
4234
4479
|
})
|
|
4235
4480
|
})
|
|
4236
4481
|
});
|
|
4237
|
-
const { useRequestQuery, useLazyRequestQuery } = requestorApi;
|
|
4482
|
+
const { useCreateRequestMutation, useRequestQuery, useLazyRequestQuery, useStatusQuery: useRequestorStatusQuery, useRequestByIdQuery, useUserRequestQuery } = requestorApi;
|
|
4238
4483
|
|
|
4239
4484
|
/**
|
|
4240
4485
|
* Creates a loadingStatusApi for checking the status of a sower data download job
|
|
@@ -4635,6 +4880,7 @@ exports.GEN3_WORKSPACE_API = GEN3_WORKSPACE_API;
|
|
|
4635
4880
|
exports.HTTPError = HTTPError;
|
|
4636
4881
|
exports.HTTPErrorMessages = HTTPErrorMessages;
|
|
4637
4882
|
exports.HttpMethod = HttpMethod;
|
|
4883
|
+
exports.MissingServiceConfigurationError = MissingServiceConfigurationError;
|
|
4638
4884
|
exports.Modals = Modals;
|
|
4639
4885
|
exports.PodConditionType = PodConditionType;
|
|
4640
4886
|
exports.PodStatus = PodStatus;
|
|
@@ -4643,11 +4889,15 @@ exports.WorkspaceStatus = WorkspaceStatus;
|
|
|
4643
4889
|
exports.addNewDefaultUnsavedCohort = addNewDefaultUnsavedCohort;
|
|
4644
4890
|
exports.buildGetAggregationQuery = buildGetAggregationQuery;
|
|
4645
4891
|
exports.buildListItemsGroupedByDataset = buildListItemsGroupedByDataset;
|
|
4892
|
+
exports.calculatePercentageAsNumber = calculatePercentageAsNumber;
|
|
4893
|
+
exports.calculatePercentageAsString = calculatePercentageAsString;
|
|
4646
4894
|
exports.clearActiveWorkspaceId = clearActiveWorkspaceId;
|
|
4647
4895
|
exports.clearCohortFilters = clearCohortFilters;
|
|
4648
4896
|
exports.cohortReducer = cohortReducer;
|
|
4649
4897
|
exports.convertFilterSetToGqlFilter = convertFilterSetToGqlFilter;
|
|
4650
4898
|
exports.convertFilterToGqlFilter = convertFilterToGqlFilter;
|
|
4899
|
+
exports.convertToHistogramDataAsStringKey = convertToHistogramDataAsStringKey;
|
|
4900
|
+
exports.convertToQueryString = convertToQueryString;
|
|
4651
4901
|
exports.coreStore = coreStore;
|
|
4652
4902
|
exports.createAppApiForRTKQ = createAppApiForRTKQ;
|
|
4653
4903
|
exports.createAppStore = createAppStore;
|
|
@@ -4675,6 +4925,7 @@ exports.getCurrentTimestamp = getCurrentTimestamp;
|
|
|
4675
4925
|
exports.getFederatedLoginStatus = getFederatedLoginStatus;
|
|
4676
4926
|
exports.getGen3AppId = getGen3AppId;
|
|
4677
4927
|
exports.getNumberOfItemsInDatalist = getNumberOfItemsInDatalist;
|
|
4928
|
+
exports.getRemoteSupportServiceRegistry = getRemoteSupportServiceRegistry;
|
|
4678
4929
|
exports.getTimestamp = getTimestamp;
|
|
4679
4930
|
exports.graphQLAPI = graphQLAPI;
|
|
4680
4931
|
exports.graphQLWithTags = graphQLWithTags;
|
|
@@ -4715,6 +4966,7 @@ exports.isJSONValue = isJSONValue;
|
|
|
4715
4966
|
exports.isJSONValueArray = isJSONValueArray;
|
|
4716
4967
|
exports.isNotDefined = isNotDefined;
|
|
4717
4968
|
exports.isObject = isObject;
|
|
4969
|
+
exports.isOperandsType = isOperandsType;
|
|
4718
4970
|
exports.isOperationWithField = isOperationWithField;
|
|
4719
4971
|
exports.isOperatorWithFieldAndArrayOfOperands = isOperatorWithFieldAndArrayOfOperands;
|
|
4720
4972
|
exports.isPending = isPending;
|
|
@@ -4736,6 +4988,7 @@ exports.processHistogramResponse = processHistogramResponse;
|
|
|
4736
4988
|
exports.projectCodeFromResourcePath = projectCodeFromResourcePath;
|
|
4737
4989
|
exports.queryMultipleMDSRecords = queryMultipleMDSRecords;
|
|
4738
4990
|
exports.rawDataQueryStrForEachField = rawDataQueryStrForEachField;
|
|
4991
|
+
exports.registerDefaultRemoteSupport = registerDefaultRemoteSupport;
|
|
4739
4992
|
exports.removeCohort = removeCohort;
|
|
4740
4993
|
exports.removeCohortFilter = removeCohortFilter;
|
|
4741
4994
|
exports.requestorApi = requestorApi;
|
|
@@ -4804,6 +5057,8 @@ exports.useAskQuestionMutation = useAskQuestionMutation;
|
|
|
4804
5057
|
exports.useAuthorizeFromCredentialsMutation = useAuthorizeFromCredentialsMutation;
|
|
4805
5058
|
exports.useCoreDispatch = useCoreDispatch;
|
|
4806
5059
|
exports.useCoreSelector = useCoreSelector;
|
|
5060
|
+
exports.useCreateAuthzResourceMutation = useCreateAuthzResourceMutation;
|
|
5061
|
+
exports.useCreateRequestMutation = useCreateRequestMutation;
|
|
4807
5062
|
exports.useDataLibrary = useDataLibrary;
|
|
4808
5063
|
exports.useDownloadFromGuppyMutation = useDownloadFromGuppyMutation;
|
|
4809
5064
|
exports.useFetchUserDetailsQuery = useFetchUserDetailsQuery;
|
|
@@ -4818,6 +5073,7 @@ exports.useGetAggsQuery = useGetAggsQuery;
|
|
|
4818
5073
|
exports.useGetAllFieldsForTypeQuery = useGetAllFieldsForTypeQuery;
|
|
4819
5074
|
exports.useGetArrayTypes = useGetArrayTypes;
|
|
4820
5075
|
exports.useGetAuthzMappingsQuery = useGetAuthzMappingsQuery;
|
|
5076
|
+
exports.useGetAuthzResourcesQuery = useGetAuthzResourcesQuery;
|
|
4821
5077
|
exports.useGetCSRFQuery = useGetCSRFQuery;
|
|
4822
5078
|
exports.useGetCohortManifestQuery = useGetCohortManifestQuery;
|
|
4823
5079
|
exports.useGetCountsQuery = useGetCountsQuery;
|
|
@@ -4863,8 +5119,10 @@ exports.useIsUserLoggedIn = useIsUserLoggedIn;
|
|
|
4863
5119
|
exports.useLaunchWorkspaceMutation = useLaunchWorkspaceMutation;
|
|
4864
5120
|
exports.useLazyFetchUserDetailsQuery = useLazyFetchUserDetailsQuery;
|
|
4865
5121
|
exports.useLazyGeneralGQLQuery = useLazyGeneralGQLQuery;
|
|
5122
|
+
exports.useLazyGetAggsNoFilterSelfQuery = useLazyGetAggsNoFilterSelfQuery;
|
|
4866
5123
|
exports.useLazyGetAggsQuery = useLazyGetAggsQuery;
|
|
4867
5124
|
exports.useLazyGetAuthzMappingsQuery = useLazyGetAuthzMappingsQuery;
|
|
5125
|
+
exports.useLazyGetAuthzResourcesQuery = useLazyGetAuthzResourcesQuery;
|
|
4868
5126
|
exports.useLazyGetCSRFQuery = useLazyGetCSRFQuery;
|
|
4869
5127
|
exports.useLazyGetCrosswalkDataQuery = useLazyGetCrosswalkDataQuery;
|
|
4870
5128
|
exports.useLazyGetDownloadQuery = useLazyGetDownloadQuery;
|
|
@@ -4877,11 +5135,14 @@ exports.useLazyIsExternalConnectedQuery = useLazyIsExternalConnectedQuery;
|
|
|
4877
5135
|
exports.useLazyRequestQuery = useLazyRequestQuery;
|
|
4878
5136
|
exports.usePrevious = usePrevious;
|
|
4879
5137
|
exports.useRemoveCredentialMutation = useRemoveCredentialMutation;
|
|
5138
|
+
exports.useRequestByIdQuery = useRequestByIdQuery;
|
|
4880
5139
|
exports.useRequestQuery = useRequestQuery;
|
|
5140
|
+
exports.useRequestorStatusQuery = useRequestorStatusQuery;
|
|
4881
5141
|
exports.useSetCurrentPayModelMutation = useSetCurrentPayModelMutation;
|
|
4882
5142
|
exports.useSubmitSowerJobMutation = useSubmitSowerJobMutation;
|
|
4883
5143
|
exports.useTerminateWorkspaceMutation = useTerminateWorkspaceMutation;
|
|
4884
5144
|
exports.useUserAuth = useUserAuth;
|
|
5145
|
+
exports.useUserRequestQuery = useUserRequestQuery;
|
|
4885
5146
|
exports.userHasCreateOrUpdateOnAnyProject = userHasCreateOrUpdateOnAnyProject;
|
|
4886
5147
|
exports.userHasDataUpload = userHasDataUpload;
|
|
4887
5148
|
exports.userHasMethodForServiceOnProject = userHasMethodForServiceOnProject;
|