From f467816070bffcd3776e5dc3e6074c92bf6d644e Mon Sep 17 00:00:00 2001 From: "Simon A. Eugster" Date: Thu, 5 Dec 2019 15:24:55 +0100 Subject: [PATCH] feat: Add Group/File schemas (#506) This commit adds more schemas for TypeScript and continues f1fe3763. --- src/core/services/GroupProjects.ts | 5 +++-- src/core/services/Groups.ts | 24 ++++++++++++++++++++---- src/core/services/RepositoryFiles.ts | 22 ++++++++++++++++++++-- 3 files changed, 43 insertions(+), 8 deletions(-) diff --git a/src/core/services/GroupProjects.ts b/src/core/services/GroupProjects.ts index 78ec64ae8..f940486dc 100644 --- a/src/core/services/GroupProjects.ts +++ b/src/core/services/GroupProjects.ts @@ -4,12 +4,13 @@ import { PaginatedRequestOptions, RequestHelper, } from '../infrastructure'; +import { ProjectSchema } from './Projects'; export class GroupProjects extends BaseService { - all(groupId: string | number, options?: PaginatedRequestOptions) { + all(groupId: string | number, options?: PaginatedRequestOptions): Promise { const gId = encodeURIComponent(groupId); - return RequestHelper.get(this, `groups/${gId}/projects`, options); + return RequestHelper.get(this, `groups/${gId}/projects`, options) as Promise; } add(groupId: string | number, projectId: string | number, options?: BaseRequestOptions) { diff --git a/src/core/services/Groups.ts b/src/core/services/Groups.ts index e19635100..e9a0a7a04 100644 --- a/src/core/services/Groups.ts +++ b/src/core/services/Groups.ts @@ -7,9 +7,25 @@ import { } from '../infrastructure'; import { ProjectSchema } from './Projects'; +export interface GroupSchema { + id: number; + name: string; + path: string; + full_name: string; + full_path: string; + parent_id: number; + visibility: string; + avatar_url: string; + web_url: string; +} + +export interface GroupDetailSchema extends GroupSchema { + projects: ProjectSchema[]; +} + export class Groups extends BaseService { - all(options?: PaginatedRequestOptions) { - return RequestHelper.get(this, 'groups', options); + all(options?: PaginatedRequestOptions): Promise { + return RequestHelper.get(this, 'groups', options) as Promise; } create(options?: BaseRequestOptions) { @@ -63,10 +79,10 @@ export class Groups extends BaseService { }); } - show(groupId: string | number, options?: BaseRequestOptions) { + show(groupId: string | number, options?: BaseRequestOptions): Promise { const gId = encodeURIComponent(groupId); - return RequestHelper.get(this, `groups/${gId}`, options); + return RequestHelper.get(this, `groups/${gId}`, options) as Promise; } subgroups(groupId: string | number, options?: PaginatedRequestOptions) { diff --git a/src/core/services/RepositoryFiles.ts b/src/core/services/RepositoryFiles.ts index 22f3aa072..b54bbd84c 100644 --- a/src/core/services/RepositoryFiles.ts +++ b/src/core/services/RepositoryFiles.ts @@ -1,5 +1,18 @@ import { BaseService, RequestHelper, BaseRequestOptions, Sudo } from '../infrastructure'; +export interface RepositoryFileSchema { + file_name: string; + file_path: string; + size: number; + encoding: string; + content: string; + content_sha256: string; + ref: string; + blob_id: string; + commit_id: string; + last_commit_id: string; +} + export class RepositoryFiles extends BaseService { create( projectId: string | number, @@ -53,13 +66,18 @@ export class RepositoryFiles extends BaseService { }); } - show(projectId: string | number, filePath: string, ref: string, options?: Sudo) { + show( + projectId: string | number, + filePath: string, + ref: string, + options?: Sudo, + ): Promise { const [pId, path] = [projectId, filePath].map(encodeURIComponent); return RequestHelper.get(this, `projects/${pId}/repository/files/${path}`, { ref, ...options, - }); + }) as Promise; } showBlame(projectId: string | number, filePath: string, options?: Sudo) {