35 lines
835 B
TypeScript
35 lines
835 B
TypeScript
import { Redmine } from 'bluemine'
|
|
import { CsvEntry } from '../type.ts'
|
|
|
|
async function createUsers(redmine: Redmine, csv: CsvEntry[]) {
|
|
const userIds: number[] = []
|
|
|
|
function capitalize(str: string): string {
|
|
const [first, ...tail] = str.split('')
|
|
return `${first.toLocaleUpperCase()}${
|
|
tail.join('').toLocaleLowerCase()
|
|
}`
|
|
}
|
|
|
|
for (const { firstname, lastname, mail } of csv) {
|
|
const login = `${firstname.toLowerCase()}.${lastname.toLowerCase()}`
|
|
|
|
try {
|
|
const { user } = await redmine.users.create({
|
|
firstname: capitalize(firstname),
|
|
lastname: capitalize(lastname),
|
|
mail: mail,
|
|
login,
|
|
sendCreationMail: true,
|
|
generatePassword: true,
|
|
})
|
|
|
|
userIds.push(user.id)
|
|
} catch {
|
|
console.error(login)
|
|
}
|
|
}
|
|
|
|
await redmine.unstableGroups.create({ name: 'entrepreneur-01-24', userIds })
|
|
}
|