Add ProjectId type to arguments

This commit is contained in:
Pavel Birukov 2018-09-06 10:13:30 +03:00
parent f2c4259f02
commit b5372fb2ea
46 changed files with 272 additions and 233 deletions

View File

@ -17,10 +17,10 @@ export type BaseModelContructorOptions =
| BaseModelOptions & Required<Pick<BaseModelOptions, 'oauthToken'>>;
class BaseModel {
protected url: string;
public headers: { [header: string]: string | number};
public rejectUnauthorized: boolean;
protected requester: any;
protected useXMLHttpRequest: boolean;
public readonly headers: { [header: string]: string | number};
public readonly rejectUnauthorized: boolean;
protected readonly requester: any;
protected readonly useXMLHttpRequest: boolean;
constructor({
token,

View File

@ -4,7 +4,7 @@ import { BaseModelContructorOptions } from './BaseService';
function Bundler<T extends { [K: string]: typeof BaseService }>(
services: T,
): new (...args: any[]) => { [K in keyof T]: InstanceType<T[K]> } {
const combined = Object.assign({}, services);
const combined = { ...services as object } as T;
interface BundleClass {
[K: string]: BaseService;
}
@ -15,7 +15,7 @@ function Bundler<T extends { [K: string]: typeof BaseService }>(
this[serviceName] = new combined[serviceName](options);
});
}
} as any;
} as temporaryAny;
}
export default Bundler;

View File

@ -3,6 +3,7 @@ import LinkParser from 'parse-link-header';
import QS from 'qs';
import URLJoin from 'url-join';
import StreamableRequest from 'request';
import { BaseService } from '.';
interface RequestParametersInput {
url?: string;
@ -18,18 +19,19 @@ interface RequestParametersInput {
interface GetPaginatedOptions {
showPagination?: boolean;
maxPages?: number;
perPage?: number;
page?: number;
}
type RequestParametersOutput = RequestParametersInput &
Required<Pick<RequestParametersInput, 'url'>>;
export async function wait(ms) {
export async function wait(ms: number) {
return new Promise(resolve => setTimeout(resolve, ms));
}
function defaultRequest(
{ url, useXMLHttpRequest, rejectUnauthorized },
{ url, useXMLHttpRequest, rejectUnauthorized }: BaseService,
endpoint,
{ headers, body, qs, formData, resolveWithFullResponse = false }: RequestParametersInput,
): RequestParametersOutput {
@ -59,7 +61,7 @@ function defaultRequest(
return params;
}
function getStream(service, endpoint, options = {}) {
function getStream(service: BaseService, endpoint: string, options = {}) {
if (service.useXMLHttpRequest) {
throw new Error(
`Cannot use streaming functionality with XMLHttpRequest. Please instantiate without this
@ -75,7 +77,11 @@ function getStream(service, endpoint, options = {}) {
return StreamableRequest.get(requestOptions);
}
async function getPaginated(service, endpoint, options: GetPaginatedOptions = {}) {
async function getPaginated(
service: BaseService,
endpoint: string,
options: GetPaginatedOptions = {},
) {
const { showPagination, maxPages, ...queryOptions } = options;
const requestOptions = defaultRequest(service, endpoint, {
headers: service.headers,
@ -116,8 +122,19 @@ async function getPaginated(service, endpoint, options: GetPaginatedOptions = {}
return data;
}
type RequestType = 'post' | 'get' | 'put' | 'delete';
export interface RequestOptions {
}
class RequestHelper {
static async request(type, service, endpoint, options = {}, form = false, stream = false) {
static async request(
type: RequestType,
service: BaseService,
endpoint: string,
options: RequestOptions = {},
form = false,
stream = false,
) {
try {
switch (type) {
case 'get':
@ -176,19 +193,19 @@ class RequestHelper {
return wait(sleepTime * 1000);
}
static get(service, endpoint, options = {}, { stream = false } = {}) {
static get(service: BaseService, endpoint, options = {}, { stream = false } = {}) {
return RequestHelper.request('get', service, endpoint, options, false, stream);
}
static post(service, endpoint, options = {}, form = false) {
static post(service: BaseService, endpoint, options = {}, form = false) {
return RequestHelper.request('post', service, endpoint, options, form);
}
static put(service, endpoint, options = {}) {
static put(service: BaseService, endpoint, options = {}) {
return RequestHelper.request('put', service, endpoint, options);
}
static delete(service, endpoint, options = {}) {
static delete(service: BaseService, endpoint, options = {}) {
return RequestHelper.request('delete', service, endpoint, options);
}
}

View File

@ -1,13 +1,13 @@
import { BaseService, RequestHelper } from '../infrastructure';
class Branches extends BaseService {
all(projectId, options) {
all(projectId: ProjectId, options) {
const pId = encodeURIComponent(projectId);
return RequestHelper.get(this, `projects/${pId}/repository/branches`, options);
}
create(projectId, branchName, ref) {
create(projectId: ProjectId, branchName: string, ref: string) {
const pId = encodeURIComponent(projectId);
return RequestHelper.post(this, `projects/${pId}/repository/branches`, {
@ -16,25 +16,25 @@ class Branches extends BaseService {
});
}
protect(projectId, branchName, options) {
protect(projectId: ProjectId, branchName: string, options) {
const pId = encodeURIComponent(projectId);
return RequestHelper.post(this, `projects/${pId}/protected_branches`, { name: branchName, ...options });
}
remove(projectId, branchName) {
remove(projectId: ProjectId, branchName: string) {
const [pId, bName] = [projectId, branchName].map(encodeURIComponent);
return RequestHelper.delete(this, `projects/${pId}/repository/branches/${bName}`);
}
show(projectId, branchName) {
show(projectId: ProjectId, branchName: string) {
const [pId, bName] = [projectId, branchName].map(encodeURIComponent);
return RequestHelper.get(this, `projects/${pId}/repository/branches/${bName}`);
}
unprotect(projectId, branchName) {
unprotect(projectId: ProjectId, branchName: string) {
const [pId, bName] = [projectId, branchName].map(encodeURIComponent);
return RequestHelper.put(this, `projects/${pId}/repository/branches/${bName}/unprotect`);

View File

@ -1,25 +1,25 @@
import { BaseService, RequestHelper } from '../infrastructure';
class Commits extends BaseService {
all(projectId, options) {
all(projectId: ProjectId, options) {
const pId = encodeURIComponent(projectId);
return RequestHelper.get(this, `projects/${pId}/repository/commits`, options);
}
cherryPick(projectId, sha, branch) {
cherryPick(projectId: ProjectId, sha, branch) {
const pId = encodeURIComponent(projectId);
return RequestHelper.post(this, `projects/${pId}/repository/commits/${sha}/cherry_pick`, { branch });
}
comments(projectId, sha) {
comments(projectId: ProjectId, sha) {
const pId = encodeURIComponent(projectId);
return RequestHelper.get(this, `projects/${pId}/repository/commits/${sha}/comments`);
}
create(projectId, branch, message, actions = [], options) {
create(projectId: ProjectId, branch, message, actions = [], options) {
const pId = encodeURIComponent(projectId);
return RequestHelper.post(this, `projects/${pId}/repository/commits`, {
@ -30,7 +30,7 @@ class Commits extends BaseService {
});
}
createComment(projectId, sha, note, options) {
createComment(projectId: ProjectId, sha, note, options) {
const pId = encodeURIComponent(projectId);
return RequestHelper.post(this, `projects/${pId}/repository/commits/${sha}/comments`, {
@ -39,31 +39,31 @@ class Commits extends BaseService {
});
}
diff(projectId, sha) {
diff(projectId: ProjectId, sha) {
const pId = encodeURIComponent(projectId);
return RequestHelper.get(this, `projects/${pId}/repository/commits/${sha}/diff`);
}
editStatus(projectId, sha, options) {
editStatus(projectId: ProjectId, sha, options) {
const pId = encodeURIComponent(projectId);
return RequestHelper.post(this, `projects/${pId}/statuses/${sha}`, options);
}
references(projectId, sha) {
references(projectId: ProjectId, sha) {
const pId = encodeURIComponent(projectId);
return RequestHelper.get(this, `projects/${pId}/repository/commits/${sha}/refs`);
}
show(projectId, sha, options) {
show(projectId: ProjectId, sha, options) {
const pId = encodeURIComponent(projectId);
return RequestHelper.get(this, `projects/${pId}/repository/commits/${sha}`, options);
}
status(projectId, sha, options) {
status(projectId: ProjectId, sha, options) {
const pId = encodeURIComponent(projectId);
return RequestHelper.get(this, `projects/${pId}/repository/commits/${sha}/statuses`, options);

View File

@ -1,25 +1,25 @@
import { BaseService, RequestHelper } from '../infrastructure';
class DeployKeys extends BaseService {
add(projectId, options) {
add(projectId: ProjectId, options) {
const pId = encodeURIComponent(projectId);
return RequestHelper.post(this, `projects/${pId}/deploy_keys`, options);
}
all(projectId) {
all(projectId: ProjectId) {
const pId = encodeURIComponent(projectId);
return RequestHelper.get(this, `projects/${pId}/deploy_keys`);
}
show(projectId, keyId) {
show(projectId: ProjectId, keyId) {
const [pId, kId] = [projectId, keyId].map(encodeURIComponent);
return RequestHelper.get(this, `projects/${pId}/deploy_keys/${kId}`);
}
enable(projectId, keyId) {
enable(projectId: ProjectId, keyId) {
const [pId, kId] = [projectId, keyId].map(encodeURIComponent);
return RequestHelper.post(this, `projects/${pId}/deploy_keys/${kId}/enable`);

View File

@ -1,13 +1,13 @@
import { BaseService, RequestHelper } from '../infrastructure';
class Deployments extends BaseService {
all(projectId, options) {
all(projectId: ProjectId, options) {
const pId = encodeURIComponent(projectId);
return RequestHelper.get(this, `projects/${pId}/deployments`, options);
}
show(projectId, deploymentId) {
show(projectId: ProjectId, deploymentId) {
const [pId, dId] = [projectId, deploymentId].map(encodeURIComponent);
return RequestHelper.post(this, `projects/${pId}/deployments/${dId}`);

View File

@ -1,31 +1,31 @@
import { BaseService, RequestHelper } from '../infrastructure';
class Environments extends BaseService {
all(projectId, options) {
all(projectId: ProjectId, options) {
const pId = encodeURIComponent(projectId);
return RequestHelper.get(this, `projects/${pId}/environments`, options);
}
create(projectId, options) {
create(projectId: ProjectId, options) {
const pId = encodeURIComponent(projectId);
return RequestHelper.post(this, `projects/${pId}/environments`, options);
}
edit(projectId, environmentId, options) {
edit(projectId: ProjectId, environmentId, options) {
const [pId, eId] = [projectId, environmentId].map(encodeURIComponent);
return RequestHelper.put(this, `projects/${pId}/environments/${eId}`, options);
}
remove(projectId, environmentId) {
remove(projectId: ProjectId, environmentId) {
const [pId, eId] = [projectId, environmentId].map(encodeURIComponent);
return RequestHelper.delete(this, `projects/${pId}/environments/${eId}`);
}
stop(projectId, environmentId) {
stop(projectId: ProjectId, environmentId) {
const [pId, eId] = [projectId, environmentId].map(encodeURIComponent);
return RequestHelper.post(this, `projects/${pId}/environments/${eId}/stop`);

View File

@ -7,7 +7,7 @@ class GroupProjects extends BaseService {
return RequestHelper.get(this, `groups/${gId}/projects`, options);
}
add(groupId, projectId) {
add(groupId, projectId: ProjectId) {
const [gId, pId] = [groupId, projectId].map(encodeURIComponent);
return RequestHelper.post(this, `groups/${gId}/projects/${pId}`);

View File

@ -1,8 +1,9 @@
import { ResourceVariables } from '../templates';
import { BaseModelContructorOptions } from '../infrastructure/BaseService';
class GroupVariables extends ResourceVariables {
constructor(options) {
super('groups', null, options);
constructor(baseParams: BaseModelContructorOptions) {
super('groups', null, baseParams);
}
}

View File

@ -1,7 +1,7 @@
import { BaseService, RequestHelper } from '../infrastructure';
class Issues extends BaseService {
addSpentTime(projectId, issueId, duration) {
addSpentTime(projectId: ProjectId, issueId, duration) {
const [pId, iId] = [projectId, issueId].map(encodeURIComponent);
return RequestHelper.post(this, `projects/${pId}/issues/${iId}/add_spent_time`, {
@ -9,7 +9,7 @@ class Issues extends BaseService {
});
}
addTimeEstimate(projectId, issueId, duration) {
addTimeEstimate(projectId: ProjectId, issueId, duration) {
const [pId, iId] = [projectId, issueId].map(encodeURIComponent);
return RequestHelper.post(this, `projects/${pId}/issues/${iId}/time_estimate`, {
@ -23,19 +23,19 @@ class Issues extends BaseService {
return RequestHelper.get(this, url, options);
}
create(projectId, options) {
create(projectId: ProjectId, options) {
const pId = encodeURIComponent(projectId);
return RequestHelper.post(this, `projects/${pId}/issues`, options);
}
edit(projectId, issueId, options) {
edit(projectId: ProjectId, issueId, options) {
const [pId, iId] = [projectId, issueId].map(encodeURIComponent);
return RequestHelper.put(this, `projects/${pId}/issues/${iId}`, options);
}
link(projectId, issueIId, targetProjectId, targetIssueId, options = {}) {
link(projectId: ProjectId, issueIId, targetProjectId, targetIssueId, options = {}) {
const [pId, iId] = [projectId, issueIId].map(encodeURIComponent);
const [targetpId, targetIId] = [targetProjectId, targetIssueId].map(encodeURIComponent);
@ -46,49 +46,49 @@ class Issues extends BaseService {
});
}
participants(projectId, issueId) {
participants(projectId: ProjectId, issueId) {
const [pId, iId] = [projectId, issueId].map(encodeURIComponent);
return RequestHelper.get(this, `projects/${pId}/issues/${iId}/participants`);
}
remove(projectId, issueId) {
remove(projectId: ProjectId, issueId) {
const [pId, iId] = [projectId, issueId].map(encodeURIComponent);
return RequestHelper.delete(this, `projects/${pId}/issues/${iId}`);
}
resetSpentTime(projectId, mergerequestId) {
resetSpentTime(projectId: ProjectId, mergerequestId) {
const [pId, mId] = [projectId, mergerequestId].map(encodeURIComponent);
return RequestHelper.post(this, `projects/${pId}/issues/${mId}/reset_spent_time`);
}
resetTimeEstimate(projectId, mergerequestId) {
resetTimeEstimate(projectId: ProjectId, mergerequestId) {
const [pId, mId] = [projectId, mergerequestId].map(encodeURIComponent);
return RequestHelper.post(this, `projects/${pId}/issues/${mId}/reset_time_estimate`);
}
show(projectId, issueId) {
show(projectId: ProjectId, issueId) {
const [pId, iId] = [projectId, issueId].map(encodeURIComponent);
return RequestHelper.get(this, `projects/${pId}/issues/${iId}`);
}
subscribe(projectId, issueId, options) {
subscribe(projectId: ProjectId, issueId, options) {
const [pId, iId] = [projectId, issueId].map(encodeURIComponent);
return RequestHelper.post(this, `projects/${pId}/issues/${iId}/subscribe`, options);
}
timeStats(projectId, mergerequestId) {
timeStats(projectId: ProjectId, mergerequestId) {
const [pId, mId] = [projectId, mergerequestId].map(encodeURIComponent);
return RequestHelper.get(this, `projects/${pId}/issues/${mId}/time_stats`);
}
unsubscribe(projectId, issueId) {
unsubscribe(projectId: ProjectId, issueId) {
const [pId, iId] = [projectId, issueId].map(encodeURIComponent);
return RequestHelper.delete(this, `projects/${pId}/issues/${iId}/unsubscribe`);

View File

@ -1,20 +1,20 @@
import { BaseService, RequestHelper } from '../infrastructure';
class Jobs extends BaseService {
all(projectId, options = {}) {
all(projectId: ProjectId, options = {}) {
const pId = encodeURIComponent(projectId);
return RequestHelper.get(this, `projects/${pId}/jobs`, options);
}
cancel(projectId, jobId) {
cancel(projectId: ProjectId, jobId) {
const [pId, jId] = [projectId, jobId].map(encodeURIComponent);
return RequestHelper.post(this, `projects/${pId}/jobs/${jId}/cancel`);
}
downloadSingleArtifactFile(
projectId,
projectId: ProjectId,
jobId,
artifactPath,
options = { stream: false },
@ -30,7 +30,7 @@ class Jobs extends BaseService {
}
downloadLatestArtifactFile(
projectId,
projectId: ProjectId,
ref,
name,
options = { stream: false },
@ -45,43 +45,43 @@ class Jobs extends BaseService {
);
}
downloadTraceFile(projectId, jobId) {
downloadTraceFile(projectId: ProjectId, jobId) {
const [pId, jId] = [projectId, jobId].map(encodeURIComponent);
return RequestHelper.get(this, `projects/${pId}/jobs/${jId}/trace`);
}
erase(projectId, jobId) {
erase(projectId: ProjectId, jobId) {
const [pId, jId] = [projectId, jobId].map(encodeURIComponent);
return RequestHelper.post(this, `projects/${pId}/jobs/${jId}/erase`);
}
keepArtifacts(projectId, jobId) {
keepArtifacts(projectId: ProjectId, jobId) {
const [pId, jId] = [projectId, jobId].map(encodeURIComponent);
return RequestHelper.post(this, `projects/${pId}/jobs/${jId}/artifacts/keep`);
}
play(projectId, jobId) {
play(projectId: ProjectId, jobId) {
const [pId, jId] = [projectId, jobId].map(encodeURIComponent);
return RequestHelper.post(this, `projects/${pId}/jobs/${jId}/play`);
}
retry(projectId, jobId) {
retry(projectId: ProjectId, jobId) {
const [pId, jId] = [projectId, jobId].map(encodeURIComponent);
return RequestHelper.post(this, `projects/${pId}/jobs/${jId}/retry`);
}
show(projectId, jobId) {
show(projectId: ProjectId, jobId) {
const [pId, jId] = [projectId, jobId].map(encodeURIComponent);
return RequestHelper.get(this, `projects/${pId}/jobs/${jId}`);
}
showPipelineJobs(projectId, pipelineId, options) {
showPipelineJobs(projectId: ProjectId, pipelineId, options) {
const [pId, ppId] = [projectId, pipelineId].map(encodeURIComponent);
return RequestHelper.get(

View File

@ -1,37 +1,37 @@
import { BaseService, RequestHelper } from '../infrastructure';
class Labels extends BaseService {
all(projectId, options = {}) {
all(projectId: ProjectId, options = {}) {
const pId = encodeURIComponent(projectId);
return RequestHelper.get(this, `projects/${pId}/labels`, options);
}
create(projectId, options = {}) {
create(projectId: ProjectId, options = {}) {
const pId = encodeURIComponent(projectId);
return RequestHelper.post(this, `projects/${pId}/labels`, options);
}
edit(projectId, labelName, options = {}) {
edit(projectId: ProjectId, labelName, options = {}) {
const pId = encodeURIComponent(projectId);
return RequestHelper.put(this, `projects/${pId}/labels`, { name: labelName, ...options });
}
remove(projectId, labelName) {
remove(projectId: ProjectId, labelName) {
const pId = encodeURIComponent(projectId);
return RequestHelper.delete(this, `projects/${pId}/labels`, { name: labelName });
}
subscribe(projectId, labelId, options = {}) {
subscribe(projectId: ProjectId, labelId, options = {}) {
const [pId, lId] = [projectId, labelId].map(encodeURIComponent);
return RequestHelper.post(this, `projects/${pId}/issues/${lId}/subscribe`, options);
}
unsubscribe(projectId, labelId) {
unsubscribe(projectId: ProjectId, labelId) {
const [pId, lId] = [projectId, labelId].map(encodeURIComponent);
return RequestHelper.delete(this, `projects/${pId}/issues/${lId}/unsubscribe`);

View File

@ -1,13 +1,13 @@
import { BaseService, RequestHelper } from '../infrastructure';
class MergeRequests extends BaseService {
accept(projectId, mergerequestId, options) {
accept(projectId: ProjectId, mergerequestId, options) {
const [pId, mId] = [projectId, mergerequestId].map(encodeURIComponent);
return RequestHelper.put(this, `projects/${pId}/merge_requests/${mId}/merge`, options);
}
addSpentTime(projectId, mergerequestId, duration) {
addSpentTime(projectId: ProjectId, mergerequestId, duration) {
const [pId, mId] = [projectId, mergerequestId].map(encodeURIComponent);
return RequestHelper.post(this, `projects/${pId}/issues/${mId}/add_spent_time`, {
@ -15,7 +15,7 @@ class MergeRequests extends BaseService {
});
}
addTimeEstimate(projectId, mergerequestId, duration) {
addTimeEstimate(projectId: ProjectId, mergerequestId, duration) {
const [pId, mId] = [projectId, mergerequestId].map(encodeURIComponent);
return RequestHelper.post(this, `projects/${pId}/issues/${mId}/time_estimate`, {
@ -23,50 +23,50 @@ class MergeRequests extends BaseService {
});
}
approve(projectId, mergerequestId, { sha }) {
approve(projectId: ProjectId, mergerequestId, { sha }) {
const [pId, mId] = [projectId, mergerequestId].map(encodeURIComponent);
return RequestHelper.post(this, `projects/${pId}/merge_requests/${mId}/approve`, { sha });
}
approvals(projectId, { mergerequestId }: { mergerequestId?: string } = {}) {
approvals(projectId: ProjectId, { mergerequestId }: { mergerequestId?: string } = {}) {
const pId = encodeURIComponent(projectId);
const mergeRequest = mergerequestId ? `merge_requests/${encodeURIComponent(mergerequestId)}` : '';
return RequestHelper.get(this, `projects/${pId}/${mergeRequest}/approvals`);
}
all({ projectId, ...options }: { projectId?: string } = {}) {
all({ projectId, ...options }: { projectId?: ProjectId } = {}) {
const url = projectId ? `projects/${encodeURIComponent(projectId)}/merge_requests` : 'merge_requests';
return RequestHelper.get(this, url, options);
}
cancelOnPipelineSucess(projectId, mergerequestId) {
cancelOnPipelineSucess(projectId: ProjectId, mergerequestId) {
const [pId, mId] = [projectId, mergerequestId].map(encodeURIComponent);
return RequestHelper.put(this, `projects/${pId}/merge_requests/${mId}/cancel_merge_when_pipeline_succeeds`);
}
changes(projectId, mergerequestId) {
changes(projectId: ProjectId, mergerequestId) {
const [pId, mId] = [projectId, mergerequestId].map(encodeURIComponent);
return RequestHelper.get(this, `projects/${pId}/merge_requests/${mId}/changes`);
}
closesIssues(projectId, mergerequestId) {
closesIssues(projectId: ProjectId, mergerequestId) {
const [pId, mId] = [projectId, mergerequestId].map(encodeURIComponent);
return RequestHelper.get(this, `projects/${pId}/merge_requests/${mId}/closes_issues`);
}
commits(projectId, mergerequestId) {
commits(projectId: ProjectId, mergerequestId) {
const [pId, mId] = [projectId, mergerequestId].map(encodeURIComponent);
return RequestHelper.get(this, `projects/${pId}/merge_requests/${mId}/commits`);
}
create(projectId, sourceBranch, targetBranch, title, options) {
create(projectId: ProjectId, sourceBranch, targetBranch, title, options) {
const pId = encodeURIComponent(projectId);
return RequestHelper.post(this, `projects/${pId}/merge_requests`, {
@ -78,82 +78,82 @@ class MergeRequests extends BaseService {
});
}
edit(projectId, mergerequestId, options) {
edit(projectId: ProjectId, mergerequestId, options) {
const [pId, mId] = [projectId, mergerequestId].map(encodeURIComponent);
return RequestHelper.put(this, `projects/${pId}/merge_requests/${mId}`, options);
}
editApprovals(projectId, { mergerequestId, ...options }) {
editApprovals(projectId: ProjectId, { mergerequestId, ...options }) {
const pId = encodeURIComponent(projectId);
const mergeRequest = mergerequestId ? `merge_requests/${encodeURIComponent(mergerequestId)}` : '';
return RequestHelper.post(this, `projects/${pId}/${mergeRequest}approvals`, options);
}
editApprovers(projectId, { mergerequestId, ...options }) {
editApprovers(projectId: ProjectId, { mergerequestId, ...options }) {
const pId = encodeURIComponent(projectId);
const mergeRequest = mergerequestId ? `merge_requests/${encodeURIComponent(mergerequestId)}` : '';
return RequestHelper.put(this, `projects/${pId}/${mergeRequest}approvers`, options);
}
pipelines(projectId, { mergerequestId }: { mergerequestId?: string } = {}) {
pipelines(projectId: ProjectId, { mergerequestId }: { mergerequestId?: string } = {}) {
const pId = encodeURIComponent(projectId);
const mergeRequest = mergerequestId ? `merge_requests/${encodeURIComponent(mergerequestId)}` : '';
return RequestHelper.get(this, `projects/${pId}/${mergeRequest}/pipelines`);
}
remove(projectId, mergerequestId) {
remove(projectId: ProjectId, mergerequestId) {
const [pId, mId] = [projectId, mergerequestId].map(encodeURIComponent);
return RequestHelper.delete(this, `projects/${pId}/merge_requests/${mId}`);
}
resetSpentTime(projectId, mergerequestId) {
resetSpentTime(projectId: ProjectId, mergerequestId) {
const [pId, mId] = [projectId, mergerequestId].map(encodeURIComponent);
return RequestHelper.post(this, `projects/${pId}/merge_requests/${mId}/reset_spent_time`);
}
resetTimeEstimate(projectId, mergerequestId) {
resetTimeEstimate(projectId: ProjectId, mergerequestId) {
const [pId, mId] = [projectId, mergerequestId].map(encodeURIComponent);
return RequestHelper.post(this, `projects/${pId}/merge_requests/${mId}/reset_time_estimate`);
}
show(projectId, mergerequestId) {
show(projectId: ProjectId, mergerequestId) {
const [pId, mId] = [projectId, mergerequestId].map(encodeURIComponent);
return RequestHelper.get(this, `projects/${pId}/merge_requests/${mId}`);
}
timeStats(projectId, mergerequestId) {
timeStats(projectId: ProjectId, mergerequestId) {
const [pId, mId] = [projectId, mergerequestId].map(encodeURIComponent);
return RequestHelper.get(this, `projects/${pId}/merge_requests/${mId}/time_stats`);
}
version(projectId, mergerequestId, versionId) {
version(projectId: ProjectId, mergerequestId, versionId) {
const [pId, mId, vId] = [projectId, mergerequestId, versionId].map(encodeURIComponent);
return RequestHelper.get(this, `projects/${pId}/merge_requests/${mId}/versions/${vId}`);
}
versions(projectId, mergerequestId) {
versions(projectId: ProjectId, mergerequestId) {
const [pId, mId] = [projectId, mergerequestId].map(encodeURIComponent);
return RequestHelper.get(this, `projects/${pId}/merge_requests/${mId}/versions`);
}
unapprove(projectId, mergerequestId) {
unapprove(projectId: ProjectId, mergerequestId) {
const [pId, mId] = [projectId, mergerequestId].map(encodeURIComponent);
return RequestHelper.post(this, `projects/${pId}/merge_requests/${mId}/approve`);
}
unsubscribe(projectId, mergerequestId) {
unsubscribe(projectId: ProjectId, mergerequestId) {
const [pId, mId] = [projectId, mergerequestId].map(encodeURIComponent);
return RequestHelper.delete(this, `projects/${pId}/merge_requests/${mId}/unsubscribe`);

View File

@ -26,7 +26,7 @@ const EVENTS = {
SUCCESS_PIPELINE: 'success_pipeline',
};
interface NotificationSettingsOptions {
projectId?: string;
projectId?: ProjectId;
groupId?: string;
}
class NotificationSettings extends BaseService {
@ -40,7 +40,7 @@ class NotificationSettings extends BaseService {
}
all({ projectId, groupId }: NotificationSettingsOptions = {}) {
let url;
let url = '';
if (projectId) {
url += `projects/${encodeURIComponent(projectId)}/`;

View File

@ -1,7 +1,7 @@
import { BaseService, RequestHelper } from '../infrastructure';
interface PagesDomainsOptions {
projectId?: string;
projectId?: ProjectId;
}
class PagesDomains extends BaseService {
all({ projectId }: PagesDomainsOptions = {}) {
@ -10,25 +10,25 @@ class PagesDomains extends BaseService {
return RequestHelper.get(this, `${url}pages/domains`);
}
create(projectId, domain, options) {
create(projectId: ProjectId, domain, options) {
const pId = encodeURIComponent(projectId);
return RequestHelper.post(this, `projects/${pId}/pages/domains`, { domain, ...options });
}
edit(projectId, domain, options) {
edit(projectId: ProjectId, domain, options) {
const pId = encodeURIComponent(projectId);
return RequestHelper.put(this, `projects/${pId}/pages/domains/${domain}`, options);
}
show(projectId, domain) {
show(projectId: ProjectId, domain) {
const pId = encodeURIComponent(projectId);
return RequestHelper.get(this, `projects/${pId}/pages/domains/${domain}`);
}
remove(projectId, domain) {
remove(projectId: ProjectId, domain) {
const pId = encodeURIComponent(projectId);
return RequestHelper.delete(this, `projects/${pId}/pages/domains/${domain}`);

View File

@ -1,13 +1,13 @@
import { BaseService, RequestHelper } from '../infrastructure';
class PipelineSchedules extends BaseService {
all(projectId, options) {
all(projectId: ProjectId, options) {
const pId = encodeURIComponent(projectId);
return RequestHelper.get(this, `projects/${pId}/pipeline_schedules`, options);
}
create(projectId, description, ref, cron, options) {
create(projectId: ProjectId, description, ref, cron, options) {
const pId = encodeURIComponent(projectId);
return RequestHelper.post(this, `projects/${pId}/pipeline_schedules`, {
@ -18,25 +18,25 @@ class PipelineSchedules extends BaseService {
});
}
edit(projectId, scheduleId, options) {
edit(projectId: ProjectId, scheduleId, options) {
const [pId, sId] = [projectId, scheduleId].map(encodeURIComponent);
return RequestHelper.put(this, `projects/${pId}/pipeline_schedules/${sId}`, options);
}
remove(projectId, scheduleId) {
remove(projectId: ProjectId, scheduleId) {
const [pId, sId] = [projectId, scheduleId].map(encodeURIComponent);
return RequestHelper.delete(this, `projects/${pId}/pipeline_schedules/${sId}`);
}
show(projectId, scheduleId) {
show(projectId: ProjectId, scheduleId) {
const [pId, sId] = [projectId, scheduleId].map(encodeURIComponent);
return RequestHelper.get(this, `projects/${pId}/pipeline_schedules/${sId}`);
}
takeOwnership(projectId, scheduleId) {
takeOwnership(projectId: ProjectId, scheduleId) {
const [pId, sId] = [projectId, scheduleId].map(encodeURIComponent);
return RequestHelper.post(this, `projects/${pId}/pipeline_schedules/${sId}/take_ownership`);

View File

@ -1,37 +1,37 @@
import { BaseService, RequestHelper } from '../infrastructure';
class Pipelines extends BaseService {
all(projectId, options = {}) {
all(projectId: ProjectId, options = {}) {
const pId = encodeURIComponent(projectId);
return RequestHelper.get(this, `projects/${pId}/pipelines`, options);
}
create(projectId, ref) {
create(projectId: ProjectId, ref) {
const pId = encodeURIComponent(projectId);
return RequestHelper.post(this, `projects/${pId}/pipeline`, { ref });
}
show(projectId, pipelineId) {
show(projectId: ProjectId, pipelineId) {
const pId = encodeURIComponent(projectId);
return RequestHelper.get(this, `projects/${pId}/pipelines/${pipelineId}`);
}
retry(projectId, pipelineId) {
retry(projectId: ProjectId, pipelineId) {
const pId = encodeURIComponent(projectId);
return RequestHelper.post(this, `projects/${pId}/pipelines/${pipelineId}/retry`);
}
cancel(projectId, pipelineId) {
cancel(projectId: ProjectId, pipelineId) {
const pId = encodeURIComponent(projectId);
return RequestHelper.post(this, `projects/${pId}/pipelines/${pipelineId}/cancel`);
}
showJobs(projectId, pipelineId, options) {
showJobs(projectId: ProjectId, pipelineId, options) {
const pId = encodeURIComponent(projectId);
return RequestHelper.get(this, `projects/${pId}/pipelines/${pipelineId}/jobs`, options);

View File

@ -1,31 +1,31 @@
import { BaseService, RequestHelper } from '../infrastructure';
class ProjectHooks extends BaseService {
all(projectId, options) {
all(projectId: ProjectId, options) {
const pId = encodeURIComponent(projectId);
return RequestHelper.get(this, `projects/${pId}/hooks`, options);
}
show(projectId, hookId) {
show(projectId: ProjectId, hookId) {
const [pId, hId] = [projectId, hookId].map(encodeURIComponent);
return RequestHelper.get(this, `projects/${pId}/hooks/${hId}`);
}
add(projectId, url, options) {
add(projectId: ProjectId, url, options) {
const pId = encodeURIComponent(projectId);
return RequestHelper.post(this, `projects/${pId}/hooks`, { url, ...options });
}
edit(projectId, hookId, url, options) {
edit(projectId: ProjectId, hookId, url, options) {
const [pId, hId] = [projectId, hookId].map(encodeURIComponent);
return RequestHelper.put(this, `projects/${pId}/hooks/${hId}`, { url, ...options });
}
remove(projectId, hookId) {
remove(projectId: ProjectId, hookId) {
const [pId, hId] = [projectId, hookId].map(encodeURIComponent);
return RequestHelper.delete(this, `projects/${pId}/hooks/${hId}`);

View File

@ -1,13 +1,13 @@
import { BaseService, RequestHelper } from '../infrastructure';
class ProjectImportExport extends BaseService {
download(projectId) {
download(projectId: ProjectId) {
const pId = encodeURIComponent(projectId);
return RequestHelper.get(this, `projects/${pId}/export/download`);
}
exportStatus(projectId) {
exportStatus(projectId: ProjectId) {
const pId = encodeURIComponent(projectId);
return RequestHelper.get(this, `projects/${pId}/export`);
@ -17,13 +17,13 @@ class ProjectImportExport extends BaseService {
return RequestHelper.post(this, 'projects/import', { file, path, ...options });
}
importStatus(projectId) {
importStatus(projectId: ProjectId) {
const pId = encodeURIComponent(projectId);
return RequestHelper.get(this, `projects/${pId}/import`);
}
schedule(projectId, options) {
schedule(projectId: ProjectId, options) {
const pId = encodeURIComponent(projectId);
return RequestHelper.post(this, `projects/${pId}/export`, options);

View File

@ -7,19 +7,19 @@ const VISIBILITY_LEVELS = {
};
class ProjectSnippets extends BaseService {
all(projectId, options = {}) {
all(projectId: ProjectId, options = {}) {
const pId = encodeURIComponent(projectId);
return RequestHelper.get(this, `projects/${pId}/snippets`, options);
}
content(projectId, snippetId) {
content(projectId: ProjectId, snippetId) {
const [pId, sId] = [projectId, snippetId].map(encodeURIComponent);
return RequestHelper.get(this, `projects/${pId}/snippets/${sId}/raw`);
}
create(projectId, title, fileName, code, visibility, options = {}) {
create(projectId: ProjectId, title, fileName, code, visibility, options = {}) {
const pId = encodeURIComponent(projectId);
return RequestHelper.post(this, `projects/${pId}/snippets`, {
@ -31,25 +31,25 @@ class ProjectSnippets extends BaseService {
});
}
edit(projectId, snippetId, options) {
edit(projectId: ProjectId, snippetId, options) {
const [pId, sId] = [projectId, snippetId].map(encodeURIComponent);
return RequestHelper.put(this, `projects/${pId}/snippets/${sId}`, options);
}
remove(projectId, snippetId) {
remove(projectId: ProjectId, snippetId) {
const [pId, sId] = [projectId, snippetId].map(encodeURIComponent);
return RequestHelper.delete(this, `projects/${pId}/snippets/${sId}`);
}
show(projectId, snippetId) {
show(projectId: ProjectId, snippetId) {
const [pId, sId] = [projectId, snippetId].map(encodeURIComponent);
return RequestHelper.get(this, `projects/${pId}/snippets/${sId}`);
}
userAgentDetails(projectId, snippetId) {
userAgentDetails(projectId: ProjectId, snippetId) {
const [pId, sId] = [projectId, snippetId].map(encodeURIComponent);
return RequestHelper.get(this, `projects/${pId}/snippets/${sId}/user_agent_detail`);

View File

@ -8,7 +8,7 @@ class Projects extends BaseService {
return RequestHelper.get(this, 'projects', options);
}
archive(projectId) {
archive(projectId: ProjectId) {
const pId = encodeURIComponent(projectId);
return RequestHelper.post(this, `projects/${pId}/archive`);
@ -20,13 +20,13 @@ class Projects extends BaseService {
return RequestHelper.post(this, url, options);
}
edit(projectId, options) {
edit(projectId: ProjectId, options) {
const pId = encodeURIComponent(projectId);
return RequestHelper.put(this, `projects/${pId}`, options);
}
events(projectId, options) {
events(projectId: ProjectId, options) {
validateEventOptions(options.action, options.targetType);
const pId = encodeURIComponent(projectId);
@ -34,41 +34,41 @@ class Projects extends BaseService {
return RequestHelper.get(this, `projects/${pId}/events`, options);
}
fork(projectId, options) {
fork(projectId: ProjectId, options) {
const pId = encodeURIComponent(projectId);
return RequestHelper.post(this, `projects/${pId}/fork`, options);
}
forks(projectId, options) {
forks(projectId: ProjectId, options) {
const pId = encodeURIComponent(projectId);
return RequestHelper.get(this, `projects/${pId}/forks`, options);
}
languages(projectId) {
languages(projectId: ProjectId) {
const pId = encodeURIComponent(projectId);
return RequestHelper.get(this, `projects/${pId}/languages`);
}
mirrorPull(projectId) {
mirrorPull(projectId: ProjectId) {
const pId = encodeURIComponent(projectId);
return RequestHelper.post(this, `projects/${pId}/mirror/pull`);
}
remove(projectId) {
remove(projectId: ProjectId) {
const pId = encodeURIComponent(projectId);
return RequestHelper.delete(this, `projects/${pId}`);
}
search(projectName) {
search(projectName: string) {
return RequestHelper.get(this, 'projects', { search: projectName });
}
share(projectId, groupId, groupAccess, options) {
share(projectId: ProjectId, groupId, groupAccess, options) {
const pId = encodeURIComponent(projectId);
if (!groupId || !groupAccess) throw new Error('Missing required arguments');
@ -76,54 +76,54 @@ class Projects extends BaseService {
return RequestHelper.post(this, `projects/${pId}/share`, { groupId, groupAccess, ...options });
}
show(projectId, options) {
show(projectId: ProjectId, options) {
const pId = encodeURIComponent(projectId);
return RequestHelper.get(this, `projects/${pId}`, options);
}
star(projectId) {
star(projectId: ProjectId) {
const pId = encodeURIComponent(projectId);
return RequestHelper.post(this, `projects/${pId}/star`);
}
statuses(projectId, sha, state, options) {
statuses(projectId: ProjectId, sha, state, options) {
const pId = encodeURIComponent(projectId);
return RequestHelper.post(this, `projects/${pId}/statuses/${sha}`, { state, ...options });
}
transfer(projectId, namespace) {
transfer(projectId: ProjectId, namespace) {
const pId = encodeURIComponent(projectId);
return RequestHelper.put(this, `projects/${pId}/transfer`, namespace);
}
unarchive(projectId) {
unarchive(projectId: ProjectId) {
const pId = encodeURIComponent(projectId);
return RequestHelper.post(this, `projects/${pId}/unarchive`);
}
unshare(projectId, groupId) {
unshare(projectId: ProjectId, groupId) {
const [pId, gId] = [projectId, groupId].map(encodeURIComponent);
return RequestHelper.delete(this, `projects/${pId}/share${gId}`);
}
unstar(projectId) {
unstar(projectId: ProjectId) {
const pId = encodeURIComponent(projectId);
return RequestHelper.post(this, `projects/${pId}/unstar`);
}
updatePushRule(projectId, options) {
updatePushRule(projectId: ProjectId, options) {
const pId = encodeURIComponent(projectId);
return RequestHelper.put(this, `projects/${pId}/push_rule`, options);
}
upload(projectId, filePath, { fileName = Path.basename(filePath) } = {}) {
upload(projectId: ProjectId, filePath, { fileName = Path.basename(filePath) } = {}) {
const pId = encodeURIComponent(projectId);
const file = Fs.readFileSync(filePath);

View File

@ -1,13 +1,13 @@
import { BaseService, RequestHelper } from '../infrastructure';
class ProtectedBranches extends BaseService {
all(projectId, options) {
all(projectId: ProjectId, options) {
const pId = encodeURIComponent(projectId);
return RequestHelper.get(this, `projects/${pId}/protected_branches`, options);
}
protect(projectId, branchName, options) {
protect(projectId: ProjectId, branchName, options) {
const pId = encodeURIComponent(projectId);
return RequestHelper.post(this, `projects/${pId}/protected_branches`, {
@ -16,13 +16,13 @@ class ProtectedBranches extends BaseService {
});
}
show(projectId, branchName) {
show(projectId: ProjectId, branchName) {
const [pId, bName] = [projectId, branchName].map(encodeURIComponent);
return RequestHelper.get(this, `projects/${pId}/protected_branches/${bName}`);
}
unprotect(projectId, branchName) {
unprotect(projectId: ProjectId, branchName) {
const [pId, bName] = [projectId, branchName].map(encodeURIComponent);
return RequestHelper.delete(this, `projects/${pId}/protected_branches/${bName}`);

View File

@ -1,13 +1,13 @@
import { BaseService, RequestHelper } from '../infrastructure';
class PushRule extends BaseService {
create(projectId, options) {
create(projectId: ProjectId, options) {
const pId = encodeURIComponent(projectId);
return RequestHelper.post(this, `projects/${pId}/push_rule`, options);
}
async edit(projectId, { upsert = false, ...options } = {}) {
async edit(projectId: ProjectId, { upsert = false, ...options } = {}) {
const pId = encodeURIComponent(projectId);
if (upsert) {
@ -19,13 +19,13 @@ class PushRule extends BaseService {
return RequestHelper.put(this, `projects/${pId}/push_rule`, options);
}
remove(projectId) {
remove(projectId: ProjectId) {
const pId = encodeURIComponent(projectId);
return RequestHelper.delete(this, `projects/${pId}/push_rule`);
}
show(projectId) {
show(projectId: ProjectId) {
const pId = encodeURIComponent(projectId);
return RequestHelper.get(this, `projects/${pId}/push_rule`);

View File

@ -1,7 +1,7 @@
import { BaseService, RequestHelper } from '../infrastructure';
class Repositories extends BaseService {
compare(projectId, from, to) {
compare(projectId: ProjectId, from, to) {
const pId = encodeURIComponent(projectId);
return RequestHelper.get(this, `projects/${pId}/repository/compare`, {
@ -10,13 +10,13 @@ class Repositories extends BaseService {
});
}
contributors(projectId) {
contributors(projectId: ProjectId) {
const pId = encodeURIComponent(projectId);
return RequestHelper.get(this, `projects/${pId}/repository/contributors`);
}
showArchive(projectId, { sha }) {
showArchive(projectId: ProjectId, { sha }) {
const pId = encodeURIComponent(projectId);
return RequestHelper.get(this, `projects/${pId}/repository/archive`, {
@ -24,19 +24,19 @@ class Repositories extends BaseService {
});
}
showBlob(projectId, sha) {
showBlob(projectId: ProjectId, sha) {
const pId = encodeURIComponent(projectId);
return RequestHelper.get(this, `projects/${pId}/repository/blobs/${sha}`);
}
showBlobRaw(projectId, sha) {
showBlobRaw(projectId: ProjectId, sha) {
const pId = encodeURIComponent(projectId);
return RequestHelper.get(this, `projects/${pId}/repository/blobs/${sha}/raw`);
}
tree(projectId, options) {
tree(projectId: ProjectId, options) {
const pId = encodeURIComponent(projectId);
return RequestHelper.get(this, `projects/${pId}/repository/tree`, options);

View File

@ -1,7 +1,7 @@
import { BaseService, RequestHelper } from '../infrastructure';
class RepositoryFiles extends BaseService {
create(projectId, filePath, branch, options) {
create(projectId: ProjectId, filePath, branch, options) {
const [pId, path] = [projectId, filePath].map(encodeURIComponent);
return RequestHelper.post(this, `projects/${pId}/repository/files/${path}`, {
@ -10,7 +10,7 @@ class RepositoryFiles extends BaseService {
});
}
edit(projectId, filePath, branch, options) {
edit(projectId: ProjectId, filePath, branch, options) {
const [pId, path] = [projectId, filePath].map(encodeURIComponent);
return RequestHelper.put(this, `projects/${pId}/repository/files/${path}`, {
@ -19,7 +19,7 @@ class RepositoryFiles extends BaseService {
});
}
remove(projectId, filePath, branch, options) {
remove(projectId: ProjectId, filePath, branch, options) {
const [pId, path] = [projectId, filePath].map(encodeURIComponent);
return RequestHelper.delete(this, `projects/${pId}/repository/files/${path}`, {
@ -28,7 +28,7 @@ class RepositoryFiles extends BaseService {
});
}
show(projectId, filePath, ref) {
show(projectId: ProjectId, filePath, ref) {
const [pId, path] = [projectId, filePath].map(encodeURIComponent);
return RequestHelper.get(this, `projects/${pId}/repository/files/${path}`, {
@ -36,7 +36,7 @@ class RepositoryFiles extends BaseService {
});
}
showRaw(projectId, filePath, ref) {
showRaw(projectId: ProjectId, filePath, ref) {
const [pId, path] = [projectId, filePath].map(encodeURIComponent);
return RequestHelper.get(this, `projects/${pId}/repository/files/${path}/raw`, { ref });

View File

@ -1,7 +1,7 @@
import { BaseService, RequestHelper } from '../infrastructure';
interface RunnersOptions {
projectId?: string;
projectId?: ProjectId;
}
class Runners extends BaseService {
all({ projectId, ...options }: RunnersOptions = {}) {
@ -20,13 +20,13 @@ class Runners extends BaseService {
return RequestHelper.put(this, `runners/${rId}`, attributes);
}
enable(projectId, runnerId) {
enable(projectId: ProjectId, runnerId) {
const [pId, rId] = [projectId, runnerId].map(encodeURIComponent);
return RequestHelper.post(this, `projects/${pId}/runners`, { runnerId: rId });
}
disable(projectId, runnerId) {
disable(projectId: ProjectId, runnerId) {
const [pId, rId] = [projectId, runnerId].map(encodeURIComponent);
return RequestHelper.delete(this, `projects/${pId}/runners/${rId}`);

View File

@ -1,7 +1,7 @@
import { BaseService, RequestHelper } from '../infrastructure';
interface SearchOptions {
projectId?: string;
projectId?: ProjectId;
groupId?: string;
}
class Search extends BaseService {

View File

@ -1,19 +1,19 @@
import { BaseService, RequestHelper } from '../infrastructure';
class Services extends BaseService {
edit(projectId, serviceName, options) {
edit(projectId: ProjectId, serviceName, options) {
const pId = encodeURIComponent(projectId);
return RequestHelper.put(this, `projects/${pId}/services/${serviceName}`, options);
}
remove(projectId, serviceName) {
remove(projectId: ProjectId, serviceName) {
const pId = encodeURIComponent(projectId);
return RequestHelper.delete(this, `projects/${pId}/services/${serviceName}`);
}
show(projectId, serviceName) {
show(projectId: ProjectId, serviceName) {
const pId = encodeURIComponent(projectId);
return RequestHelper.get(this, `projects/${pId}/services/${serviceName}`);

View File

@ -15,7 +15,7 @@ class SystemHooks extends BaseService {
return RequestHelper.put(this, `hooks/${hId}`, { url, ...options });
}
remove(projectId, hookId) {
remove(projectId: ProjectId, hookId) {
const hId = encodeURIComponent(hookId);
return RequestHelper.delete(this, `hooks/${hId}`);

View File

@ -1,25 +1,25 @@
import { BaseService, RequestHelper } from '../infrastructure';
class Tags extends BaseService {
all(projectId, options) {
all(projectId: ProjectId, options) {
const pId = encodeURIComponent(projectId);
return RequestHelper.get(this, `projects/${pId}/repository/tags`, options);
}
create(projectId, options) {
create(projectId: ProjectId, options) {
const pId = encodeURIComponent(projectId);
return RequestHelper.post(this, `projects/${pId}/repository/tags`, options);
}
remove(projectId, tagName) {
remove(projectId: ProjectId, tagName: string) {
const [pId, tId] = [projectId, tagName].map(encodeURIComponent);
return RequestHelper.delete(this, `projects/${pId}/repository/tags/${tId}`);
}
show(projectId, tagName) {
show(projectId: ProjectId, tagName: string) {
const [pId, tId] = [projectId, tagName].map(encodeURIComponent);
return RequestHelper.get(this, `projects/${pId}/repository/tags/${tId}`);

View File

@ -8,7 +8,7 @@ class Todos extends BaseService {
return RequestHelper.get(this, 'todos', options);
}
create(projectId, mergerequestId) {
create(projectId: ProjectId, mergerequestId) {
const [pId, mId] = [projectId, mergerequestId].map(encodeURIComponent);
return RequestHelper.post(this, `projects/${pId}/merge_requests/${mId}/todo`);

View File

@ -1,31 +1,31 @@
import { BaseService, RequestHelper } from '../infrastructure';
class Triggers extends BaseService {
add(projectId, options) {
add(projectId: ProjectId, options) {
const pId = encodeURIComponent(projectId);
return RequestHelper.post(this, `projects/${pId}/triggers`, options);
}
all(projectId) {
all(projectId: ProjectId) {
const pId = encodeURIComponent(projectId);
return RequestHelper.get(this, `projects/${pId}/triggers`);
}
edit(projectId, triggerId, options) {
edit(projectId: ProjectId, triggerId, options) {
const [pId, tId] = [projectId, triggerId].map(encodeURIComponent);
return RequestHelper.put(this, `projects/${pId}/triggers/${tId}`, options);
}
remove(projectId, triggerId) {
remove(projectId: ProjectId, triggerId) {
const [pId, tId] = [projectId, triggerId].map(encodeURIComponent);
return RequestHelper.delete(this, `projects/${pId}/triggers/${tId}`);
}
show(projectId, triggerId) {
show(projectId: ProjectId, triggerId) {
const [pId, tId] = [projectId, triggerId].map(encodeURIComponent);
return RequestHelper.get(this, `projects/${pId}/triggers/${tId}`);

View File

@ -1,31 +1,31 @@
import { BaseService, RequestHelper } from '../infrastructure';
class Wikis extends BaseService {
all(projectId, options) {
all(projectId: ProjectId, options) {
const pId = encodeURIComponent(projectId);
return RequestHelper.get(this, `projects/${pId}/wikis`, options);
}
create(projectId, options) {
create(projectId: ProjectId, options) {
const pId = encodeURIComponent(projectId);
return RequestHelper.post(this, `projects/${pId}/wikis`, options);
}
edit(projectId, slug, options) {
edit(projectId: ProjectId, slug, options) {
const pId = encodeURIComponent(projectId);
return RequestHelper.put(this, `projects/${pId}/wikis/${slug}`, options);
}
show(projectId, slug) {
show(projectId: ProjectId, slug) {
const pId = encodeURIComponent(projectId);
return RequestHelper.get(this, `projects/${pId}/wikis/${slug}`);
}
remove(projectId, slug) {
remove(projectId: ProjectId, slug) {
const pId = encodeURIComponent(projectId);
return RequestHelper.delete(this, `projects/${pId}/wikis/${slug}`);

View File

@ -2,7 +2,12 @@ import URLJoin from 'url-join';
import { BaseService, RequestHelper } from '../infrastructure';
import { BaseModelContructorOptions } from '../infrastructure/BaseService';
function url(projectId, resourceType, resourceId, noteId) {
function url(
projectId: ProjectId,
resourceType: ResourceType,
resourceId: ResourceId,
noteId: NoteId,
) {
const [pId, rId] = [projectId, resourceId].map(encodeURIComponent);
let output = `${pId}/${resourceType}/${rId}/`;
@ -18,28 +23,28 @@ function url(projectId, resourceType, resourceId, noteId) {
class ResourceAwardsEmojis extends BaseService {
protected resourceType: temporaryAny;
constructor(resourceType, baseParams: BaseModelContructorOptions) {
constructor(resourceType: string, baseParams: BaseModelContructorOptions) {
super(baseParams);
this.url = URLJoin(this.url, 'projects');
this.resourceType = resourceType;
}
all(projectId, resourceId, options, noteId) {
all(projectId: ProjectId, resourceId: ResourceId, options, noteId: NoteId) {
return RequestHelper.get(this, url(projectId, this.resourceType, resourceId, noteId), options);
}
award(projectId, resourceId, name, noteId) {
award(projectId: ProjectId, resourceId: ResourceId, name, noteId: NoteId) {
return RequestHelper.post(this, url(projectId, this.resourceType, resourceId, noteId), {
name,
});
}
remove(projectId, resourceId, awardId, noteId) {
remove(projectId: ProjectId, resourceId: ResourceId, awardId, noteId: NoteId) {
return RequestHelper.delete(this, url(projectId, this.resourceType, resourceId, noteId));
}
show(projectId, resourceId, awardId, noteId) {
show(projectId: ProjectId, resourceId: ResourceId, awardId, noteId: NoteId) {
return RequestHelper.get(this, url(projectId, this.resourceType, resourceId, noteId));
}
}

View File

@ -3,7 +3,7 @@ import { BaseService, RequestHelper } from '../infrastructure';
import { BaseModelContructorOptions } from '../infrastructure/BaseService';
class ResourceBadges extends BaseService {
constructor(resourceType, baseParams: BaseModelContructorOptions) {
constructor(resourceType: string, baseParams: BaseModelContructorOptions) {
super(baseParams);
this.url = URLJoin(this.url, resourceType);

View File

@ -3,7 +3,7 @@ import { BaseService, RequestHelper } from '../infrastructure';
import { BaseModelContructorOptions } from '../infrastructure/BaseService';
class ResourceCustomAttributes extends BaseService {
constructor(resourceType, baseParams: BaseModelContructorOptions) {
constructor(resourceType: string, baseParams: BaseModelContructorOptions) {
super(baseParams);
this.url = URLJoin(this.url, resourceType);

View File

@ -1,17 +1,18 @@
import URLJoin from 'url-join';
import { BaseService, RequestHelper } from '../infrastructure';
import { BaseModelContructorOptions } from '../infrastructure/BaseService';
class ResourceDiscussions extends BaseService {
protected resource2Type: temporaryAny;
protected resource2Type: string;
constructor(resourceType, resource2Type, baseParams) {
constructor(resourceType: string, resource2Type: string, baseParams: BaseModelContructorOptions) {
super(baseParams);
this.url = URLJoin(this.url, resourceType);
this.resource2Type = resource2Type;
}
addNote(resourceId, resource2Id, discussiodId, noteId, options) {
addNote(resourceId: string, resource2Id: string, discussiodId: string, noteId: NoteId, options) {
if (!options.body) throw new Error('Missing required property: body');
const [rId, r2Id, dId, nId] = [resourceId, resource2Id, discussiodId, noteId]
@ -34,14 +35,14 @@ class ResourceDiscussions extends BaseService {
return RequestHelper.post(this, `${rId}/${this.resource2Type}/${r2Id}/discussions`, options);
}
editNote(resourceId, resource2Id, discussiodId, noteId, body) {
editNote(resourceId, resource2Id, discussiodId, noteId: NoteId, body) {
const [rId, r2Id, dId, nId] = [resourceId, resource2Id, discussiodId, noteId]
.map(encodeURIComponent);
return RequestHelper.put(this, `${rId}/${this.resource2Type}/${r2Id}/discussions/${dId}/notes/${nId}`, { body });
}
removeNote(resourceId, resource2Id, discussiodId, noteId) {
removeNote(resourceId, resource2Id, discussiodId, noteId: NoteId) {
const [rId, r2Id, dId, nId] = [resourceId, resource2Id, discussiodId, noteId]
.map(encodeURIComponent);

View File

@ -3,7 +3,7 @@ import { BaseService, RequestHelper } from '../infrastructure';
import { BaseModelContructorOptions } from '../infrastructure/BaseService';
class ResourceIssueBoards extends BaseService {
constructor(resourceType, baseParams: BaseModelContructorOptions) {
constructor(resourceType: string, baseParams: BaseModelContructorOptions) {
super(baseParams);
this.url = URLJoin(this.url, resourceType);

View File

@ -3,7 +3,7 @@ import { BaseService, RequestHelper } from '../infrastructure';
import { BaseModelContructorOptions } from '../infrastructure/BaseService';
class ResourceMembers extends BaseService {
constructor(resourceType, baseParams: BaseModelContructorOptions) {
constructor(resourceType: string, baseParams: BaseModelContructorOptions) {
super(baseParams);
this.url = URLJoin(this.url, resourceType);

View File

@ -3,7 +3,7 @@ import { BaseService, RequestHelper } from '../infrastructure';
import { BaseModelContructorOptions } from '../infrastructure/BaseService';
class ResourceMilestones extends BaseService {
constructor(resourceType, baseParams: BaseModelContructorOptions) {
constructor(resourceType: string, baseParams: BaseModelContructorOptions) {
super(baseParams);
this.url = URLJoin(this.url, resourceType);

View File

@ -1,10 +1,11 @@
import URLJoin from 'url-join';
import { BaseService, RequestHelper } from '../infrastructure';
import { BaseModelContructorOptions } from '../infrastructure/BaseService';
class ResourceNotes extends BaseService {
protected resource2Type: temporaryAny;
protected resource2Type: string;
constructor(resourceType, resource2Type, baseParams) {
constructor(resourceType: string, resource2Type: string, baseParams: BaseModelContructorOptions) {
super(baseParams);
this.url = URLJoin(this.url, resourceType);
@ -25,7 +26,7 @@ class ResourceNotes extends BaseService {
return RequestHelper.post(this, `${rId}/${this.resource2Type}/${r2Id}/notes`, options);
}
edit(resourceId, resource2Id, noteId, options) {
edit(resourceId, resource2Id, noteId: NoteId, options) {
if (!options.body) throw new Error('Missing required property: body');
const [rId, r2Id, nId] = [resourceId, resource2Id, noteId].map(encodeURIComponent);
@ -33,13 +34,13 @@ class ResourceNotes extends BaseService {
return RequestHelper.put(this, `${rId}/${this.resource2Type}/${r2Id}/notes/${nId}`, options);
}
remove(resourceId, resource2Id, noteId) {
remove(resourceId, resource2Id, noteId: NoteId) {
const [rId, r2Id, nId] = [resourceId, resource2Id, noteId].map(encodeURIComponent);
return RequestHelper.delete(this, `${rId}/${this.resource2Type}/${r2Id}/notes/${nId}`);
}
show(resourceId, resource2Id, noteId) {
show(resourceId, resource2Id, noteId: NoteId) {
const [rId, r2Id, nId] = [resourceId, resource2Id, noteId].map(encodeURIComponent);
return RequestHelper.get(this, `${rId}/${this.resource2Type}/${r2Id}/notes/${nId}`);

View File

@ -3,7 +3,7 @@ import { BaseService, RequestHelper } from '../infrastructure';
import { BaseModelContructorOptions } from '../infrastructure/BaseService';
class ResourceTemplates extends BaseService {
constructor(resourceType, baseParams: BaseModelContructorOptions) {
constructor(resourceType: string, baseParams: BaseModelContructorOptions) {
super(baseParams);
this.url = URLJoin(this.url, 'templates', resourceType);

View File

@ -1,6 +1,11 @@
import { BaseService, RequestHelper } from '../infrastructure';
import { BaseModelContructorOptions } from '../infrastructure/BaseService';
const url = (resourceType, resourceId, resource2Type, resource2Id) => {
function url(
resourceType: ResourceType,
resourceId: ResourceId,
resource2Type: Resource2Type,
resource2Id: Resource2Id) {
const [rId, r2Id] = [resourceId, resource2Id].map(encodeURIComponent);
let output = `${resourceType}/${rId}/`;
@ -12,27 +17,31 @@ const url = (resourceType, resourceId, resource2Type, resource2Id) => {
output += 'variables';
return output;
};
}
class ResourceVariables extends BaseService {
protected resourceType: temporaryAny;
protected resource2Type: temporaryAny;
protected resourceType: ResourceType;
protected resource2Type: Resource2Type;
constructor(resourceType, resource2Type, baseParams) {
constructor(
resourceType: ResourceType,
resource2Type: Resource2Type,
baseParams: BaseModelContructorOptions,
) {
super(baseParams);
this.resourceType = resourceType;
this.resource2Type = resource2Type;
}
all(resourceId, resource2Id) {
all(resourceId: ResourceType, resource2Id: Resource2Id) {
return RequestHelper.get(
this,
url(this.resourceType, resourceId, this.resource2Type, resource2Id),
);
}
create(resourceId, resource2Id, options) {
create(resourceId: ResourceType, resource2Id: Resource2Id, options) {
return RequestHelper.post(
this,
url(this.resourceType, resourceId, this.resource2Type, resource2Id),
@ -40,7 +49,7 @@ class ResourceVariables extends BaseService {
);
}
edit(resourceId, resource2Id, keyId, options) {
edit(resourceId: ResourceType, resource2Id: Resource2Id, keyId, options) {
const kId = encodeURIComponent(keyId);
return RequestHelper.put(
@ -50,7 +59,7 @@ class ResourceVariables extends BaseService {
);
}
show(resourceId, resource2Id, keyId) {
show(resourceId: ResourceType, resource2Id: Resource2Id, keyId) {
const kId = encodeURIComponent(keyId);
return RequestHelper.get(
@ -59,7 +68,7 @@ class ResourceVariables extends BaseService {
);
}
remove(resourceId, resource2Id, keyId) {
remove(resourceId: ResourceType, resource2Id: Resource2Id, keyId) {
const kId = encodeURIComponent(keyId);
return RequestHelper.delete(

11
src/types.d.ts vendored Normal file
View File

@ -0,0 +1,11 @@
type temporaryAny = any;
type UserIdOptions = { userId?: string };
type ResourceType = string; // see if we can narrow the type to string literals
type ResourceId = string; // see if we can narrow the type to string literals
type Resource2Type = string; // see if we can narrow the type to string literals
type Resource2Id = string; // see if we can narrow the type to string literals
type NoteId = string; // see if `| number` is a valid type
type ProjectId = string; // see if `| number` is a valid type
type KeyId = string; // see if `| number` is a valid type

View File

@ -1,6 +0,0 @@
import {} from '../src/index';
declare global {
type temporaryAny = any;
type UserIdOptions = { userId?: string };
}