В redmine-data-loader добавлены функции для загрузки пользователей
This commit is contained in:
parent
b20ecee667
commit
318a0db54c
2 changed files with 27 additions and 1 deletions
|
|
@ -23,7 +23,7 @@ export class RedmineDataLoader {
|
|||
const resp = await axios.get(url);
|
||||
if (!resp || !resp.data || !resp.data.issue) {
|
||||
this.logger.error(
|
||||
`Failed to load data for from redmine, issueNumber = ${issueNumber}`,
|
||||
`Failed to load issue from redmine, issueNumber = ${issueNumber}`,
|
||||
);
|
||||
return null;
|
||||
}
|
||||
|
|
@ -33,10 +33,35 @@ export class RedmineDataLoader {
|
|||
return resp.data.issue;
|
||||
}
|
||||
|
||||
async loadUsers(users: number[]): Promise<(RedmineTypes.User | null)[]> {
|
||||
const promises = users.map((user) => this.loadUser(user));
|
||||
return Promise.all(promises);
|
||||
}
|
||||
|
||||
async loadUser(userNumber: number): Promise<RedmineTypes.User | null> {
|
||||
const url = this.getUserUrl(userNumber);
|
||||
const resp = await axios.get(url);
|
||||
if (!resp || !resp.data?.user) {
|
||||
this.logger.error(
|
||||
`Failed to load user from redmine, userNumber = ${userNumber}`,
|
||||
);
|
||||
return null;
|
||||
}
|
||||
const user: RedmineTypes.User = resp.data.user;
|
||||
this.logger.debug(
|
||||
`Loaded user, userNumber = ${userNumber}, login = ${user.login}, firstname = ${user.firstname}, lastname = ${user.lastname}`,
|
||||
);
|
||||
return user;
|
||||
}
|
||||
|
||||
private getIssueUrl(issueNumber: number): string {
|
||||
if (typeof this.urlPrefix !== 'string' || this.urlPrefix.length === 0) {
|
||||
throw 'REDMINE_URL_PREFIX is undefined';
|
||||
}
|
||||
return `${this.urlPrefix}/issues/${issueNumber}.json?include=children,journals,relations`;
|
||||
}
|
||||
|
||||
private getUserUrl(userNumber: number): string {
|
||||
return `${this.urlPrefix}/users/${userNumber}.json`;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
1
libs/redmine-types/index.d.ts
vendored
1
libs/redmine-types/index.d.ts
vendored
|
|
@ -91,6 +91,7 @@ export module RedmineTypes {
|
|||
|
||||
export type User = {
|
||||
id: number;
|
||||
login: string;
|
||||
firstname: string;
|
||||
lastname: string;
|
||||
mail: string;
|
||||
|
|
|
|||
Loading…
Reference in a new issue