input validation in fetchRepositories
This commit is contained in:
parent
82f632f63a
commit
4536f8a613
1 changed files with 5 additions and 0 deletions
|
|
@ -149,6 +149,11 @@ async function fetchVolumes(filter: FilterOptions): Promise<FetchResult<typeof v
|
||||||
|
|
||||||
async function fetchRepositories(filter: FilterOptions): Promise<FetchResult<typeof repositoriesTable.$inferSelect>> {
|
async function fetchRepositories(filter: FilterOptions): Promise<FetchResult<typeof repositoriesTable.$inferSelect>> {
|
||||||
if (filter.id) {
|
if (filter.id) {
|
||||||
|
// Validate UUID format
|
||||||
|
const uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
||||||
|
if (!uuidRegex.test(filter.id)) {
|
||||||
|
return { error: "Invalid repository ID format (expected UUID)", status: 400 };
|
||||||
|
}
|
||||||
const result = await db.select().from(repositoriesTable).where(eq(repositoriesTable.id, filter.id));
|
const result = await db.select().from(repositoriesTable).where(eq(repositoriesTable.id, filter.id));
|
||||||
if (result.length === 0) return { error: `Repository with ID '${filter.id}' not found`, status: 404 };
|
if (result.length === 0) return { error: `Repository with ID '${filter.id}' not found`, status: 404 };
|
||||||
return { data: result };
|
return { data: result };
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue