mirror of
https://github.com/jdalrymple/gitbeaker.git
synced 2026-01-25 16:04:01 +00:00
Gitbeaker has been split up into 5 subpackages: gitbeaker-core, gitbeaker-node, gitbeaker-cli, gitbeaker-browser and gitbeaker-requester-utils.
gitbeaker-[node,cli,browser] are enviroment
specific sub packages. For example, if you want to use gitbeaker in a NodeJS environment, use gitbeaker-node. gitbeaker-core is where all the
base logic exists, and gitbeaker-requester-utils is a collection of utility functions for making custom requester libraries.
BREAKING CHANGE: 🧨 This migration requires users to import specific subpackages. For NodeJS
usage, that would be @gitbeaker/node.
125 lines
2.9 KiB
TypeScript
125 lines
2.9 KiB
TypeScript
import {
|
|
BaseRequestOptions,
|
|
BaseService,
|
|
PaginatedRequestOptions,
|
|
RequestHelper,
|
|
Sudo,
|
|
} from '../infrastructure';
|
|
|
|
import { EventOptions } from './Events';
|
|
|
|
// As of GitLab v12.6.2
|
|
export type UserSchema = UserSchemaDefault | UserSchemaCamelized;
|
|
|
|
export interface UserSchemaDefault {
|
|
id: number;
|
|
name: string;
|
|
username: string;
|
|
state: string;
|
|
avatar_url: string;
|
|
web_url: string;
|
|
}
|
|
|
|
export interface UserSchemaCamelized {
|
|
id: number;
|
|
name: string;
|
|
username: string;
|
|
state: string;
|
|
avatarUrl: string;
|
|
webUrl: string;
|
|
}
|
|
|
|
// As of GitLab v12.6.2
|
|
export type UserDetailSchema = UserDetailSchemaDefault | UserSchemaCamelized;
|
|
|
|
export interface UserDetailSchemaDefault extends UserSchemaDefault {
|
|
created_at: Date;
|
|
bio?: string;
|
|
location?: string;
|
|
public_email: string;
|
|
skype: string;
|
|
linkedin: string;
|
|
twitter: string;
|
|
website_url?: string;
|
|
organization?: string;
|
|
}
|
|
|
|
export interface UserDetailSchemaCamelized extends UserSchemaCamelized {
|
|
createdAt: Date;
|
|
bio?: string;
|
|
location?: string;
|
|
publicEmail: string;
|
|
skype: string;
|
|
linkedin: string;
|
|
twitter: string;
|
|
websiteUrl?: string;
|
|
organization?: string;
|
|
}
|
|
|
|
export class Users extends BaseService {
|
|
all(options?: PaginatedRequestOptions) {
|
|
return RequestHelper.get(this, 'users', options);
|
|
}
|
|
|
|
activities(options?: Sudo) {
|
|
return RequestHelper.get(this, 'users/activities', options);
|
|
}
|
|
|
|
projects(userId: number, options?: Sudo) {
|
|
const uId = encodeURIComponent(userId);
|
|
|
|
return RequestHelper.get(this, `users/${uId}/projects`, options);
|
|
}
|
|
|
|
block(userId: number, options?: Sudo) {
|
|
const uId = encodeURIComponent(userId);
|
|
|
|
return RequestHelper.post(this, `users/${uId}/block`, options);
|
|
}
|
|
|
|
create(options?: BaseRequestOptions) {
|
|
return RequestHelper.post(this, 'users', options);
|
|
}
|
|
|
|
current(options?: Sudo) {
|
|
return RequestHelper.get(this, 'user', options);
|
|
}
|
|
|
|
edit(userId: number, options?: BaseRequestOptions) {
|
|
const uId = encodeURIComponent(userId);
|
|
|
|
return RequestHelper.put(this, `users/${uId}`, options);
|
|
}
|
|
|
|
events(userId: number, options?: BaseRequestOptions & EventOptions) {
|
|
const uId = encodeURIComponent(userId);
|
|
|
|
return RequestHelper.get(this, `users/${uId}/events`, options);
|
|
}
|
|
|
|
search(emailOrUsername: string, options?: Sudo) {
|
|
return RequestHelper.get(this, 'users', {
|
|
search: emailOrUsername,
|
|
...options,
|
|
});
|
|
}
|
|
|
|
show(userId: number, options?: BaseRequestOptions) {
|
|
const uId = encodeURIComponent(userId);
|
|
|
|
return RequestHelper.get(this, `users/${uId}`, options);
|
|
}
|
|
|
|
remove(userId: number, options?: Sudo) {
|
|
const uId = encodeURIComponent(userId);
|
|
|
|
return RequestHelper.del(this, `users/${uId}`, options);
|
|
}
|
|
|
|
unblock(userId: number, options?: Sudo) {
|
|
const uId = encodeURIComponent(userId);
|
|
|
|
return RequestHelper.post(this, `users/${uId}/unblock`, options);
|
|
}
|
|
}
|