@@ -79,10 +79,19 @@ public Collection<Sample> retrieveSamplesForExperiment(ProjectId projectId, Stri
79
79
return sampleRepository .findSamplesByExperimentId (ExperimentId .parse (experimentId ));
80
80
}
81
81
82
+ /**
83
+ * @deprecated Use {@link #retrieveSamplesByIds(ProjectId, Collection)} instead.
84
+ */
85
+ @ Deprecated (since = "1.10.0" , forRemoval = true )
82
86
public List <Sample > retrieveSamplesByIds (Collection <SampleId > sampleIds ) {
83
87
return sampleRepository .findSamplesBySampleId (sampleIds .stream ().toList ());
84
88
}
85
89
90
+ @ PreAuthorize ("hasPermission(#projectId, 'life.qbic.projectmanagement.domain.model.project.Project', 'READ')" )
91
+ public List <Sample > retrieveSamplesByIds (ProjectId projectId , Collection <SampleId > sampleIds ) {
92
+ return sampleRepository .findSamplesBySampleId (sampleIds .stream ().toList ());
93
+ }
94
+
86
95
@ PreAuthorize ("hasPermission(#projectId, 'life.qbic.projectmanagement.domain.model.project.Project', 'READ')" )
87
96
public List <Sample > retrieveSampleForBatch (ProjectId projectId , String batchId ) {
88
97
return sampleRepository .findSamplesByBatchId (BatchId .parse (batchId ));
@@ -106,7 +115,9 @@ public List<Sample> retrieveSamplesForBatch(BatchId batchId) {
106
115
* @param sortOrders the sort orders to apply
107
116
* @return the results in the provided range
108
117
* @since 1.0.0
118
+ * @deprecated Use {@link #queryPreview(ProjectId, ExperimentId, int, int, List, String)} instead.
109
119
*/
120
+ @ Deprecated (since = "1.10.0" , forRemoval = true )
110
121
public List <SamplePreview > queryPreview (ExperimentId experimentId , int offset , int limit ,
111
122
List <SortOrder > sortOrders , String filter ) {
112
123
// returned by JPA -> UnmodifiableRandomAccessList
@@ -118,6 +129,40 @@ public List<SamplePreview> queryPreview(ExperimentId experimentId, int offset, i
118
129
return new ArrayList <>(previewList );
119
130
}
120
131
132
+ /**
133
+ * Queries {@link SamplePreview}s with a provided offset and limit that supports pagination.
134
+ * Applies the Spring Security context as well.
135
+ *
136
+ * @param projectId the project ID that contains the information (required to apply the security
137
+ * context)
138
+ * @param offset the offset for the search result to start
139
+ * @param limit the maximum number of results that should be returned
140
+ * @param sortOrders the sort orders to apply
141
+ * @return the results in the provided range
142
+ * @since 1.10.0
143
+ */
144
+ @ PreAuthorize ("hasPermission(#projectId, 'life.qbic.projectmanagement.domain.model.project.Project', 'READ')" )
145
+ public List <SamplePreview > queryPreview (ProjectId projectId , ExperimentId experimentId ,
146
+ int offset , int limit ,
147
+ List <SortOrder > sortOrders , String filter ) {
148
+ // returned by JPA -> UnmodifiableRandomAccessList
149
+ List <SamplePreview > previewList = samplePreviewLookup .queryByExperimentId (experimentId ,
150
+ offset ,
151
+ limit ,
152
+ sortOrders , filter );
153
+ // the list must be modifiable for spring security to filter it
154
+ return new ArrayList <>(previewList );
155
+ }
156
+
157
+ @ PreAuthorize ("hasPermission(#projectId, 'life.qbic.projectmanagement.domain.model.project.Project', 'READ')" )
158
+ public Optional <Sample > findSample (ProjectId projectId , SampleId sampleId ) {
159
+ return sampleRepository .findSample (sampleId );
160
+ }
161
+
162
+ /**
163
+ * @deprecated Use {@link #findSample(ProjectId, SampleId)} instead.
164
+ */
165
+ @ Deprecated (since = "1.10.0" , forRemoval = true )
121
166
public Optional <Sample > findSample (SampleId sampleId ) {
122
167
return sampleRepository .findSample (sampleId );
123
168
}
0 commit comments