mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-14 05:14:54 +00:00
@@ -1,9 +1,11 @@
|
||||
import {
|
||||
Args,
|
||||
createUnionType,
|
||||
Field,
|
||||
InputType,
|
||||
Int,
|
||||
Mutation,
|
||||
ObjectType,
|
||||
Query,
|
||||
Resolver,
|
||||
} from '@nestjs/graphql';
|
||||
@@ -168,9 +170,29 @@ class CreateUserInput {
|
||||
email!: string;
|
||||
|
||||
@Field(() => String, { nullable: true })
|
||||
name!: string | null;
|
||||
name?: string;
|
||||
}
|
||||
|
||||
@InputType()
|
||||
class ImportUsersInput {
|
||||
@Field(() => [CreateUserInput])
|
||||
users!: CreateUserInput[];
|
||||
}
|
||||
|
||||
@ObjectType()
|
||||
class UserImportFailedType {
|
||||
@Field(() => String)
|
||||
email!: string;
|
||||
|
||||
@Field(() => String)
|
||||
error!: string;
|
||||
}
|
||||
|
||||
const UserImportResultType = createUnionType({
|
||||
name: 'UserImportResultType',
|
||||
types: () => [UserType, UserImportFailedType],
|
||||
});
|
||||
|
||||
@Admin()
|
||||
@Resolver(() => UserType)
|
||||
export class UserManagementResolver {
|
||||
@@ -245,6 +267,27 @@ export class UserManagementResolver {
|
||||
return this.getUser(id);
|
||||
}
|
||||
|
||||
@Mutation(() => [UserImportResultType], {
|
||||
description: 'import users',
|
||||
})
|
||||
async importUsers(
|
||||
@Args({ name: 'input', type: () => ImportUsersInput })
|
||||
input: ImportUsersInput
|
||||
): Promise<(typeof UserImportResultType)[]> {
|
||||
const results = await this.models.user.importUsers(input.users);
|
||||
|
||||
return results.map((result, i) => {
|
||||
if (result.status === 'fulfilled') {
|
||||
return sessionUser(result.value);
|
||||
} else {
|
||||
return {
|
||||
email: input.users[i].email,
|
||||
error: result.reason.message,
|
||||
};
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Mutation(() => DeleteAccount, {
|
||||
description: 'Delete a user account',
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user