Skip to content

Commit ed2427c

Browse files
committed
refactor: moved key service and throw key not found error
1 parent 2e17096 commit ed2427c

File tree

7 files changed

+19
-7
lines changed

7 files changed

+19
-7
lines changed

src/crypto/index.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,2 @@
11
export * from './key.dto';
22
export * from './key.schema';
3-
export * from './key.service';

src/errors/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export * from './key-not-found.error';

src/errors/key-not-found.error.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
export class KeyNotFoundError extends Error {
2+
public static withId(id: string) {
3+
return new KeyNotFoundError(`Decrypt key for [${id}] does not exists`);
4+
}
5+
}

src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
export * from './aggregate.repository';
22
export * from './decorators/inject-repository.decorator';
33
export * from './domain';
4+
export * from './errors';
45
export * from './eventstore';
56
export * from './eventstore.config';
67
export * from './eventstore.constants';

src/services/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
1+
export * from './key.service';
12
export * from './projections.service';
23
export * from './transformer.service';

src/crypto/key.service.spec.ts renamed to src/services/key.service.spec.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
import { CryptoModule } from '@akanass/nestjsx-crypto';
22
import { getModelToken } from '@nestjs/mongoose';
33
import { Test } from '@nestjs/testing';
4-
import { KeyDto } from './key.dto';
5-
import { KeyDocument, KEYS } from './key.schema';
6-
import { KeyService } from './key.service';
7-
import { Event } from '../domain';
84
import { v4 as uuid } from 'uuid';
95
import { Model } from 'mongoose';
106

7+
import { KeyDto, KeyDocument, KEYS } from '../crypto';
8+
import { Event } from '../domain';
9+
import { KeyService } from './key.service';
10+
1111
describe('KeyService', () => {
1212
const PAYLOAD = { foo: 'bar' };
1313
const ENCRYPTED_PAYLOAD = 'z6ZatDe7V2Dvkxyvx9fzazqjc5BOWqSTpUaQzrkUeR4=';

src/crypto/key.service.ts renamed to src/services/key.service.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ import { Model } from 'mongoose';
99
import { firstValueFrom } from 'rxjs';
1010
import { v4 as uuid } from 'uuid';
1111

12+
import { KeyDocument, KeyDto, KEYS } from '../crypto';
1213
import { Event } from '../domain';
13-
import { KeyDto } from './key.dto';
14-
import { KeyDocument, KEYS } from './key.schema';
14+
import { KeyNotFoundError } from '../errors';
1515

1616
@Injectable()
1717
export class KeyService {
@@ -58,6 +58,11 @@ export class KeyService {
5858

5959
async decryptPayload(id: string, encryptedPayload: string): Promise<string> {
6060
const key = await this.find(id);
61+
62+
if (!key) {
63+
throw KeyNotFoundError.withId(id);
64+
}
65+
6166
const source$ = await this.aesService
6267
.createKey(key.secret, key.salt)
6368
.pipe(decryptWithAesKey(Buffer.from(encryptedPayload, 'base64')));

0 commit comments

Comments
 (0)