Skip to content

Commit f07690a

Browse files
authored
fix: prevent error on invalid uuid (#693)
1 parent 2f8275c commit f07690a

File tree

13 files changed

+331
-186
lines changed

13 files changed

+331
-186
lines changed

src/controllers/audits.js

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,11 @@ import {
1616
ok,
1717
} from '@adobe/spacecat-shared-http-utils';
1818
import {
19-
hasText, isNonEmptyArray, isObject, isValidUrl,
19+
hasText,
20+
isNonEmptyArray,
21+
isObject,
22+
isValidUUID,
23+
isValidUrl,
2024
} from '@adobe/spacecat-shared-utils';
2125
import { Config } from '@adobe/spacecat-shared-data-access/src/models/site/config.js';
2226

@@ -48,7 +52,7 @@ function AuditsController(dataAccess) {
4852
const auditType = context.params?.auditType || undefined;
4953
const order = context.data?.ascending === 'true' ? 'asc' : 'desc';
5054

51-
if (!hasText(siteId)) {
55+
if (!isValidUUID(siteId)) {
5256
return badRequest('Site ID required');
5357
}
5458

@@ -87,7 +91,7 @@ function AuditsController(dataAccess) {
8791
const getAllLatestForSite = async (context) => {
8892
const siteId = context.params?.siteId;
8993

90-
if (!hasText(siteId)) {
94+
if (!isValidUUID(siteId)) {
9195
return badRequest('Site ID required');
9296
}
9397

@@ -105,7 +109,7 @@ function AuditsController(dataAccess) {
105109
const siteId = context.params?.siteId;
106110
const auditType = context.params?.auditType;
107111

108-
if (!hasText(siteId)) {
112+
if (!isValidUUID(siteId)) {
109113
return badRequest('Site ID required');
110114
}
111115

@@ -147,7 +151,7 @@ function AuditsController(dataAccess) {
147151
const siteId = context.params?.siteId;
148152
const auditType = context.params?.auditType;
149153

150-
if (!hasText(siteId)) {
154+
if (!isValidUUID(siteId)) {
151155
return badRequest('Site ID required');
152156
}
153157

src/controllers/experiments.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import {
1414
badRequest,
1515
ok,
1616
} from '@adobe/spacecat-shared-http-utils';
17-
import { hasText, isObject } from '@adobe/spacecat-shared-utils';
17+
import { isObject, isValidUUID } from '@adobe/spacecat-shared-utils';
1818

1919
import { ExperimentDto } from '../dto/experiment.js';
2020

@@ -40,7 +40,7 @@ function ExperimentsController(dataAccess) {
4040
const getExperiments = async (context) => {
4141
const siteId = context.params?.siteId;
4242

43-
if (!hasText(siteId)) {
43+
if (!isValidUUID(siteId)) {
4444
return badRequest('Site ID required');
4545
}
4646

src/controllers/opportunities.js

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import {
2121
hasText,
2222
isObject,
2323
isNonEmptyObject,
24-
arrayEquals,
24+
arrayEquals, isValidUUID,
2525
} from '@adobe/spacecat-shared-utils';
2626
import { ValidationError } from '@adobe/spacecat-shared-data-access';
2727
import { OpportunityDto } from '../dto/opportunity.js';
@@ -67,7 +67,7 @@ function OpportunitiesController(dataAccess) {
6767
const getAllForSite = async (context) => {
6868
const siteId = context.params?.siteId;
6969

70-
if (!hasText(siteId)) {
70+
if (!isValidUUID(siteId)) {
7171
return badRequest('Site ID required');
7272
}
7373

@@ -86,7 +86,7 @@ function OpportunitiesController(dataAccess) {
8686
const siteId = context.params?.siteId;
8787
const status = context.params?.status;
8888

89-
if (!hasText(siteId)) {
89+
if (!isValidUUID(siteId)) {
9090
return badRequest('Site ID required');
9191
}
9292
if (!hasText(status)) {
@@ -108,11 +108,11 @@ function OpportunitiesController(dataAccess) {
108108
const siteId = context.params?.siteId;
109109
const opptyId = context.params?.opportunityId;
110110

111-
if (!hasText(siteId)) {
111+
if (!isValidUUID(siteId)) {
112112
return badRequest('Site ID required');
113113
}
114114

115-
if (!hasText(opptyId)) {
115+
if (!isValidUUID(opptyId)) {
116116
return badRequest('Opportunity ID required');
117117
}
118118

@@ -130,7 +130,7 @@ function OpportunitiesController(dataAccess) {
130130
*/
131131
const createOpportunity = async (context) => {
132132
const siteId = context.params?.siteId;
133-
if (!hasText(siteId)) {
133+
if (!isValidUUID(siteId)) {
134134
return badRequest('Site ID required');
135135
}
136136
if (!isNonEmptyObject(context.data)) {
@@ -155,10 +155,10 @@ function OpportunitiesController(dataAccess) {
155155
const siteId = context.params?.siteId;
156156
const opportunityId = context.params?.opportunityId;
157157
// validate parameters
158-
if (!hasText(siteId)) {
158+
if (!isValidUUID(siteId)) {
159159
return badRequest('Site ID required');
160160
}
161-
if (!hasText(opportunityId)) {
161+
if (!isValidUUID(opportunityId)) {
162162
return badRequest('Opportunity ID required');
163163
}
164164

@@ -228,11 +228,11 @@ function OpportunitiesController(dataAccess) {
228228
const siteId = context.params?.siteId;
229229
const opportunityId = context.params?.opportunityId;
230230

231-
if (!hasText(siteId)) {
231+
if (!isValidUUID(siteId)) {
232232
return badRequest('Site ID required');
233233
}
234234

235-
if (!hasText(opportunityId)) {
235+
if (!isValidUUID(opportunityId)) {
236236
return badRequest('Opportunity ID required');
237237
}
238238

src/controllers/organizations.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ function OrganizationsController(dataAccess, env) {
146146
const getSitesForOrganization = async (context) => {
147147
const organizationId = context.params?.organizationId;
148148

149-
if (!hasText(organizationId)) {
149+
if (!isValidUUID(organizationId)) {
150150
return badRequest('Organization ID required');
151151
}
152152

@@ -163,7 +163,7 @@ function OrganizationsController(dataAccess, env) {
163163
const removeOrganization = async (context) => {
164164
const organizationId = context.params?.organizationId;
165165

166-
if (!hasText(organizationId)) {
166+
if (!isValidUUID(organizationId)) {
167167
return badRequest('Organization ID required');
168168
}
169169

@@ -186,7 +186,7 @@ function OrganizationsController(dataAccess, env) {
186186
const updateOrganization = async (context) => {
187187
const organizationId = context.params?.organizationId;
188188

189-
if (!hasText(organizationId)) {
189+
if (!isValidUUID(organizationId)) {
190190
return badRequest('Organization ID required');
191191
}
192192

src/controllers/sites.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import {
2222
hasText,
2323
isBoolean,
2424
isObject,
25-
getStoredMetrics, getRUMDomainKey,
25+
getStoredMetrics, getRUMDomainKey, isValidUUID,
2626
} from '@adobe/spacecat-shared-utils';
2727
import { Site as SiteModel } from '@adobe/spacecat-shared-data-access';
2828

@@ -142,7 +142,7 @@ function SitesController(dataAccess, log, env) {
142142
const auditType = context.params?.auditType;
143143
const auditedAt = context.params?.auditedAt;
144144

145-
if (!hasText(siteId)) {
145+
if (!isValidUUID(siteId)) {
146146
return badRequest('Site ID required');
147147
}
148148

@@ -171,7 +171,7 @@ function SitesController(dataAccess, log, env) {
171171
const getByID = async (context) => {
172172
const siteId = context.params?.siteId;
173173

174-
if (!hasText(siteId)) {
174+
if (!isValidUUID(siteId)) {
175175
return badRequest('Site ID required');
176176
}
177177

@@ -215,7 +215,7 @@ function SitesController(dataAccess, log, env) {
215215
const removeSite = async (context) => {
216216
const siteId = context.params?.siteId;
217217

218-
if (!hasText(siteId)) {
218+
if (!isValidUUID(siteId)) {
219219
return badRequest('Site ID required');
220220
}
221221

@@ -238,7 +238,7 @@ function SitesController(dataAccess, log, env) {
238238
const updateSite = async (context) => {
239239
const siteId = context.params?.siteId;
240240

241-
if (!hasText(siteId)) {
241+
if (!isValidUUID(siteId)) {
242242
return badRequest('Site ID required');
243243
}
244244

@@ -316,7 +316,7 @@ function SitesController(dataAccess, log, env) {
316316
const getKeyEventsBySiteID = async (context) => {
317317
const siteId = context.params?.siteId;
318318

319-
if (!hasText(siteId)) {
319+
if (!isValidUUID(siteId)) {
320320
return badRequest('Site ID required');
321321
}
322322

@@ -358,7 +358,7 @@ function SitesController(dataAccess, log, env) {
358358
const metric = context.params?.metric;
359359
const source = context.params?.source;
360360

361-
if (!hasText(siteId)) {
361+
if (!isValidUUID(siteId)) {
362362
return badRequest('Site ID required');
363363
}
364364

@@ -383,7 +383,7 @@ function SitesController(dataAccess, log, env) {
383383
const getLatestSiteMetrics = async (context) => {
384384
const siteId = context.params?.siteId;
385385

386-
if (!hasText(siteId)) {
386+
if (!isValidUUID(siteId)) {
387387
return badRequest('Site ID required');
388388
}
389389

src/controllers/suggestions.js

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -56,11 +56,11 @@ function SuggestionsController(dataAccess) {
5656
const siteId = context.params?.siteId;
5757
const opptyId = context.params?.opportunityId;
5858

59-
if (!hasText(siteId)) {
59+
if (!isValidUUID(siteId)) {
6060
return badRequest('Site ID required');
6161
}
6262

63-
if (!hasText(opptyId)) {
63+
if (!isValidUUID(opptyId)) {
6464
return badRequest('Opportunity ID required');
6565
}
6666

@@ -85,10 +85,10 @@ function SuggestionsController(dataAccess) {
8585
const siteId = context.params?.siteId;
8686
const opptyId = context.params?.opportunityId;
8787
const status = context.params?.status || undefined;
88-
if (!hasText(siteId)) {
88+
if (!isValidUUID(siteId)) {
8989
return badRequest('Site ID required');
9090
}
91-
if (!hasText(opptyId)) {
91+
if (!isValidUUID(opptyId)) {
9292
return badRequest('Opportunity ID required');
9393
}
9494
if (!hasText(status)) {
@@ -117,15 +117,15 @@ function SuggestionsController(dataAccess) {
117117
const opptyId = context.params?.opportunityId || undefined;
118118
const suggestionId = context.params?.suggestionId || undefined;
119119

120-
if (!hasText(siteId)) {
120+
if (!isValidUUID(siteId)) {
121121
return badRequest('Site ID required');
122122
}
123123

124-
if (!hasText(opptyId)) {
124+
if (!isValidUUID(opptyId)) {
125125
return badRequest('Opportunity ID required');
126126
}
127127

128-
if (!hasText(suggestionId)) {
128+
if (!isValidUUID(suggestionId)) {
129129
return badRequest('Suggestion ID required');
130130
}
131131

@@ -149,11 +149,11 @@ function SuggestionsController(dataAccess) {
149149
const siteId = context.params?.siteId;
150150
const opptyId = context.params?.opportunityId || undefined;
151151

152-
if (!hasText(siteId)) {
152+
if (!isValidUUID(siteId)) {
153153
return badRequest('Site ID required');
154154
}
155155

156-
if (!hasText(opptyId)) {
156+
if (!isValidUUID(opptyId)) {
157157
return badRequest('Opportunity ID required');
158158
}
159159

@@ -211,15 +211,15 @@ function SuggestionsController(dataAccess) {
211211
const opportunityId = context.params?.opportunityId;
212212
const suggestionId = context.params?.suggestionId;
213213

214-
if (!hasText(siteId)) {
214+
if (!isValidUUID(siteId)) {
215215
return badRequest('Site ID required');
216216
}
217217

218-
if (!hasText(opportunityId)) {
218+
if (!isValidUUID(opportunityId)) {
219219
return badRequest('Opportunity ID required');
220220
}
221221

222-
if (!hasText(suggestionId)) {
222+
if (!isValidUUID(suggestionId)) {
223223
return badRequest('Suggestion ID required');
224224
}
225225

@@ -277,11 +277,11 @@ function SuggestionsController(dataAccess) {
277277
const siteId = context.params?.siteId;
278278
const opportunityId = context.params?.opportunityId;
279279

280-
if (!hasText(siteId)) {
280+
if (!isValidUUID(siteId)) {
281281
return badRequest('Site ID required');
282282
}
283283

284-
if (!hasText(opportunityId)) {
284+
if (!isValidUUID(opportunityId)) {
285285
return badRequest('Opportunity ID required');
286286
}
287287

src/support/import-supervisor.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
import { ImportJob as ImportJobModel } from '@adobe/spacecat-shared-data-access';
1414
import { hashWithSHA256 } from '@adobe/spacecat-shared-http-utils';
15-
import { hasText } from '@adobe/spacecat-shared-utils';
15+
import { isValidUUID } from '@adobe/spacecat-shared-utils';
1616

1717
import { ErrorWithStatusCode } from './utils.js';
1818
import { STATUS_BAD_REQUEST } from '../utils/constants.js';
@@ -232,7 +232,7 @@ function ImportSupervisor(services, config) {
232232
* @returns {Promise<ImportJob>}
233233
*/
234234
async function getImportJob(jobId, importApiKey) {
235-
if (!hasText(jobId)) {
235+
if (!isValidUUID(jobId)) {
236236
throw new ErrorWithStatusCode('Job ID is required', 400);
237237
}
238238

0 commit comments

Comments
 (0)