39 lines
912 B
TypeScript
39 lines
912 B
TypeScript
import db from "../../db";
|
|
|
|
const getFullUserMap = async (fullPipelineList: GitlabPipelineDetail[][]) => {
|
|
const userList: GitlabUser[] = [];
|
|
fullPipelineList.forEach((fullPipeline) => {
|
|
fullPipeline.forEach((item) => {
|
|
if (item.user && !userList.find((v) => v.id === item.user?.id)) {
|
|
userList.push(item.user);
|
|
}
|
|
});
|
|
});
|
|
|
|
const dbUserInfo = await Promise.all(
|
|
userList
|
|
.filter((v) => v.id !== 0)
|
|
.map((user) =>
|
|
db.user.upsert({
|
|
user_id: user.id,
|
|
username: user.username,
|
|
name: user.name,
|
|
avatar_url: user.avatar_url,
|
|
web_url: user.web_url,
|
|
})
|
|
)
|
|
);
|
|
const userMap: Record<string, string> = {};
|
|
dbUserInfo.forEach((item) => {
|
|
if (!item) return;
|
|
userMap[item.user_id] = item.id;
|
|
});
|
|
return userMap;
|
|
};
|
|
|
|
const manageUser = {
|
|
getFullUserMap,
|
|
};
|
|
|
|
export default manageUser;
|