From 3c5867b3da9cf523366d138f05f43071b34a275d Mon Sep 17 00:00:00 2001 From: Laura Liberda Date: Mon, 1 Feb 2021 12:04:19 +0100 Subject: [PATCH] return entity types --- src/types.ts | 8 ++++++++ src/vendor/github/repomgr.ts | 4 ++++ src/vendor/gitlab/repomgr.ts | 3 +++ 3 files changed, 15 insertions(+) diff --git a/src/types.ts b/src/types.ts index d51bb38..d7f91df 100644 --- a/src/types.ts +++ b/src/types.ts @@ -57,8 +57,14 @@ export interface RepoManager { getMergeRequest: (id: string) => Promise; } +export enum ENTITY_TYPE { + ISSUE = 'issue', + MERGE_REQUEST = 'merge_request', +} + /** issue, merge request or whatever the fuck you need */ export interface RepoElement { + // type: ENTITY_TYPE; id: string; title: string; content: string; @@ -72,6 +78,7 @@ export enum ISSUE_STATE { } export interface Issue extends RepoElement { + type: ENTITY_TYPE.ISSUE; state: ISSUE_STATE; } @@ -88,6 +95,7 @@ export enum MERGE_REQUEST_MERGABILITY { } export interface MergeRequest extends RepoElement { + type: ENTITY_TYPE.MERGE_REQUEST; state: MERGE_REQUEST_STATE; /** null if unknown */ mergability: MERGE_REQUEST_MERGABILITY | null; diff --git a/src/vendor/github/repomgr.ts b/src/vendor/github/repomgr.ts index 0a9e9cc..7452235 100644 --- a/src/vendor/github/repomgr.ts +++ b/src/vendor/github/repomgr.ts @@ -15,6 +15,7 @@ import { MergeRequest, MERGE_REQUEST_STATE, MERGE_REQUEST_MERGABILITY, + ENTITY_TYPE, } from '../../types'; import GitHubVendorManager from './vendormgr'; import assert from 'assert'; @@ -103,6 +104,7 @@ export default class GitHubRepoManager implements RepoManager { assert(resp.repository.issue, 'no issue'); const { issue } = resp.repository; return { + type: ENTITY_TYPE.ISSUE, id: number, content: issue.body, title: issue.title, @@ -137,6 +139,7 @@ export default class GitHubRepoManager implements RepoManager { assert(resp.createIssue.issue, 'creating issue failed'); const replicated = resp.createIssue.issue; return { + type: ENTITY_TYPE.ISSUE, id: replicated.number.toString(), content: replicated.body, title: replicated.title, @@ -170,6 +173,7 @@ export default class GitHubRepoManager implements RepoManager { assert(resp.repository.pullRequest, 'no pull request'); const { pullRequest } = resp.repository; return { + type: ENTITY_TYPE.MERGE_REQUEST, id: number, content: pullRequest.body, title: pullRequest.title, diff --git a/src/vendor/gitlab/repomgr.ts b/src/vendor/gitlab/repomgr.ts index c2dd07e..1a3069c 100644 --- a/src/vendor/gitlab/repomgr.ts +++ b/src/vendor/gitlab/repomgr.ts @@ -15,6 +15,7 @@ import { MergeRequest, MERGE_REQUEST_STATE, MERGE_REQUEST_MERGABILITY, + ENTITY_TYPE, } from '../../types'; import GitLabVendorManager from './vendormgr'; import assert from 'assert'; @@ -109,6 +110,7 @@ export default class GitHubRepoManager implements RepoManager { assert(resp.project.issue, 'no issue'); const { issue } = resp.project; return { + type: ENTITY_TYPE.ISSUE, id: number, content: issue.description || '', title: issue.title, @@ -160,6 +162,7 @@ export default class GitHubRepoManager implements RepoManager { assert(resp.project.mergeRequest, 'no merge request'); const { mergeRequest } = resp.project; return { + type: ENTITY_TYPE.MERGE_REQUEST, id: number, content: mergeRequest.description || '', title: mergeRequest.title,