fix: clearer error messaging

This commit is contained in:
Eli Bosley
2024-12-20 10:10:24 -05:00
parent 5d72b5a970
commit f8393eeebe
2 changed files with 13 additions and 3 deletions

View File

@@ -154,7 +154,7 @@ describe('ApiKeyService', () => {
const saveSpy = vi.spyOn(apiKeyService, 'saveApiKey');
await expect(apiKeyService.create('', 'desc', [Role.GUEST])).rejects.toThrow(
'API key name must be alphanumeric + spaces'
'API key name must contain only letters, numbers, and spaces (Unicode letters are supported)'
);
await expect(apiKeyService.create('name', 'desc', [])).rejects.toThrow(

View File

@@ -3,15 +3,23 @@ import crypto from 'crypto';
import { readdir, readFile, writeFile } from 'fs/promises';
import { join } from 'path';
import { ensureDir } from 'fs-extra';
import { GraphQLError } from 'graphql';
import { v4 as uuidv4 } from 'uuid';
import { ZodError } from 'zod';
import { ApiKeySchema, ApiKeyWithSecretSchema } from '@app/graphql/generated/api/operations';
import { ApiKey, ApiKeyWithSecret, Role, UserAccount } from '@app/graphql/generated/api/types';
import { getters } from '@app/store';
@Injectable()
export class ApiKeyService implements OnModuleInit {
private readonly logger = new Logger(ApiKeyService.name);
@@ -47,7 +55,9 @@ export class ApiKeyService implements OnModuleInit {
if (/^[\p{L}\p{N} ]+$/u.test(name)) {
return name;
} else {
throw new GraphQLError('API key name must be alphanumeric + spaces');
throw new GraphQLError(
'API key name must contain only letters, numbers, and spaces (Unicode letters are supported)'
);
}
}
@@ -298,4 +308,4 @@ export class ApiKeyService implements OnModuleInit {
keyFile: this.keyFile,
};
}
}
}