synapse-react-client 4.0.43 → 4.0.45
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/SWC.index.d.ts +1 -1
- package/dist/SWC.index.js +2 -2
- package/dist/SWC.index.js.map +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementList.d.ts +2 -1
- package/dist/components/AccessRequirementList/AccessRequirementList.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementList.js +126 -125
- package/dist/components/AccessRequirementList/AccessRequirementList.js.map +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementListItem.d.ts +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementListItem.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementListItem.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.js +28 -16
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.js +99 -97
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/requestFlowTypes.d.ts +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/requestFlowTypes.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/RequestDataStep.d.ts +1 -4
- package/dist/components/AccessRequirementList/RequestDataStep.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/RequestDataStep.js +15 -18
- package/dist/components/AccessRequirementList/RequestDataStep.js.map +1 -1
- package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.d.ts.map +1 -1
- package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.js +52 -49
- package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.js.map +1 -1
- package/dist/components/DataGrid/DataGridWebSocket.d.ts +29 -1
- package/dist/components/DataGrid/DataGridWebSocket.d.ts.map +1 -1
- package/dist/components/DataGrid/DataGridWebSocket.js +48 -16
- package/dist/components/DataGrid/DataGridWebSocket.js.map +1 -1
- package/dist/components/DataGrid/components/GridLoadingState.d.ts +2 -2
- package/dist/components/DataGrid/components/GridLoadingState.d.ts.map +1 -1
- package/dist/components/DataGrid/components/GridLoadingState.js +2 -2
- package/dist/components/DataGrid/components/GridLoadingState.js.map +1 -1
- package/dist/components/DataGrid/useDataGridWebsocket.d.ts.map +1 -1
- package/dist/components/DataGrid/useDataGridWebsocket.js +2 -1
- package/dist/components/DataGrid/useDataGridWebsocket.js.map +1 -1
- package/dist/components/EntityViewScopeEditor/EntityViewMaskEditor.d.ts.map +1 -1
- package/dist/components/EntityViewScopeEditor/EntityViewMaskEditor.js +11 -10
- package/dist/components/EntityViewScopeEditor/EntityViewMaskEditor.js.map +1 -1
- package/dist/components/FormTemplateEditor/useSaveFormTemplate.d.ts.map +1 -1
- package/dist/components/FormTemplateEditor/useSaveFormTemplate.js.map +1 -1
- package/dist/components/FormTemplateReferenceField/FormTemplatePreviewDialog.d.ts +9 -0
- package/dist/components/FormTemplateReferenceField/FormTemplatePreviewDialog.d.ts.map +1 -0
- package/dist/components/FormTemplateReferenceField/FormTemplatePreviewDialog.js +45 -0
- package/dist/components/FormTemplateReferenceField/FormTemplatePreviewDialog.js.map +1 -0
- package/dist/components/FormTemplateReferenceField/FormTemplateReferenceField.d.ts +22 -0
- package/dist/components/FormTemplateReferenceField/FormTemplateReferenceField.d.ts.map +1 -0
- package/dist/components/FormTemplateReferenceField/FormTemplateReferenceField.js +139 -0
- package/dist/components/FormTemplateReferenceField/FormTemplateReferenceField.js.map +1 -0
- package/dist/components/Forum/ForumTable.d.ts +17 -5
- package/dist/components/Forum/ForumTable.d.ts.map +1 -1
- package/dist/components/Forum/ForumTable.js +94 -77
- package/dist/components/Forum/ForumTable.js.map +1 -1
- package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.d.ts.map +1 -1
- package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.js +142 -108
- package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.js.map +1 -1
- package/dist/components/SetBasicAccessRequirementFields/AccessorRequirements.d.ts.map +1 -1
- package/dist/components/SetBasicAccessRequirementFields/AccessorRequirements.js +15 -15
- package/dist/components/SetBasicAccessRequirementFields/AccessorRequirements.js.map +1 -1
- package/dist/components/SetManagedAccessRequirementFields/DataUseCertificateFields.d.ts +10 -0
- package/dist/components/SetManagedAccessRequirementFields/DataUseCertificateFields.d.ts.map +1 -0
- package/dist/components/SetManagedAccessRequirementFields/DataUseCertificateFields.js +81 -0
- package/dist/components/SetManagedAccessRequirementFields/DataUseCertificateFields.js.map +1 -0
- package/dist/components/SetManagedAccessRequirementFields/ExpirationPeriodField.d.ts +9 -0
- package/dist/components/SetManagedAccessRequirementFields/ExpirationPeriodField.d.ts.map +1 -0
- package/dist/components/SetManagedAccessRequirementFields/ExpirationPeriodField.js +32 -0
- package/dist/components/SetManagedAccessRequirementFields/ExpirationPeriodField.js.map +1 -0
- package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.d.ts +0 -2
- package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.d.ts.map +1 -1
- package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.js +79 -154
- package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.js.map +1 -1
- package/dist/components/TanStackTable/TanStackTableUtils.d.ts.map +1 -1
- package/dist/components/TanStackTable/TanStackTableUtils.js +8 -5
- package/dist/components/TanStackTable/TanStackTableUtils.js.map +1 -1
- package/dist/components/dataaccess/SubmissionPage/DataAccessSubmissionFileHandleLink.d.ts +5 -0
- package/dist/components/dataaccess/SubmissionPage/DataAccessSubmissionFileHandleLink.d.ts.map +1 -0
- package/dist/components/dataaccess/SubmissionPage/DataAccessSubmissionFileHandleLink.js +20 -0
- package/dist/components/dataaccess/SubmissionPage/DataAccessSubmissionFileHandleLink.js.map +1 -0
- package/dist/components/dataaccess/SubmissionPage/SubmissionPage.d.ts.map +1 -1
- package/dist/components/dataaccess/SubmissionPage/SubmissionPage.js +183 -188
- package/dist/components/dataaccess/SubmissionPage/SubmissionPage.js.map +1 -1
- package/dist/components/dataaccess/SubmissionPage/SubmissionSchemaAnswers.d.ts +25 -0
- package/dist/components/dataaccess/SubmissionPage/SubmissionSchemaAnswers.d.ts.map +1 -0
- package/dist/components/dataaccess/SubmissionPage/SubmissionSchemaAnswers.js +125 -0
- package/dist/components/dataaccess/SubmissionPage/SubmissionSchemaAnswers.js.map +1 -0
- package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.d.ts.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.js +4 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.js.map +1 -1
- package/dist/mocks/accessRequirement/mockJsonSchemaAccessRequirements.d.ts +5 -0
- package/dist/mocks/accessRequirement/mockJsonSchemaAccessRequirements.d.ts.map +1 -1
- package/dist/mocks/accessRequirement/mockJsonSchemaAccessRequirements.js +37 -26
- package/dist/mocks/accessRequirement/mockJsonSchemaAccessRequirements.js.map +1 -1
- package/dist/mocks/dataaccess/MockSubmission.d.ts +76 -0
- package/dist/mocks/dataaccess/MockSubmission.d.ts.map +1 -1
- package/dist/mocks/dataaccess/MockSubmission.js +108 -63
- package/dist/mocks/dataaccess/MockSubmission.js.map +1 -1
- package/dist/mocks/msw/handlers/discussionHandlers.d.ts.map +1 -1
- package/dist/mocks/msw/handlers/discussionHandlers.js +40 -33
- package/dist/mocks/msw/handlers/discussionHandlers.js.map +1 -1
- package/dist/style/components/_submission-page.scss +0 -4
- package/dist/style/main.css +1 -1
- package/dist/synapse-client/SynapseClient.d.ts +10 -0
- package/dist/synapse-client/SynapseClient.d.ts.map +1 -1
- package/dist/synapse-client/SynapseClient.js +486 -482
- package/dist/synapse-client/SynapseClient.js.map +1 -1
- package/dist/synapse-client/index.js +3 -3
- package/dist/synapse-queries/KeyFactory.d.ts +13 -1
- package/dist/synapse-queries/KeyFactory.d.ts.map +1 -1
- package/dist/synapse-queries/KeyFactory.js +11 -1
- package/dist/synapse-queries/KeyFactory.js.map +1 -1
- package/dist/synapse-queries/dataaccess/index.js +4 -4
- package/dist/synapse-queries/dataaccess/useAccessRequirements.d.ts.map +1 -1
- package/dist/synapse-queries/dataaccess/useAccessRequirements.js +4 -1
- package/dist/synapse-queries/dataaccess/useAccessRequirements.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useEDuc.d.ts +19 -5
- package/dist/synapse-queries/dataaccess/useEDuc.d.ts.map +1 -1
- package/dist/synapse-queries/dataaccess/useEDuc.js +29 -21
- package/dist/synapse-queries/dataaccess/useEDuc.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useFormTemplate.d.ts +12 -0
- package/dist/synapse-queries/dataaccess/useFormTemplate.d.ts.map +1 -1
- package/dist/synapse-queries/dataaccess/useFormTemplate.js +52 -30
- package/dist/synapse-queries/dataaccess/useFormTemplate.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useGeneratedSubmissionForm.d.ts +37 -0
- package/dist/synapse-queries/dataaccess/useGeneratedSubmissionForm.d.ts.map +1 -0
- package/dist/synapse-queries/dataaccess/useGeneratedSubmissionForm.js +35 -0
- package/dist/synapse-queries/dataaccess/useGeneratedSubmissionForm.js.map +1 -0
- package/dist/synapse-queries/forum/useForum.d.ts +5 -1
- package/dist/synapse-queries/forum/useForum.d.ts.map +1 -1
- package/dist/synapse-queries/forum/useForum.js +23 -1
- package/dist/synapse-queries/forum/useForum.js.map +1 -1
- package/dist/synapse-queries/grid/useEstablishWebsocketConnection.d.ts +2 -0
- package/dist/synapse-queries/grid/useEstablishWebsocketConnection.d.ts.map +1 -1
- package/dist/synapse-queries/grid/useEstablishWebsocketConnection.js.map +1 -1
- package/dist/synapse-queries/index.js +185 -184
- package/dist/synapse-queries/jsonschema/useCreateJsonSchema.d.ts +5 -3
- package/dist/synapse-queries/jsonschema/useCreateJsonSchema.d.ts.map +1 -1
- package/dist/synapse-queries/jsonschema/useCreateJsonSchema.js +12 -15
- package/dist/synapse-queries/jsonschema/useCreateJsonSchema.js.map +1 -1
- package/dist/synapse-queries/termsOfService/useTermsOfService.d.ts.map +1 -1
- package/dist/synapse-queries/termsOfService/useTermsOfService.js +21 -19
- package/dist/synapse-queries/termsOfService/useTermsOfService.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utils/featureflag/FeatureFlags.d.ts.map +1 -1
- package/dist/utils/featureflag/FeatureFlags.js.map +1 -1
- package/dist/utils/functions/EntityTypeUtils.d.ts +2 -2
- package/dist/utils/functions/EntityTypeUtils.d.ts.map +1 -1
- package/dist/utils/functions/EntityTypeUtils.js +135 -135
- package/dist/utils/functions/EntityTypeUtils.js.map +1 -1
- package/dist/utils/functions/getEndpoint.d.ts +1 -0
- package/dist/utils/functions/getEndpoint.d.ts.map +1 -1
- package/dist/utils/functions/getEndpoint.js +3 -3
- package/dist/utils/functions/getEndpoint.js.map +1 -1
- package/dist/utils/types/RequestableAccessRequirement.d.ts +8 -0
- package/dist/utils/types/RequestableAccessRequirement.d.ts.map +1 -0
- package/dist/utils/types/RequestableAccessRequirement.js +9 -0
- package/dist/utils/types/RequestableAccessRequirement.js.map +1 -0
- package/package.json +3 -3
- package/dist/testutils/ReactQueryMockUtils.js +0 -676
- package/dist/testutils/ReactQueryMockUtils.js.map +0 -1
|
@@ -70,5 +70,81 @@ export declare const mockCancelledSubmission: {
|
|
|
70
70
|
subjectId: string;
|
|
71
71
|
subjectType: RestrictableObjectType.ENTITY;
|
|
72
72
|
};
|
|
73
|
+
/** A submission against a JsonSchemaAccessRequirement that collected no first-class fields. */
|
|
74
|
+
export declare const mockSchemaDataSubmission: {
|
|
75
|
+
id: string;
|
|
76
|
+
accessRequirementId: string;
|
|
77
|
+
accessRequirementVersion: number;
|
|
78
|
+
formTemplateRef: {
|
|
79
|
+
templateId: string;
|
|
80
|
+
templateVersionNumber: number;
|
|
81
|
+
};
|
|
82
|
+
requestId: string;
|
|
83
|
+
accessorChanges: {
|
|
84
|
+
userId: string;
|
|
85
|
+
type: AccessType.GAIN_ACCESS;
|
|
86
|
+
}[];
|
|
87
|
+
schemaData: {
|
|
88
|
+
"x-synapse-submissionContext": "REQUEST";
|
|
89
|
+
projectTitle: string;
|
|
90
|
+
dataUsePurpose: string;
|
|
91
|
+
signedDataUseAgreement: string;
|
|
92
|
+
};
|
|
93
|
+
isRenewalSubmission: false;
|
|
94
|
+
submittedOn: string;
|
|
95
|
+
modifiedOn: string;
|
|
96
|
+
submittedBy: string;
|
|
97
|
+
modifiedBy: string;
|
|
98
|
+
state: SubmissionState.SUBMITTED;
|
|
99
|
+
etag: string;
|
|
100
|
+
subjectId: string;
|
|
101
|
+
subjectType: RestrictableObjectType.ENTITY;
|
|
102
|
+
};
|
|
103
|
+
/** A renewal against a JsonSchemaAccessRequirement that also carries first-class fields. */
|
|
104
|
+
export declare const mockSchemaDataAndFirstClassSubmission: {
|
|
105
|
+
id: string;
|
|
106
|
+
accessRequirementId: string;
|
|
107
|
+
formTemplateRef: {
|
|
108
|
+
templateId: string;
|
|
109
|
+
templateVersionNumber: number;
|
|
110
|
+
};
|
|
111
|
+
isRenewalSubmission: true;
|
|
112
|
+
schemaData: {
|
|
113
|
+
"x-synapse-submissionContext": "RENEWAL";
|
|
114
|
+
irbApprovalNumber: string;
|
|
115
|
+
projectTitle: string;
|
|
116
|
+
dataUsePurpose: string;
|
|
117
|
+
signedDataUseAgreement: string;
|
|
118
|
+
};
|
|
119
|
+
accessRequirementVersion: number;
|
|
120
|
+
requestId: string;
|
|
121
|
+
ducFileHandleId: string;
|
|
122
|
+
irbFileHandleId: string;
|
|
123
|
+
attachments: string[];
|
|
124
|
+
accessorChanges: {
|
|
125
|
+
userId: string;
|
|
126
|
+
type: AccessType.GAIN_ACCESS;
|
|
127
|
+
}[];
|
|
128
|
+
researchProjectSnapshot: {
|
|
129
|
+
id: string;
|
|
130
|
+
accessRequirementId: string;
|
|
131
|
+
institution: string;
|
|
132
|
+
projectLead: string;
|
|
133
|
+
intendedDataUseStatement: string;
|
|
134
|
+
createdOn: string;
|
|
135
|
+
modifiedOn: string;
|
|
136
|
+
createdBy: string;
|
|
137
|
+
modifiedBy: string;
|
|
138
|
+
etag: string;
|
|
139
|
+
};
|
|
140
|
+
submittedOn: string;
|
|
141
|
+
modifiedOn: string;
|
|
142
|
+
submittedBy: string;
|
|
143
|
+
modifiedBy: string;
|
|
144
|
+
state: SubmissionState.SUBMITTED;
|
|
145
|
+
etag: string;
|
|
146
|
+
subjectId: string;
|
|
147
|
+
subjectType: RestrictableObjectType.ENTITY;
|
|
148
|
+
};
|
|
73
149
|
export declare const mockSubmissions: Submission[];
|
|
74
150
|
//# sourceMappingURL=MockSubmission.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MockSubmission.d.ts","sourceRoot":"","sources":["../../../src/mocks/dataaccess/MockSubmission.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MockSubmission.d.ts","sourceRoot":"","sources":["../../../src/mocks/dataaccess/MockSubmission.ts"],"names":[],"mappings":"AAUA,OAAO,EACL,UAAU,EACV,sBAAsB,EACtB,UAAU,EACV,eAAe,EAChB,MAAM,iCAAiC,CAAA;AAGxC,eAAO,MAAM,sBAAsB,EAAE,UA0CpC,CAAA;AACD,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2Cd,CAAA;AAEtB,eAAO,MAAM,sBAAsB,EAAE,UAmCpC,CAAA;AAED,eAAO,MAAM,kBAAkB,EAAE,UA+ChC,CAAA;AAED,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2Cd,CAAA;AAEtB,+FAA+F;AAC/F,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BI,CAAA;AAEzC,4FAA4F;AAC5F,eAAO,MAAM,qCAAqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAWT,CAAA;AAEzC,eAAO,MAAM,eAAe,EAAE,UAAU,EAQvC,CAAA"}
|
|
@@ -1,25 +1,29 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import { SUBMISSION_CONTEXT_PROPERTY as e } from "../../utils/jsonschema/submissionContext.js";
|
|
2
|
+
import { MOCK_USER_ID_2 as t } from "../user/mock_user_profile.js";
|
|
3
|
+
import { MOCK_FILE_HANDLE_ID as n, MOCK_PREVIEW_FILE_HANDLE_ID as r } from "../mock_file_handle.js";
|
|
4
|
+
import { mockManagedACTAccessRequirement as i } from "../accessRequirement/mockAccessRequirements.js";
|
|
5
|
+
import { mockClinicalTemplate as a } from "../accessRequirement/mockFormTemplates.js";
|
|
6
|
+
import { mockJsonSchemaAR2 as o } from "../accessRequirement/mockJsonSchemaAccessRequirements.js";
|
|
7
|
+
import { AccessType as s, RestrictableObjectType as c, SubmissionState as l } from "@sage-bionetworks/synapse-types";
|
|
8
|
+
import { DataAccessRequestType as u } from "@sage-bionetworks/synapse-client";
|
|
5
9
|
//#region src/mocks/dataaccess/MockSubmission.ts
|
|
6
|
-
var
|
|
10
|
+
var d = {
|
|
7
11
|
id: "3",
|
|
8
|
-
accessRequirementId: String(
|
|
12
|
+
accessRequirementId: String(i.id),
|
|
9
13
|
accessRequirementVersion: 1,
|
|
10
14
|
requestId: "1",
|
|
11
|
-
ducFileHandleId: String(
|
|
12
|
-
irbFileHandleId: String(
|
|
15
|
+
ducFileHandleId: String(n),
|
|
16
|
+
irbFileHandleId: String(n),
|
|
13
17
|
accessorChanges: [{
|
|
14
18
|
userId: "999",
|
|
15
|
-
type:
|
|
19
|
+
type: s.RENEW_ACCESS
|
|
16
20
|
}, {
|
|
17
|
-
userId:
|
|
18
|
-
type:
|
|
21
|
+
userId: t.toString(),
|
|
22
|
+
type: s.REVOKE_ACCESS
|
|
19
23
|
}],
|
|
20
24
|
researchProjectSnapshot: {
|
|
21
25
|
id: "1",
|
|
22
|
-
accessRequirementId: String(
|
|
26
|
+
accessRequirementId: String(i.id),
|
|
23
27
|
institution: "Bage Sionetworks",
|
|
24
28
|
projectLead: "Nick G",
|
|
25
29
|
intendedDataUseStatement: "Updated IDU",
|
|
@@ -36,29 +40,29 @@ var s = {
|
|
|
36
40
|
modifiedOn: "2022-05-11T13:26:18.583Z",
|
|
37
41
|
submittedBy: "999",
|
|
38
42
|
modifiedBy: "999",
|
|
39
|
-
state:
|
|
43
|
+
state: l.REJECTED,
|
|
40
44
|
rejectedReason: "Thank you for submitting your data access request. Before I can accept your request, please address the following:\n\nFix incorrect data.\n\nPlease contact us at act@sagebionetworks.org if you have any questions.\n\nRegards,\nAccess and Compliance Team (ACT)\nact@sagebionetworks.org",
|
|
41
45
|
etag: "626f9567-bf5f-41e0-9bbf-cf1cd23e6b54",
|
|
42
46
|
subjectId: "syn12156790",
|
|
43
|
-
subjectType:
|
|
44
|
-
},
|
|
47
|
+
subjectType: c.ENTITY
|
|
48
|
+
}, f = {
|
|
45
49
|
id: "1",
|
|
46
|
-
accessRequirementId: String(
|
|
50
|
+
accessRequirementId: String(i.id),
|
|
47
51
|
accessRequirementVersion: 1,
|
|
48
52
|
requestId: "1",
|
|
49
|
-
ducFileHandleId: String(
|
|
50
|
-
irbFileHandleId: String(
|
|
51
|
-
attachments: [String(
|
|
53
|
+
ducFileHandleId: String(n),
|
|
54
|
+
irbFileHandleId: String(n),
|
|
55
|
+
attachments: [String(n), String(r)],
|
|
52
56
|
accessorChanges: [{
|
|
53
57
|
userId: "999",
|
|
54
|
-
type:
|
|
58
|
+
type: s.GAIN_ACCESS
|
|
55
59
|
}, {
|
|
56
|
-
userId:
|
|
57
|
-
type:
|
|
60
|
+
userId: t.toString(),
|
|
61
|
+
type: s.GAIN_ACCESS
|
|
58
62
|
}],
|
|
59
63
|
researchProjectSnapshot: {
|
|
60
64
|
id: "1",
|
|
61
|
-
accessRequirementId: String(
|
|
65
|
+
accessRequirementId: String(i.id),
|
|
62
66
|
institution: "Bage Sionetworks",
|
|
63
67
|
projectLead: "Nick G",
|
|
64
68
|
intendedDataUseStatement: "I plan to see if the data is real data, because I suspect that this is really fake data created solely for a testing environment where software engineers pretend to be the users for whom they are trying to build features.",
|
|
@@ -73,25 +77,25 @@ var s = {
|
|
|
73
77
|
modifiedOn: "2022-05-10T15:50:19.275Z",
|
|
74
78
|
submittedBy: "999",
|
|
75
79
|
modifiedBy: "999",
|
|
76
|
-
state:
|
|
80
|
+
state: l.SUBMITTED,
|
|
77
81
|
etag: "40820b64-c436-486b-8fb8-afef931fbcb3",
|
|
78
82
|
subjectId: "syn12156790",
|
|
79
|
-
subjectType:
|
|
80
|
-
},
|
|
83
|
+
subjectType: c.ENTITY
|
|
84
|
+
}, p = {
|
|
81
85
|
id: "2",
|
|
82
|
-
accessRequirementId: String(
|
|
86
|
+
accessRequirementId: String(i.id),
|
|
83
87
|
accessRequirementVersion: 1,
|
|
84
88
|
requestId: "2",
|
|
85
|
-
ducFileHandleId: String(
|
|
86
|
-
irbFileHandleId: String(
|
|
87
|
-
attachments: [String(
|
|
89
|
+
ducFileHandleId: String(n),
|
|
90
|
+
irbFileHandleId: String(n),
|
|
91
|
+
attachments: [String(n)],
|
|
88
92
|
accessorChanges: [{
|
|
89
93
|
userId: "999",
|
|
90
|
-
type:
|
|
94
|
+
type: s.GAIN_ACCESS
|
|
91
95
|
}],
|
|
92
96
|
researchProjectSnapshot: {
|
|
93
97
|
id: "2",
|
|
94
|
-
accessRequirementId: String(
|
|
98
|
+
accessRequirementId: String(i.id),
|
|
95
99
|
institution: "None",
|
|
96
100
|
projectLead: "NickACT",
|
|
97
101
|
intendedDataUseStatement: "Give me data pls",
|
|
@@ -106,35 +110,35 @@ var s = {
|
|
|
106
110
|
modifiedOn: "2022-05-10T17:20:09.356Z",
|
|
107
111
|
submittedBy: "999",
|
|
108
112
|
modifiedBy: "999",
|
|
109
|
-
state:
|
|
113
|
+
state: l.APPROVED,
|
|
110
114
|
etag: "5fefb2d1-8600-4e1e-96e1-cf57f2ff7fd0",
|
|
111
115
|
subjectId: "syn12156790",
|
|
112
|
-
subjectType:
|
|
113
|
-
},
|
|
116
|
+
subjectType: c.ENTITY
|
|
117
|
+
}, m = {
|
|
114
118
|
id: "4",
|
|
115
|
-
accessRequirementId: String(
|
|
119
|
+
accessRequirementId: String(i.id),
|
|
116
120
|
accessRequirementVersion: 1,
|
|
117
121
|
requestId: "1",
|
|
118
|
-
ducFileHandleId: String(
|
|
119
|
-
irbFileHandleId: String(
|
|
120
|
-
attachments: [String(
|
|
122
|
+
ducFileHandleId: String(n),
|
|
123
|
+
irbFileHandleId: String(n),
|
|
124
|
+
attachments: [String(n), String(r)],
|
|
121
125
|
accessorChanges: [
|
|
122
126
|
{
|
|
123
127
|
userId: "3431185",
|
|
124
|
-
type:
|
|
128
|
+
type: s.RENEW_ACCESS
|
|
125
129
|
},
|
|
126
130
|
{
|
|
127
131
|
userId: "3350396",
|
|
128
|
-
type:
|
|
132
|
+
type: s.GAIN_ACCESS
|
|
129
133
|
},
|
|
130
134
|
{
|
|
131
135
|
userId: "3371908",
|
|
132
|
-
type:
|
|
136
|
+
type: s.REVOKE_ACCESS
|
|
133
137
|
}
|
|
134
138
|
],
|
|
135
139
|
researchProjectSnapshot: {
|
|
136
140
|
id: "1",
|
|
137
|
-
accessRequirementId: String(
|
|
141
|
+
accessRequirementId: String(i.id),
|
|
138
142
|
institution: "Bage Sionetworks",
|
|
139
143
|
projectLead: "Adam H",
|
|
140
144
|
intendedDataUseStatement: "I plan to see if the data is real data, because I suspect that this is really fake data created solely for a testing environment.",
|
|
@@ -149,28 +153,28 @@ var s = {
|
|
|
149
153
|
modifiedOn: "2022-05-10T15:50:19.275Z",
|
|
150
154
|
submittedBy: "3431185",
|
|
151
155
|
modifiedBy: "3431185",
|
|
152
|
-
state:
|
|
156
|
+
state: l.SUBMITTED,
|
|
153
157
|
etag: "40820b64-c436-486b-8fb8-afef931fbcb3",
|
|
154
158
|
subjectId: "syn12156790",
|
|
155
|
-
subjectType:
|
|
156
|
-
},
|
|
159
|
+
subjectType: c.ENTITY
|
|
160
|
+
}, h = {
|
|
157
161
|
id: "5",
|
|
158
|
-
accessRequirementId: String(
|
|
162
|
+
accessRequirementId: String(i.id),
|
|
159
163
|
accessRequirementVersion: 1,
|
|
160
164
|
requestId: "1",
|
|
161
|
-
ducFileHandleId: String(
|
|
162
|
-
irbFileHandleId: String(
|
|
163
|
-
attachments: [String(
|
|
165
|
+
ducFileHandleId: String(n),
|
|
166
|
+
irbFileHandleId: String(n),
|
|
167
|
+
attachments: [String(n), String(r)],
|
|
164
168
|
accessorChanges: [{
|
|
165
169
|
userId: "999",
|
|
166
|
-
type:
|
|
170
|
+
type: s.GAIN_ACCESS
|
|
167
171
|
}, {
|
|
168
|
-
userId:
|
|
169
|
-
type:
|
|
172
|
+
userId: t.toString(),
|
|
173
|
+
type: s.GAIN_ACCESS
|
|
170
174
|
}],
|
|
171
175
|
researchProjectSnapshot: {
|
|
172
176
|
id: "1",
|
|
173
|
-
accessRequirementId: String(
|
|
177
|
+
accessRequirementId: String(i.id),
|
|
174
178
|
institution: "Bage Sionetworks",
|
|
175
179
|
projectLead: "Nick G",
|
|
176
180
|
intendedDataUseStatement: "I plan to see if the data is real data, because I suspect that this is really fake data created solely for a testing environment where software engineers pretend to be the users for whom they are trying to build features.",
|
|
@@ -185,18 +189,59 @@ var s = {
|
|
|
185
189
|
modifiedOn: "2022-05-10T15:50:19.275Z",
|
|
186
190
|
submittedBy: "999",
|
|
187
191
|
modifiedBy: "999",
|
|
188
|
-
state:
|
|
192
|
+
state: l.CANCELLED,
|
|
189
193
|
etag: "40820b64-c436-486b-8fb8-afef931fbcb3",
|
|
190
194
|
subjectId: "syn12156790",
|
|
191
|
-
subjectType:
|
|
192
|
-
},
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
195
|
+
subjectType: c.ENTITY
|
|
196
|
+
}, g = {
|
|
197
|
+
id: "10",
|
|
198
|
+
accessRequirementId: String(o.id),
|
|
199
|
+
accessRequirementVersion: 1,
|
|
200
|
+
formTemplateRef: {
|
|
201
|
+
templateId: a.id,
|
|
202
|
+
templateVersionNumber: a.versionNumber
|
|
203
|
+
},
|
|
204
|
+
requestId: "10",
|
|
205
|
+
accessorChanges: [{
|
|
206
|
+
userId: "999",
|
|
207
|
+
type: s.GAIN_ACCESS
|
|
208
|
+
}],
|
|
209
|
+
schemaData: {
|
|
210
|
+
[e]: u.REQUEST,
|
|
211
|
+
projectTitle: "Longitudinal Biomarker Study",
|
|
212
|
+
dataUsePurpose: "Research",
|
|
213
|
+
signedDataUseAgreement: n
|
|
214
|
+
},
|
|
215
|
+
isRenewalSubmission: !1,
|
|
216
|
+
submittedOn: "2026-09-20T15:50:19.275Z",
|
|
217
|
+
modifiedOn: "2026-09-20T15:50:19.275Z",
|
|
218
|
+
submittedBy: "999",
|
|
219
|
+
modifiedBy: "999",
|
|
220
|
+
state: l.SUBMITTED,
|
|
221
|
+
etag: "b1e3c0a5-7c1d-4a51-9d0c-2c6f0b5e7a10",
|
|
222
|
+
subjectId: "syn12156790",
|
|
223
|
+
subjectType: c.ENTITY
|
|
224
|
+
}, _ = {
|
|
225
|
+
...f,
|
|
226
|
+
id: "11",
|
|
227
|
+
accessRequirementId: String(o.id),
|
|
228
|
+
formTemplateRef: g.formTemplateRef,
|
|
229
|
+
isRenewalSubmission: !0,
|
|
230
|
+
schemaData: {
|
|
231
|
+
...g.schemaData,
|
|
232
|
+
[e]: u.RENEWAL,
|
|
233
|
+
irbApprovalNumber: "IRB-2026-0042"
|
|
234
|
+
}
|
|
235
|
+
}, v = [
|
|
236
|
+
p,
|
|
237
|
+
d,
|
|
238
|
+
f,
|
|
239
|
+
m,
|
|
240
|
+
h,
|
|
241
|
+
g,
|
|
242
|
+
_
|
|
198
243
|
];
|
|
199
244
|
//#endregion
|
|
200
|
-
export {
|
|
245
|
+
export { p as mockApprovedSubmission, h as mockCancelledSubmission, m as mockDemoSubmission, d as mockRejectedSubmission, _ as mockSchemaDataAndFirstClassSubmission, g as mockSchemaDataSubmission, v as mockSubmissions, f as mockSubmittedSubmission };
|
|
201
246
|
|
|
202
247
|
//# sourceMappingURL=MockSubmission.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MockSubmission.js","names":[],"sources":["../../../src/mocks/dataaccess/MockSubmission.ts"],"sourcesContent":["import { mockManagedACTAccessRequirement } from '@/mocks/accessRequirement/mockAccessRequirements'\nimport {\n MOCK_FILE_HANDLE_ID,\n MOCK_PREVIEW_FILE_HANDLE_ID,\n} from '@/mocks/mock_file_handle'\nimport {\n AccessType,\n RestrictableObjectType,\n Submission,\n SubmissionState,\n} from '@sage-bionetworks/synapse-types'\nimport { MOCK_USER_ID, MOCK_USER_ID_2 } from '../user/mock_user_profile'\n\nexport const mockRejectedSubmission: Submission = {\n id: '3',\n accessRequirementId: String(mockManagedACTAccessRequirement.id),\n accessRequirementVersion: 1,\n requestId: '1',\n ducFileHandleId: String(MOCK_FILE_HANDLE_ID),\n irbFileHandleId: String(MOCK_FILE_HANDLE_ID),\n accessorChanges: [\n {\n userId: MOCK_USER_ID.toString(),\n type: AccessType.RENEW_ACCESS,\n },\n {\n userId: MOCK_USER_ID_2.toString(),\n type: AccessType.REVOKE_ACCESS,\n },\n ],\n researchProjectSnapshot: {\n id: '1',\n accessRequirementId: String(mockManagedACTAccessRequirement.id),\n institution: 'Bage Sionetworks',\n projectLead: 'Nick G',\n intendedDataUseStatement: 'Updated IDU',\n createdOn: '2022-05-10T15:49:56.292Z',\n modifiedOn: '2022-05-11T13:25:06.021Z',\n createdBy: MOCK_USER_ID.toString(),\n modifiedBy: MOCK_USER_ID.toString(),\n etag: '8d0d4ec8-4cd9-45a7-b09d-390cd64cfca4',\n },\n isRenewalSubmission: true,\n publication: '',\n summaryOfUse: '',\n submittedOn: '2022-05-11T13:25:20.262Z',\n modifiedOn: '2022-05-11T13:26:18.583Z',\n submittedBy: MOCK_USER_ID.toString(),\n modifiedBy: MOCK_USER_ID.toString(),\n state: SubmissionState.REJECTED,\n rejectedReason:\n 'Thank you for submitting your data access request. Before I can accept your request, please address the following:\\n\\nFix incorrect data.\\n\\nPlease contact us at act@sagebionetworks.org if you have any questions.\\n\\nRegards,\\nAccess and Compliance Team (ACT)\\nact@sagebionetworks.org',\n etag: '626f9567-bf5f-41e0-9bbf-cf1cd23e6b54',\n subjectId: 'syn12156790',\n subjectType: RestrictableObjectType.ENTITY,\n}\nexport const mockSubmittedSubmission = {\n id: '1',\n accessRequirementId: String(mockManagedACTAccessRequirement.id),\n accessRequirementVersion: 1,\n requestId: '1',\n ducFileHandleId: String(MOCK_FILE_HANDLE_ID),\n irbFileHandleId: String(MOCK_FILE_HANDLE_ID),\n attachments: [\n String(MOCK_FILE_HANDLE_ID),\n String(MOCK_PREVIEW_FILE_HANDLE_ID),\n ],\n accessorChanges: [\n {\n userId: MOCK_USER_ID.toString(),\n type: AccessType.GAIN_ACCESS,\n },\n {\n userId: MOCK_USER_ID_2.toString(),\n type: AccessType.GAIN_ACCESS,\n },\n ],\n researchProjectSnapshot: {\n id: '1',\n accessRequirementId: String(mockManagedACTAccessRequirement.id),\n institution: 'Bage Sionetworks',\n projectLead: 'Nick G',\n intendedDataUseStatement:\n 'I plan to see if the data is real data, because I suspect that this is really fake data created solely for a testing environment where software engineers pretend to be the users for whom they are trying to build features.',\n createdOn: '2022-05-10T15:49:56.292Z',\n modifiedOn: '2022-05-10T15:49:56.292Z',\n createdBy: MOCK_USER_ID.toString(),\n modifiedBy: MOCK_USER_ID.toString(),\n etag: '7ea28f9e-81cb-43be-a614-9eb1a0dabafc',\n },\n isRenewalSubmission: false,\n submittedOn: '2022-05-10T15:50:19.275Z',\n modifiedOn: '2022-05-10T15:50:19.275Z',\n submittedBy: MOCK_USER_ID.toString(),\n modifiedBy: MOCK_USER_ID.toString(),\n state: SubmissionState.SUBMITTED,\n etag: '40820b64-c436-486b-8fb8-afef931fbcb3',\n subjectId: 'syn12156790',\n subjectType: RestrictableObjectType.ENTITY,\n} satisfies Submission\n\nexport const mockApprovedSubmission: Submission = {\n id: '2',\n accessRequirementId: String(mockManagedACTAccessRequirement.id),\n accessRequirementVersion: 1,\n requestId: '2',\n ducFileHandleId: String(MOCK_FILE_HANDLE_ID),\n irbFileHandleId: String(MOCK_FILE_HANDLE_ID),\n attachments: [String(MOCK_FILE_HANDLE_ID)],\n accessorChanges: [\n {\n userId: MOCK_USER_ID.toString(),\n type: AccessType.GAIN_ACCESS,\n },\n ],\n researchProjectSnapshot: {\n id: '2',\n accessRequirementId: String(mockManagedACTAccessRequirement.id),\n institution: 'None',\n projectLead: 'NickACT',\n intendedDataUseStatement: 'Give me data pls',\n createdOn: '2022-05-10T17:17:14.757Z',\n modifiedOn: '2022-05-10T17:18:17.913Z',\n createdBy: MOCK_USER_ID.toString(),\n modifiedBy: MOCK_USER_ID.toString(),\n etag: '270234fd-da28-4098-8fd2-5693fee82c19',\n },\n isRenewalSubmission: false,\n submittedOn: '2022-05-10T17:18:28.801Z',\n modifiedOn: '2022-05-10T17:20:09.356Z',\n submittedBy: MOCK_USER_ID.toString(),\n modifiedBy: MOCK_USER_ID.toString(),\n state: SubmissionState.APPROVED,\n etag: '5fefb2d1-8600-4e1e-96e1-cf57f2ff7fd0',\n subjectId: 'syn12156790',\n subjectType: RestrictableObjectType.ENTITY,\n}\n\nexport const mockDemoSubmission: Submission = {\n id: '4',\n accessRequirementId: String(mockManagedACTAccessRequirement.id),\n accessRequirementVersion: 1,\n requestId: '1',\n ducFileHandleId: String(MOCK_FILE_HANDLE_ID),\n irbFileHandleId: String(MOCK_FILE_HANDLE_ID),\n attachments: [\n String(MOCK_FILE_HANDLE_ID),\n String(MOCK_PREVIEW_FILE_HANDLE_ID),\n ],\n accessorChanges: [\n {\n userId: '3431185',\n type: AccessType.RENEW_ACCESS,\n },\n {\n userId: '3350396',\n type: AccessType.GAIN_ACCESS,\n },\n {\n userId: '3371908',\n type: AccessType.REVOKE_ACCESS,\n },\n ],\n researchProjectSnapshot: {\n id: '1',\n accessRequirementId: String(mockManagedACTAccessRequirement.id),\n institution: 'Bage Sionetworks',\n projectLead: 'Adam H',\n intendedDataUseStatement:\n 'I plan to see if the data is real data, because I suspect that this is really fake data created solely for a testing environment.',\n createdOn: '2022-05-10T15:49:56.292Z',\n modifiedOn: '2022-05-10T15:49:56.292Z',\n createdBy: '3431185',\n modifiedBy: '3431185',\n etag: '7ea28f9e-81cb-43be-a614-9eb1a0dabafc',\n },\n isRenewalSubmission: false,\n submittedOn: '2022-05-10T15:50:19.275Z',\n modifiedOn: '2022-05-10T15:50:19.275Z',\n submittedBy: '3431185',\n modifiedBy: '3431185',\n state: SubmissionState.SUBMITTED,\n etag: '40820b64-c436-486b-8fb8-afef931fbcb3',\n subjectId: 'syn12156790',\n subjectType: RestrictableObjectType.ENTITY,\n}\n\nexport const mockCancelledSubmission = {\n id: '5',\n accessRequirementId: String(mockManagedACTAccessRequirement.id),\n accessRequirementVersion: 1,\n requestId: '1',\n ducFileHandleId: String(MOCK_FILE_HANDLE_ID),\n irbFileHandleId: String(MOCK_FILE_HANDLE_ID),\n attachments: [\n String(MOCK_FILE_HANDLE_ID),\n String(MOCK_PREVIEW_FILE_HANDLE_ID),\n ],\n accessorChanges: [\n {\n userId: MOCK_USER_ID.toString(),\n type: AccessType.GAIN_ACCESS,\n },\n {\n userId: MOCK_USER_ID_2.toString(),\n type: AccessType.GAIN_ACCESS,\n },\n ],\n researchProjectSnapshot: {\n id: '1',\n accessRequirementId: String(mockManagedACTAccessRequirement.id),\n institution: 'Bage Sionetworks',\n projectLead: 'Nick G',\n intendedDataUseStatement:\n 'I plan to see if the data is real data, because I suspect that this is really fake data created solely for a testing environment where software engineers pretend to be the users for whom they are trying to build features.',\n createdOn: '2022-05-10T15:49:56.292Z',\n modifiedOn: '2022-05-10T15:49:56.292Z',\n createdBy: MOCK_USER_ID.toString(),\n modifiedBy: MOCK_USER_ID.toString(),\n etag: '7ea28f9e-81cb-43be-a614-9eb1a0dabafc',\n },\n isRenewalSubmission: false,\n submittedOn: '2022-05-10T15:50:19.275Z',\n modifiedOn: '2022-05-10T15:50:19.275Z',\n submittedBy: MOCK_USER_ID.toString(),\n modifiedBy: MOCK_USER_ID.toString(),\n state: SubmissionState.CANCELLED,\n etag: '40820b64-c436-486b-8fb8-afef931fbcb3',\n subjectId: 'syn12156790',\n subjectType: RestrictableObjectType.ENTITY,\n} satisfies Submission\n\nexport const mockSubmissions: Submission[] = [\n mockApprovedSubmission,\n mockRejectedSubmission,\n mockSubmittedSubmission,\n mockDemoSubmission,\n mockCancelledSubmission,\n]\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MockSubmission.js","names":[],"sources":["../../../src/mocks/dataaccess/MockSubmission.ts"],"sourcesContent":["import { mockManagedACTAccessRequirement } from '@/mocks/accessRequirement/mockAccessRequirements'\nimport { mockClinicalTemplate } from '@/mocks/accessRequirement/mockFormTemplates'\nimport { mockJsonSchemaAR2 } from '@/mocks/accessRequirement/mockJsonSchemaAccessRequirements'\nimport { SUBMISSION_CONTEXT_PROPERTY } from '@/utils/jsonschema/submissionContext'\nimport type { SubmissionWithFormTemplateRef } from '@/synapse-queries/dataaccess/useGeneratedSubmissionForm'\nimport { DataAccessRequestType } from '@sage-bionetworks/synapse-client'\nimport {\n MOCK_FILE_HANDLE_ID,\n MOCK_PREVIEW_FILE_HANDLE_ID,\n} from '@/mocks/mock_file_handle'\nimport {\n AccessType,\n RestrictableObjectType,\n Submission,\n SubmissionState,\n} from '@sage-bionetworks/synapse-types'\nimport { MOCK_USER_ID, MOCK_USER_ID_2 } from '../user/mock_user_profile'\n\nexport const mockRejectedSubmission: Submission = {\n id: '3',\n accessRequirementId: String(mockManagedACTAccessRequirement.id),\n accessRequirementVersion: 1,\n requestId: '1',\n ducFileHandleId: String(MOCK_FILE_HANDLE_ID),\n irbFileHandleId: String(MOCK_FILE_HANDLE_ID),\n accessorChanges: [\n {\n userId: MOCK_USER_ID.toString(),\n type: AccessType.RENEW_ACCESS,\n },\n {\n userId: MOCK_USER_ID_2.toString(),\n type: AccessType.REVOKE_ACCESS,\n },\n ],\n researchProjectSnapshot: {\n id: '1',\n accessRequirementId: String(mockManagedACTAccessRequirement.id),\n institution: 'Bage Sionetworks',\n projectLead: 'Nick G',\n intendedDataUseStatement: 'Updated IDU',\n createdOn: '2022-05-10T15:49:56.292Z',\n modifiedOn: '2022-05-11T13:25:06.021Z',\n createdBy: MOCK_USER_ID.toString(),\n modifiedBy: MOCK_USER_ID.toString(),\n etag: '8d0d4ec8-4cd9-45a7-b09d-390cd64cfca4',\n },\n isRenewalSubmission: true,\n publication: '',\n summaryOfUse: '',\n submittedOn: '2022-05-11T13:25:20.262Z',\n modifiedOn: '2022-05-11T13:26:18.583Z',\n submittedBy: MOCK_USER_ID.toString(),\n modifiedBy: MOCK_USER_ID.toString(),\n state: SubmissionState.REJECTED,\n rejectedReason:\n 'Thank you for submitting your data access request. Before I can accept your request, please address the following:\\n\\nFix incorrect data.\\n\\nPlease contact us at act@sagebionetworks.org if you have any questions.\\n\\nRegards,\\nAccess and Compliance Team (ACT)\\nact@sagebionetworks.org',\n etag: '626f9567-bf5f-41e0-9bbf-cf1cd23e6b54',\n subjectId: 'syn12156790',\n subjectType: RestrictableObjectType.ENTITY,\n}\nexport const mockSubmittedSubmission = {\n id: '1',\n accessRequirementId: String(mockManagedACTAccessRequirement.id),\n accessRequirementVersion: 1,\n requestId: '1',\n ducFileHandleId: String(MOCK_FILE_HANDLE_ID),\n irbFileHandleId: String(MOCK_FILE_HANDLE_ID),\n attachments: [\n String(MOCK_FILE_HANDLE_ID),\n String(MOCK_PREVIEW_FILE_HANDLE_ID),\n ],\n accessorChanges: [\n {\n userId: MOCK_USER_ID.toString(),\n type: AccessType.GAIN_ACCESS,\n },\n {\n userId: MOCK_USER_ID_2.toString(),\n type: AccessType.GAIN_ACCESS,\n },\n ],\n researchProjectSnapshot: {\n id: '1',\n accessRequirementId: String(mockManagedACTAccessRequirement.id),\n institution: 'Bage Sionetworks',\n projectLead: 'Nick G',\n intendedDataUseStatement:\n 'I plan to see if the data is real data, because I suspect that this is really fake data created solely for a testing environment where software engineers pretend to be the users for whom they are trying to build features.',\n createdOn: '2022-05-10T15:49:56.292Z',\n modifiedOn: '2022-05-10T15:49:56.292Z',\n createdBy: MOCK_USER_ID.toString(),\n modifiedBy: MOCK_USER_ID.toString(),\n etag: '7ea28f9e-81cb-43be-a614-9eb1a0dabafc',\n },\n isRenewalSubmission: false,\n submittedOn: '2022-05-10T15:50:19.275Z',\n modifiedOn: '2022-05-10T15:50:19.275Z',\n submittedBy: MOCK_USER_ID.toString(),\n modifiedBy: MOCK_USER_ID.toString(),\n state: SubmissionState.SUBMITTED,\n etag: '40820b64-c436-486b-8fb8-afef931fbcb3',\n subjectId: 'syn12156790',\n subjectType: RestrictableObjectType.ENTITY,\n} satisfies Submission\n\nexport const mockApprovedSubmission: Submission = {\n id: '2',\n accessRequirementId: String(mockManagedACTAccessRequirement.id),\n accessRequirementVersion: 1,\n requestId: '2',\n ducFileHandleId: String(MOCK_FILE_HANDLE_ID),\n irbFileHandleId: String(MOCK_FILE_HANDLE_ID),\n attachments: [String(MOCK_FILE_HANDLE_ID)],\n accessorChanges: [\n {\n userId: MOCK_USER_ID.toString(),\n type: AccessType.GAIN_ACCESS,\n },\n ],\n researchProjectSnapshot: {\n id: '2',\n accessRequirementId: String(mockManagedACTAccessRequirement.id),\n institution: 'None',\n projectLead: 'NickACT',\n intendedDataUseStatement: 'Give me data pls',\n createdOn: '2022-05-10T17:17:14.757Z',\n modifiedOn: '2022-05-10T17:18:17.913Z',\n createdBy: MOCK_USER_ID.toString(),\n modifiedBy: MOCK_USER_ID.toString(),\n etag: '270234fd-da28-4098-8fd2-5693fee82c19',\n },\n isRenewalSubmission: false,\n submittedOn: '2022-05-10T17:18:28.801Z',\n modifiedOn: '2022-05-10T17:20:09.356Z',\n submittedBy: MOCK_USER_ID.toString(),\n modifiedBy: MOCK_USER_ID.toString(),\n state: SubmissionState.APPROVED,\n etag: '5fefb2d1-8600-4e1e-96e1-cf57f2ff7fd0',\n subjectId: 'syn12156790',\n subjectType: RestrictableObjectType.ENTITY,\n}\n\nexport const mockDemoSubmission: Submission = {\n id: '4',\n accessRequirementId: String(mockManagedACTAccessRequirement.id),\n accessRequirementVersion: 1,\n requestId: '1',\n ducFileHandleId: String(MOCK_FILE_HANDLE_ID),\n irbFileHandleId: String(MOCK_FILE_HANDLE_ID),\n attachments: [\n String(MOCK_FILE_HANDLE_ID),\n String(MOCK_PREVIEW_FILE_HANDLE_ID),\n ],\n accessorChanges: [\n {\n userId: '3431185',\n type: AccessType.RENEW_ACCESS,\n },\n {\n userId: '3350396',\n type: AccessType.GAIN_ACCESS,\n },\n {\n userId: '3371908',\n type: AccessType.REVOKE_ACCESS,\n },\n ],\n researchProjectSnapshot: {\n id: '1',\n accessRequirementId: String(mockManagedACTAccessRequirement.id),\n institution: 'Bage Sionetworks',\n projectLead: 'Adam H',\n intendedDataUseStatement:\n 'I plan to see if the data is real data, because I suspect that this is really fake data created solely for a testing environment.',\n createdOn: '2022-05-10T15:49:56.292Z',\n modifiedOn: '2022-05-10T15:49:56.292Z',\n createdBy: '3431185',\n modifiedBy: '3431185',\n etag: '7ea28f9e-81cb-43be-a614-9eb1a0dabafc',\n },\n isRenewalSubmission: false,\n submittedOn: '2022-05-10T15:50:19.275Z',\n modifiedOn: '2022-05-10T15:50:19.275Z',\n submittedBy: '3431185',\n modifiedBy: '3431185',\n state: SubmissionState.SUBMITTED,\n etag: '40820b64-c436-486b-8fb8-afef931fbcb3',\n subjectId: 'syn12156790',\n subjectType: RestrictableObjectType.ENTITY,\n}\n\nexport const mockCancelledSubmission = {\n id: '5',\n accessRequirementId: String(mockManagedACTAccessRequirement.id),\n accessRequirementVersion: 1,\n requestId: '1',\n ducFileHandleId: String(MOCK_FILE_HANDLE_ID),\n irbFileHandleId: String(MOCK_FILE_HANDLE_ID),\n attachments: [\n String(MOCK_FILE_HANDLE_ID),\n String(MOCK_PREVIEW_FILE_HANDLE_ID),\n ],\n accessorChanges: [\n {\n userId: MOCK_USER_ID.toString(),\n type: AccessType.GAIN_ACCESS,\n },\n {\n userId: MOCK_USER_ID_2.toString(),\n type: AccessType.GAIN_ACCESS,\n },\n ],\n researchProjectSnapshot: {\n id: '1',\n accessRequirementId: String(mockManagedACTAccessRequirement.id),\n institution: 'Bage Sionetworks',\n projectLead: 'Nick G',\n intendedDataUseStatement:\n 'I plan to see if the data is real data, because I suspect that this is really fake data created solely for a testing environment where software engineers pretend to be the users for whom they are trying to build features.',\n createdOn: '2022-05-10T15:49:56.292Z',\n modifiedOn: '2022-05-10T15:49:56.292Z',\n createdBy: MOCK_USER_ID.toString(),\n modifiedBy: MOCK_USER_ID.toString(),\n etag: '7ea28f9e-81cb-43be-a614-9eb1a0dabafc',\n },\n isRenewalSubmission: false,\n submittedOn: '2022-05-10T15:50:19.275Z',\n modifiedOn: '2022-05-10T15:50:19.275Z',\n submittedBy: MOCK_USER_ID.toString(),\n modifiedBy: MOCK_USER_ID.toString(),\n state: SubmissionState.CANCELLED,\n etag: '40820b64-c436-486b-8fb8-afef931fbcb3',\n subjectId: 'syn12156790',\n subjectType: RestrictableObjectType.ENTITY,\n} satisfies Submission\n\n/** A submission against a JsonSchemaAccessRequirement that collected no first-class fields. */\nexport const mockSchemaDataSubmission = {\n id: '10',\n accessRequirementId: String(mockJsonSchemaAR2.id),\n accessRequirementVersion: 1,\n formTemplateRef: {\n templateId: mockClinicalTemplate.id!,\n templateVersionNumber: mockClinicalTemplate.versionNumber!,\n },\n requestId: '10',\n accessorChanges: [\n {\n userId: MOCK_USER_ID.toString(),\n type: AccessType.GAIN_ACCESS,\n },\n ],\n schemaData: {\n [SUBMISSION_CONTEXT_PROPERTY]: DataAccessRequestType.REQUEST,\n projectTitle: 'Longitudinal Biomarker Study',\n dataUsePurpose: 'Research',\n signedDataUseAgreement: MOCK_FILE_HANDLE_ID,\n },\n isRenewalSubmission: false,\n submittedOn: '2026-09-20T15:50:19.275Z',\n modifiedOn: '2026-09-20T15:50:19.275Z',\n submittedBy: MOCK_USER_ID.toString(),\n modifiedBy: MOCK_USER_ID.toString(),\n state: SubmissionState.SUBMITTED,\n etag: 'b1e3c0a5-7c1d-4a51-9d0c-2c6f0b5e7a10',\n subjectId: 'syn12156790',\n subjectType: RestrictableObjectType.ENTITY,\n} satisfies SubmissionWithFormTemplateRef\n\n/** A renewal against a JsonSchemaAccessRequirement that also carries first-class fields. */\nexport const mockSchemaDataAndFirstClassSubmission = {\n ...mockSubmittedSubmission,\n id: '11',\n accessRequirementId: String(mockJsonSchemaAR2.id),\n formTemplateRef: mockSchemaDataSubmission.formTemplateRef,\n isRenewalSubmission: true,\n schemaData: {\n ...mockSchemaDataSubmission.schemaData,\n [SUBMISSION_CONTEXT_PROPERTY]: DataAccessRequestType.RENEWAL,\n irbApprovalNumber: 'IRB-2026-0042',\n },\n} satisfies SubmissionWithFormTemplateRef\n\nexport const mockSubmissions: Submission[] = [\n mockApprovedSubmission,\n mockRejectedSubmission,\n mockSubmittedSubmission,\n mockDemoSubmission,\n mockCancelledSubmission,\n mockSchemaDataSubmission,\n mockSchemaDataAndFirstClassSubmission,\n]\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discussionHandlers.d.ts","sourceRoot":"","sources":["../../../../src/mocks/msw/handlers/discussionHandlers.ts"],"names":[],"mappings":"AA8CA,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,MAAM,+
|
|
1
|
+
{"version":3,"file":"discussionHandlers.d.ts","sourceRoot":"","sources":["../../../../src/mocks/msw/handlers/discussionHandlers.ts"],"names":[],"mappings":"AA8CA,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,MAAM,+BAyH1D"}
|
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ENTITY_ID as e, FORUM as t, FORUM_THREAD as n, THREAD as r } from "../../../utils/APIConstants.js";
|
|
2
2
|
import "../../user/mock_user_profile.js";
|
|
3
|
-
import
|
|
4
|
-
import { mockDiscussionThreadBundles as
|
|
5
|
-
import
|
|
6
|
-
import { DiscussionFilter as
|
|
7
|
-
import { HttpResponse as
|
|
3
|
+
import i from "../../entity/mockProject.js";
|
|
4
|
+
import { mockDiscussionThreadBundles as a, mockForums as o } from "../../discussion/mock_discussion.js";
|
|
5
|
+
import s from "../util/BasicMockedCrudService.js";
|
|
6
|
+
import { DiscussionFilter as c } from "@sage-bionetworks/synapse-types";
|
|
7
|
+
import { HttpResponse as l, http as u } from "msw";
|
|
8
8
|
//#region src/mocks/msw/handlers/discussionHandlers.ts
|
|
9
|
-
var
|
|
10
|
-
initialData:
|
|
9
|
+
var d = new s({
|
|
10
|
+
initialData: o,
|
|
11
11
|
idField: "id",
|
|
12
12
|
autoGenerateId: !0
|
|
13
|
-
}),
|
|
14
|
-
initialData:
|
|
13
|
+
}), f = new s({
|
|
14
|
+
initialData: a,
|
|
15
15
|
idField: "id",
|
|
16
16
|
autoGenerateId: !0
|
|
17
17
|
});
|
|
18
|
-
function
|
|
19
|
-
return
|
|
18
|
+
function p(e, t) {
|
|
19
|
+
return f.getMany((t) => t.forumId === e).filter((e) => {
|
|
20
20
|
switch (t) {
|
|
21
|
-
case
|
|
22
|
-
case
|
|
23
|
-
case
|
|
21
|
+
case c.NO_FILTER: return !0;
|
|
22
|
+
case c.DELETED_ONLY: return e.isDeleted;
|
|
23
|
+
case c.EXCLUDE_DELETED: return !e.isDeleted;
|
|
24
24
|
}
|
|
25
25
|
});
|
|
26
26
|
}
|
|
27
|
-
function
|
|
27
|
+
function m(a) {
|
|
28
28
|
return [
|
|
29
|
-
|
|
29
|
+
u.get(`${a}${t}/:id`, ({ params: e }) => {
|
|
30
30
|
let t = 404, n = {
|
|
31
31
|
concreteType: "org.sagebionetworks.repo.model.ErrorResponse",
|
|
32
32
|
reason: `MSW could not find a mock forum object with ID ${e.id}`
|
|
33
|
-
}, r =
|
|
34
|
-
return r && (t = 200, n = r),
|
|
33
|
+
}, r = d.getOneById(e.id);
|
|
34
|
+
return r && (t = 200, n = r), l.json(n, { status: t });
|
|
35
35
|
}),
|
|
36
|
-
|
|
36
|
+
u.get(`${a}${r}/:id`, ({ params: e }) => {
|
|
37
37
|
let t = 404, n = {
|
|
38
38
|
concreteType: "org.sagebionetworks.repo.model.ErrorResponse",
|
|
39
39
|
reason: `MSW could not find a mock discussion thread bundle object with ID ${e.id}`
|
|
@@ -42,13 +42,13 @@ function p(i) {
|
|
|
42
42
|
concreteType: "org.sagebionetworks.repo.model.ErrorResponse",
|
|
43
43
|
reason: "GET /thread/messageUrl is not yet implemented"
|
|
44
44
|
});
|
|
45
|
-
let r =
|
|
46
|
-
return r && (t = 200, n = r),
|
|
45
|
+
let r = f.getOneById(e.id);
|
|
46
|
+
return r && (t = 200, n = r), l.json(n, { status: t });
|
|
47
47
|
}),
|
|
48
|
-
|
|
49
|
-
let t = await e.json(), n =
|
|
48
|
+
u.post(`${a}${r}`, async ({ request: e }) => {
|
|
49
|
+
let t = await e.json(), n = f.create({
|
|
50
50
|
forumId: t.forumId,
|
|
51
|
-
projectId:
|
|
51
|
+
projectId: i.id,
|
|
52
52
|
title: t.title,
|
|
53
53
|
createdOn: (/* @__PURE__ */ new Date()).toISOString(),
|
|
54
54
|
createdBy: "999",
|
|
@@ -63,22 +63,29 @@ function p(i) {
|
|
|
63
63
|
isDeleted: !1,
|
|
64
64
|
isPinned: !1
|
|
65
65
|
});
|
|
66
|
-
return
|
|
66
|
+
return l.json(n, { status: 201 });
|
|
67
|
+
}),
|
|
68
|
+
u.get(`${a}${n(":forumId")}`, ({ params: e, request: t }) => {
|
|
69
|
+
let n = new URL(t.url).searchParams.get("offset"), r = n ? parseInt(n) : 0, i = new URL(t.url).searchParams.get("limit"), a = i ? parseInt(i) : 10, o = e.filter ?? c.EXCLUDE_DELETED, s = p(e.forumId, o), u = {
|
|
70
|
+
results: s.slice(r, r + a),
|
|
71
|
+
totalNumberOfResults: s.length
|
|
72
|
+
};
|
|
73
|
+
return l.json(u, { status: 200 });
|
|
67
74
|
}),
|
|
68
|
-
|
|
69
|
-
let
|
|
70
|
-
results:
|
|
71
|
-
totalNumberOfResults:
|
|
75
|
+
u.get(`${a}${e(":id")}/threads`, ({ request: e }) => {
|
|
76
|
+
let t = new URL(e.url).searchParams.get("offset"), n = t ? Number.parseInt(t) : 0, r = new URL(e.url).searchParams.get("limit"), i = r ? Number.parseInt(r) : 10, a = f.getMany((e) => !e.isDeleted), o = {
|
|
77
|
+
results: a.slice(n, n + i),
|
|
78
|
+
totalNumberOfResults: a.length
|
|
72
79
|
};
|
|
73
|
-
return
|
|
80
|
+
return l.json(o, { status: 200 });
|
|
74
81
|
}),
|
|
75
|
-
|
|
82
|
+
u.get(`${a}${t}/:id/moderators`, () => l.json({
|
|
76
83
|
results: ["999"],
|
|
77
84
|
totalNumberOfResults: 1
|
|
78
85
|
}, { status: 200 }))
|
|
79
86
|
];
|
|
80
87
|
}
|
|
81
88
|
//#endregion
|
|
82
|
-
export {
|
|
89
|
+
export { m as getDiscussionHandlers };
|
|
83
90
|
|
|
84
91
|
//# sourceMappingURL=discussionHandlers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discussionHandlers.js","names":[],"sources":["../../../../src/mocks/msw/handlers/discussionHandlers.ts"],"sourcesContent":["import { FORUM, FORUM_THREAD, THREAD } from '@/utils/APIConstants'\nimport {\n CreateDiscussionThread,\n DiscussionFilter,\n DiscussionThreadBundle,\n Forum,\n PaginatedIds,\n PaginatedResults,\n} from '@sage-bionetworks/synapse-types'\nimport { http, HttpResponse } from 'msw'\nimport {\n mockDiscussionThreadBundles,\n mockForums,\n} from '../../discussion/mock_discussion'\nimport mockProject from '../../entity/mockProject'\nimport { MOCK_USER_ID } from '../../user/mock_user_profile'\nimport { SynapseApiResponse } from '../handlers'\nimport BasicMockedCrudService from '../util/BasicMockedCrudService'\n\nconst forumService = new BasicMockedCrudService<Forum, 'id'>({\n initialData: mockForums,\n idField: 'id',\n autoGenerateId: true,\n})\n\nconst threadService = new BasicMockedCrudService<DiscussionThreadBundle, 'id'>({\n initialData: mockDiscussionThreadBundles,\n idField: 'id',\n autoGenerateId: true,\n})\n\nfunction getAllThreadsMatchingForum(forumId: string, filter: DiscussionFilter) {\n return threadService\n .getMany(thread => thread.forumId === forumId)\n .filter(thread => {\n switch (filter) {\n case DiscussionFilter.NO_FILTER:\n return true\n case DiscussionFilter.DELETED_ONLY:\n return thread.isDeleted\n case DiscussionFilter.EXCLUDE_DELETED:\n return !thread.isDeleted\n }\n })\n}\n\nexport function getDiscussionHandlers(backendOrigin: string) {\n return [\n http.get(`${backendOrigin}${FORUM}/:id`, ({ params }) => {\n let status = 404\n let resp: SynapseApiResponse<Forum> = {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: `MSW could not find a mock forum object with ID ${params.id}`,\n }\n\n const match = forumService.getOneById(params.id as string)\n if (match) {\n status = 200\n resp = match\n }\n\n return HttpResponse.json(resp, { status: status })\n }),\n\n http.get(`${backendOrigin}${THREAD}/:id`, ({ params }) => {\n let status = 404\n let resp: SynapseApiResponse<Forum> = {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: `MSW could not find a mock discussion thread bundle object with ID ${params.id}`,\n }\n if (params.id === 'messageUrl') {\n // This is a different endpoint\n resp = {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: 'GET /thread/messageUrl is not yet implemented',\n }\n }\n\n const match = threadService.getOneById(params.id as string)\n if (match) {\n status = 200\n resp = match\n }\n\n return HttpResponse.json(resp, { status: status })\n }),\n\n http.post<never, CreateDiscussionThread>(\n `${backendOrigin}${THREAD}`,\n async ({ request }) => {\n const requestBody = await request.json()\n\n const newDiscussionThreadBundle = threadService.create({\n forumId: requestBody.forumId,\n projectId: mockProject.id,\n title: requestBody.title,\n createdOn: new Date().toISOString(),\n createdBy: String(MOCK_USER_ID),\n modifiedOn: new Date().toISOString(),\n etag: 'etag',\n messageKey: 'todo key',\n numberOfViews: 0,\n numberOfReplies: 0,\n lastActivity: new Date().toISOString(),\n activeAuthors: [String(MOCK_USER_ID)],\n isEdited: false,\n isDeleted: false,\n isPinned: false,\n })\n\n return HttpResponse.json(newDiscussionThreadBundle, { status: 201 })\n },\n ),\n\n http.get(\n `${backendOrigin}${FORUM_THREAD(':forumId')}`,\n ({ params, request }) => {\n const offsetParam = new URL(request.url).searchParams.get('offset')\n const offset = offsetParam ? parseInt(offsetParam) : 0\n const limitParam = new URL(request.url).searchParams.get('limit')\n const limit = limitParam ? parseInt(limitParam) : 10\n const filter: DiscussionFilter =\n (params.filter as DiscussionFilter) ??\n DiscussionFilter.EXCLUDE_DELETED\n\n const matchingThreads = getAllThreadsMatchingForum(\n params.forumId as string,\n filter,\n )\n\n const response: SynapseApiResponse<\n PaginatedResults<DiscussionThreadBundle>\n > = {\n results: matchingThreads.slice(offset, offset + limit),\n totalNumberOfResults: matchingThreads.length,\n }\n return HttpResponse.json(response, { status: 200 })\n },\n ),\n http.get(`${backendOrigin}${FORUM}/:id/moderators`, () => {\n const resp: PaginatedIds = {\n results: [String(MOCK_USER_ID)],\n totalNumberOfResults: 1,\n }\n return HttpResponse.json(resp, { status: 200 })\n }),\n ]\n}\n"],"mappings":";;;;;;;;AAmBA,IAAM,IAAe,IAAI,EAAoC;CAC3D,aAAa;CACb,SAAS;CACT,gBAAgB;AAClB,CAAC,GAEK,IAAgB,IAAI,EAAqD;CAC7E,aAAa;CACb,SAAS;CACT,gBAAgB;AAClB,CAAC;AAED,SAAS,EAA2B,GAAiB,GAA0B;CAC7E,OAAO,EACJ,SAAQ,MAAU,EAAO,YAAY,CAAO,EAC5C,QAAO,MAAU;EAChB,QAAQ,GAAR;GACE,KAAK,EAAiB,WACpB,OAAO;GACT,KAAK,EAAiB,cACpB,OAAO,EAAO;GAChB,KAAK,EAAiB,iBACpB,OAAO,CAAC,EAAO;EACnB;CACF,CAAC;AACL;AAEA,SAAgB,EAAsB,GAAuB;CAC3D,OAAO;EACL,EAAK,IAAI,GAAG,IAAgB,EAAM,QAAQ,EAAE,gBAAa;GACvD,IAAI,IAAS,KACT,IAAkC;IACpC,cAAc;IACd,QAAQ,kDAAkD,EAAO;GACnE,GAEM,IAAQ,EAAa,WAAW,EAAO,EAAY;GAMzD,OALI,MACF,IAAS,KACT,IAAO,IAGF,EAAa,KAAK,GAAM,EAAU,UAAO,CAAC;EACnD,CAAC;EAED,EAAK,IAAI,GAAG,IAAgB,EAAO,QAAQ,EAAE,gBAAa;GACxD,IAAI,IAAS,KACT,IAAkC;IACpC,cAAc;IACd,QAAQ,qEAAqE,EAAO;GACtF;GACA,AAAI,EAAO,OAAO,iBAEhB,IAAO;IACL,cAAc;IACd,QAAQ;GACV;GAGF,IAAM,IAAQ,EAAc,WAAW,EAAO,EAAY;GAM1D,OALI,MACF,IAAS,KACT,IAAO,IAGF,EAAa,KAAK,GAAM,EAAU,UAAO,CAAC;EACnD,CAAC;EAED,EAAK,KACH,GAAG,IAAgB,KACnB,OAAO,EAAE,iBAAc;GACrB,IAAM,IAAc,MAAM,EAAQ,KAAK,GAEjC,IAA4B,EAAc,OAAO;IACrD,SAAS,EAAY;IACrB,WAAW,EAAY;IACvB,OAAO,EAAY;IACnB,4BAAW,IAAI,KAAK,GAAE,YAAY;IAClC,WAAW;IACX,6BAAY,IAAI,KAAK,GAAE,YAAY;IACnC,MAAM;IACN,YAAY;IACZ,eAAe;IACf,iBAAiB;IACjB,+BAAc,IAAI,KAAK,GAAE,YAAY;IACrC,eAAe,CAAC,KAAoB;IACpC,UAAU;IACV,WAAW;IACX,UAAU;GACZ,CAAC;GAED,OAAO,EAAa,KAAK,GAA2B,EAAE,QAAQ,IAAI,CAAC;EACrE,CACF;EAEA,EAAK,IACH,GAAG,IAAgB,EAAa,UAAU,MACzC,EAAE,WAAQ,iBAAc;GACvB,IAAM,IAAc,IAAI,IAAI,EAAQ,GAAG,EAAE,aAAa,IAAI,QAAQ,GAC5D,IAAS,IAAc,SAAS,CAAW,IAAI,GAC/C,IAAa,IAAI,IAAI,EAAQ,GAAG,EAAE,aAAa,IAAI,OAAO,GAC1D,IAAQ,IAAa,SAAS,CAAU,IAAI,IAC5C,IACH,EAAO,UACR,EAAiB,iBAEb,IAAkB,EACtB,EAAO,SACP,CACF,GAEM,IAEF;IACF,SAAS,EAAgB,MAAM,GAAQ,IAAS,CAAK;IACrD,sBAAsB,EAAgB;GACxC;GACA,OAAO,EAAa,KAAK,GAAU,EAAE,QAAQ,IAAI,CAAC;EACpD,CACF;
|
|
1
|
+
{"version":3,"file":"discussionHandlers.js","names":[],"sources":["../../../../src/mocks/msw/handlers/discussionHandlers.ts"],"sourcesContent":["import { ENTITY_ID, FORUM, FORUM_THREAD, THREAD } from '@/utils/APIConstants'\nimport {\n CreateDiscussionThread,\n DiscussionFilter,\n DiscussionThreadBundle,\n Forum,\n PaginatedIds,\n PaginatedResults,\n} from '@sage-bionetworks/synapse-types'\nimport { http, HttpResponse } from 'msw'\nimport {\n mockDiscussionThreadBundles,\n mockForums,\n} from '../../discussion/mock_discussion'\nimport mockProject from '../../entity/mockProject'\nimport { MOCK_USER_ID } from '../../user/mock_user_profile'\nimport { SynapseApiResponse } from '../handlers'\nimport BasicMockedCrudService from '../util/BasicMockedCrudService'\n\nconst forumService = new BasicMockedCrudService<Forum, 'id'>({\n initialData: mockForums,\n idField: 'id',\n autoGenerateId: true,\n})\n\nconst threadService = new BasicMockedCrudService<DiscussionThreadBundle, 'id'>({\n initialData: mockDiscussionThreadBundles,\n idField: 'id',\n autoGenerateId: true,\n})\n\nfunction getAllThreadsMatchingForum(forumId: string, filter: DiscussionFilter) {\n return threadService\n .getMany(thread => thread.forumId === forumId)\n .filter(thread => {\n switch (filter) {\n case DiscussionFilter.NO_FILTER:\n return true\n case DiscussionFilter.DELETED_ONLY:\n return thread.isDeleted\n case DiscussionFilter.EXCLUDE_DELETED:\n return !thread.isDeleted\n }\n })\n}\n\nexport function getDiscussionHandlers(backendOrigin: string) {\n return [\n http.get(`${backendOrigin}${FORUM}/:id`, ({ params }) => {\n let status = 404\n let resp: SynapseApiResponse<Forum> = {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: `MSW could not find a mock forum object with ID ${params.id}`,\n }\n\n const match = forumService.getOneById(params.id as string)\n if (match) {\n status = 200\n resp = match\n }\n\n return HttpResponse.json(resp, { status: status })\n }),\n\n http.get(`${backendOrigin}${THREAD}/:id`, ({ params }) => {\n let status = 404\n let resp: SynapseApiResponse<Forum> = {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: `MSW could not find a mock discussion thread bundle object with ID ${params.id}`,\n }\n if (params.id === 'messageUrl') {\n // This is a different endpoint\n resp = {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: 'GET /thread/messageUrl is not yet implemented',\n }\n }\n\n const match = threadService.getOneById(params.id as string)\n if (match) {\n status = 200\n resp = match\n }\n\n return HttpResponse.json(resp, { status: status })\n }),\n\n http.post<never, CreateDiscussionThread>(\n `${backendOrigin}${THREAD}`,\n async ({ request }) => {\n const requestBody = await request.json()\n\n const newDiscussionThreadBundle = threadService.create({\n forumId: requestBody.forumId,\n projectId: mockProject.id,\n title: requestBody.title,\n createdOn: new Date().toISOString(),\n createdBy: String(MOCK_USER_ID),\n modifiedOn: new Date().toISOString(),\n etag: 'etag',\n messageKey: 'todo key',\n numberOfViews: 0,\n numberOfReplies: 0,\n lastActivity: new Date().toISOString(),\n activeAuthors: [String(MOCK_USER_ID)],\n isEdited: false,\n isDeleted: false,\n isPinned: false,\n })\n\n return HttpResponse.json(newDiscussionThreadBundle, { status: 201 })\n },\n ),\n\n http.get(\n `${backendOrigin}${FORUM_THREAD(':forumId')}`,\n ({ params, request }) => {\n const offsetParam = new URL(request.url).searchParams.get('offset')\n const offset = offsetParam ? parseInt(offsetParam) : 0\n const limitParam = new URL(request.url).searchParams.get('limit')\n const limit = limitParam ? parseInt(limitParam) : 10\n const filter: DiscussionFilter =\n (params.filter as DiscussionFilter) ??\n DiscussionFilter.EXCLUDE_DELETED\n\n const matchingThreads = getAllThreadsMatchingForum(\n params.forumId as string,\n filter,\n )\n\n const response: SynapseApiResponse<\n PaginatedResults<DiscussionThreadBundle>\n > = {\n results: matchingThreads.slice(offset, offset + limit),\n totalNumberOfResults: matchingThreads.length,\n }\n return HttpResponse.json(response, { status: 200 })\n },\n ),\n\n http.get(`${backendOrigin}${ENTITY_ID(':id')}/threads`, ({ request }) => {\n const offsetParam = new URL(request.url).searchParams.get('offset')\n const offset = offsetParam ? Number.parseInt(offsetParam) : 0\n const limitParam = new URL(request.url).searchParams.get('limit')\n const limit = limitParam ? Number.parseInt(limitParam) : 10\n\n // Mock threads don't track which entities they reference, so treat every active thread as a match\n const referencingThreads = threadService.getMany(\n thread => !thread.isDeleted,\n )\n\n const response: SynapseApiResponse<\n PaginatedResults<DiscussionThreadBundle>\n > = {\n results: referencingThreads.slice(offset, offset + limit),\n totalNumberOfResults: referencingThreads.length,\n }\n return HttpResponse.json(response, { status: 200 })\n }),\n http.get(`${backendOrigin}${FORUM}/:id/moderators`, () => {\n const resp: PaginatedIds = {\n results: [String(MOCK_USER_ID)],\n totalNumberOfResults: 1,\n }\n return HttpResponse.json(resp, { status: 200 })\n }),\n ]\n}\n"],"mappings":"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"}
|