| @@ -10,6 +10,7 @@ import * as ep___admin_meta from './endpoints/admin/meta.js'; | ||||
| import * as ep___admin_abuseUserReports from './endpoints/admin/abuse-user-reports.js'; | ||||
| import * as ep___admin_accounts_create from './endpoints/admin/accounts/create.js'; | ||||
| import * as ep___admin_accounts_delete from './endpoints/admin/accounts/delete.js'; | ||||
| import * as ep___admin_accounts_findByEmail from './endpoints/admin/accounts/find-by-email.js'; | ||||
| import * as ep___admin_ad_create from './endpoints/admin/ad/create.js'; | ||||
| import * as ep___admin_ad_delete from './endpoints/admin/ad/delete.js'; | ||||
| import * as ep___admin_ad_list from './endpoints/admin/ad/list.js'; | ||||
| @@ -368,6 +369,7 @@ const $admin_meta: Provider = { provide: 'ep:admin/meta', useClass: ep___admin_m | ||||
| const $admin_abuseUserReports: Provider = { provide: 'ep:admin/abuse-user-reports', useClass: ep___admin_abuseUserReports.default }; | ||||
| const $admin_accounts_create: Provider = { provide: 'ep:admin/accounts/create', useClass: ep___admin_accounts_create.default }; | ||||
| const $admin_accounts_delete: Provider = { provide: 'ep:admin/accounts/delete', useClass: ep___admin_accounts_delete.default }; | ||||
| const $admin_accounts_findByEmail: Provider = { provide: 'ep:admin/accounts/find-by-email', useClass: ep___admin_accounts_findByEmail.default }; | ||||
| const $admin_ad_create: Provider = { provide: 'ep:admin/ad/create', useClass: ep___admin_ad_create.default }; | ||||
| const $admin_ad_delete: Provider = { provide: 'ep:admin/ad/delete', useClass: ep___admin_ad_delete.default }; | ||||
| const $admin_ad_list: Provider = { provide: 'ep:admin/ad/list', useClass: ep___admin_ad_list.default }; | ||||
| @@ -730,6 +732,7 @@ const $retention: Provider = { provide: 'ep:retention', useClass: ep___retention | ||||
| 		$admin_abuseUserReports, | ||||
| 		$admin_accounts_create, | ||||
| 		$admin_accounts_delete, | ||||
| 		$admin_accounts_findByEmail, | ||||
| 		$admin_ad_create, | ||||
| 		$admin_ad_delete, | ||||
| 		$admin_ad_list, | ||||
| @@ -1086,6 +1089,7 @@ const $retention: Provider = { provide: 'ep:retention', useClass: ep___retention | ||||
| 		$admin_abuseUserReports, | ||||
| 		$admin_accounts_create, | ||||
| 		$admin_accounts_delete, | ||||
| 		$admin_accounts_findByEmail, | ||||
| 		$admin_ad_create, | ||||
| 		$admin_ad_delete, | ||||
| 		$admin_ad_list, | ||||
|   | ||||
| @@ -10,6 +10,7 @@ import * as ep___admin_meta from './endpoints/admin/meta.js'; | ||||
| import * as ep___admin_abuseUserReports from './endpoints/admin/abuse-user-reports.js'; | ||||
| import * as ep___admin_accounts_create from './endpoints/admin/accounts/create.js'; | ||||
| import * as ep___admin_accounts_delete from './endpoints/admin/accounts/delete.js'; | ||||
| import * as ep___admin_accounts_findByEmail from './endpoints/admin/accounts/find-by-email.js'; | ||||
| import * as ep___admin_ad_create from './endpoints/admin/ad/create.js'; | ||||
| import * as ep___admin_ad_delete from './endpoints/admin/ad/delete.js'; | ||||
| import * as ep___admin_ad_list from './endpoints/admin/ad/list.js'; | ||||
| @@ -366,6 +367,7 @@ const eps = [ | ||||
| 	['admin/abuse-user-reports', ep___admin_abuseUserReports], | ||||
| 	['admin/accounts/create', ep___admin_accounts_create], | ||||
| 	['admin/accounts/delete', ep___admin_accounts_delete], | ||||
| 	['admin/accounts/find-by-email', ep___admin_accounts_findByEmail], | ||||
| 	['admin/ad/create', ep___admin_ad_create], | ||||
| 	['admin/ad/delete', ep___admin_ad_delete], | ||||
| 	['admin/ad/list', ep___admin_ad_list], | ||||
|   | ||||
| @@ -0,0 +1,61 @@ | ||||
| /* | ||||
|  * SPDX-FileCopyrightText: syuilo and other misskey contributors | ||||
|  * SPDX-License-Identifier: AGPL-3.0-only | ||||
|  */ | ||||
|  | ||||
| import { Inject, Injectable } from '@nestjs/common'; | ||||
| import { Endpoint } from '@/server/api/endpoint-base.js'; | ||||
| import type { UserProfilesRepository } from '@/models/_.js'; | ||||
| import { DI } from '@/di-symbols.js'; | ||||
| import { UserEntityService } from '@/core/entities/UserEntityService.js'; | ||||
| import { ApiError } from '@/server/api/error.js'; | ||||
|  | ||||
| export const meta = { | ||||
| 	tags: ['admin'], | ||||
|  | ||||
| 	requireCredential: true, | ||||
| 	requireAdmin: true, | ||||
|  | ||||
| 	errors: { | ||||
| 		userNotFound: { | ||||
| 			message: 'No such user who has the email address.', | ||||
| 			code: 'USER_NOT_FOUND', | ||||
| 			id: 'cb865949-8af5-4062-a88c-ef55e8786d1d', | ||||
| 		}, | ||||
| 	}, | ||||
| } as const; | ||||
|  | ||||
| export const paramDef = { | ||||
| 	type: 'object', | ||||
| 	properties: { | ||||
| 		email: { type: 'string' }, | ||||
| 	}, | ||||
| 	required: ['email'], | ||||
| } as const; | ||||
|  | ||||
| @Injectable() | ||||
| export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-disable-line import/no-default-export | ||||
| 	constructor( | ||||
| 		@Inject(DI.userProfilesRepository) | ||||
| 		private userProfilesRepository: UserProfilesRepository, | ||||
|  | ||||
| 		private userEntityService: UserEntityService, | ||||
| 	) { | ||||
| 		super(meta, paramDef, async (ps, me) => { | ||||
| 			const profile = await this.userProfilesRepository.findOne({ | ||||
| 				where: { email: ps.email }, | ||||
| 				relations: ['user'], | ||||
| 			}); | ||||
|  | ||||
| 			if (profile == null) { | ||||
| 				throw new ApiError(meta.errors.userNotFound); | ||||
| 			} | ||||
|  | ||||
| 			const res = await this.userEntityService.pack(profile.user!, null, { | ||||
| 				detail: true, | ||||
| 			}); | ||||
|  | ||||
| 			return res; | ||||
| 		}); | ||||
| 	} | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 syuilo
					syuilo