mirror of
https://github.com/jdalrymple/gitbeaker.git
synced 2026-01-25 16:04:01 +00:00
51 lines
1.3 KiB
TypeScript
51 lines
1.3 KiB
TypeScript
import URLJoin from 'url-join';
|
|
import { BaseService, RequestHelper } from '../infrastructure';
|
|
import { BaseModelContructorOptions } from '../infrastructure/BaseService';
|
|
|
|
export const ACCESS_LEVELS = {
|
|
GUEST: 10,
|
|
REPORTER: 20,
|
|
DEVELOPER: 30,
|
|
MASTER: 40,
|
|
OWNER: 50,
|
|
};
|
|
|
|
class ResourceAccessRequests extends BaseService {
|
|
protected ACCESS_LEVELS: typeof ACCESS_LEVELS;
|
|
|
|
constructor(resourceType: string, baseParams: BaseModelContructorOptions) {
|
|
super(baseParams);
|
|
|
|
this.url = URLJoin(this.url, resourceType);
|
|
this.ACCESS_LEVELS = ACCESS_LEVELS;
|
|
}
|
|
|
|
all(resourceId: ResourceId) {
|
|
const rId = encodeURIComponent(resourceId);
|
|
|
|
return RequestHelper.get(this, `${rId}/access_requests`);
|
|
}
|
|
|
|
request(resourceId: ResourceId) {
|
|
const rId = encodeURIComponent(resourceId);
|
|
|
|
return RequestHelper.post(this, `${rId}/access_requests`);
|
|
}
|
|
|
|
approve(resourceId: ResourceId, userId: UserId, { accessLevel = 30 }) {
|
|
const [rId, uId] = [resourceId, userId].map(encodeURIComponent);
|
|
|
|
return RequestHelper.post(this, `${rId}/access_requests/${uId}/approve`, {
|
|
accessLevel,
|
|
});
|
|
}
|
|
|
|
deny(resourceId: ResourceId, userId: UserId) {
|
|
const [rId, uId] = [resourceId, userId].map(encodeURIComponent);
|
|
|
|
return RequestHelper.delete(this, `${rId}/access_requests/${uId}`);
|
|
}
|
|
}
|
|
|
|
export default ResourceAccessRequests;
|