From 3ef32e602504584364a21d38a377957ebaee517d Mon Sep 17 00:00:00 2001 From: TheoryOfNekomata Date: Fri, 20 May 2022 17:44:15 +0800 Subject: [PATCH] Specify error responses Use error classes to specify the error codes and body. --- src/modules/git/Git.service.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/modules/git/Git.service.ts b/src/modules/git/Git.service.ts index 0cbceb3..9ef657f 100644 --- a/src/modules/git/Git.service.ts +++ b/src/modules/git/Git.service.ts @@ -1,10 +1,15 @@ +import {constants} from 'http2'; import * as codeCore from '@modal/code-core'; +import {HttpError} from '../../packages/fastify-compliant-http-errors'; export interface GitService { createRepo(options: codeCore.git.CreateRepoData, user?: codeCore.common.User): Promise; deleteRepo(repoId: codeCore.git.Repo['id'], user?: codeCore.common.User): Promise } +export class UnableToCreateRepoError extends HttpError(constants.HTTP_STATUS_UNAUTHORIZED, 'Unable to Create Repo') {} +export class UnableToDeleteRepoError extends HttpError(constants.HTTP_STATUS_UNAUTHORIZED, 'Unable to Delete Repo') {} + export class GitServiceImpl implements GitService { private readonly coreGitService: codeCore.git.GitService; @@ -16,13 +21,13 @@ export class GitServiceImpl implements GitService { if (user) { return this.coreGitService.create(options, user); } - throw new Error('Unauthorized'); + throw new UnableToCreateRepoError('Unauthorized'); } async deleteRepo(repoId: codeCore.git.Repo['id'], user?: codeCore.common.User): Promise { if (user) { await this.coreGitService.delete(repoId, user); } - throw new Error('Unauthorized'); + throw new UnableToDeleteRepoError('Unauthorized'); } }