From 7072be94d127da64ebc6b13825c0784a69bf0d01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicole=20Miko=C5=82ajczyk?= Date: Thu, 22 May 2025 20:56:54 +0200 Subject: [PATCH] pl-api: support account creation in pleroma adminapi MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Nicole Mikołajczyk --- packages/pl-api/lib/client.ts | 10 ++++++++++ packages/pl-api/lib/params/admin.ts | 10 ++++++++++ packages/pl-api/package.json | 2 +- 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/packages/pl-api/lib/client.ts b/packages/pl-api/lib/client.ts index 54e3e7c11..12e2b532c 100644 --- a/packages/pl-api/lib/client.ts +++ b/packages/pl-api/lib/client.ts @@ -120,6 +120,7 @@ import type { } from './params/accounts'; import type { AdminAccountAction, + AdminCreateAccountParams, AdminCreateAnnouncementParams, AdminCreateCustomEmojiParams, AdminCreateDomainBlockParams, @@ -3781,6 +3782,15 @@ class PlApiClient { return v.safeParse(adminAccountSchema, response.json).output || {}; }, + /** + * Requires features{@link Features.pleromaAdminAccounts}. + */ + createAccount: async (params: AdminCreateAccountParams) => { + const response = await this.request('/api/v1/admin/accounts', { method: 'POST', body: { users: [params] } }); + + return v.parse(adminAccountSchema, response.json[0]); + }, + /** * Delete an account * Permanently delete data for a suspended account. diff --git a/packages/pl-api/lib/params/admin.ts b/packages/pl-api/lib/params/admin.ts index 55df70b5a..cb9fb3206 100644 --- a/packages/pl-api/lib/params/admin.ts +++ b/packages/pl-api/lib/params/admin.ts @@ -26,6 +26,15 @@ interface AdminGetAccountsParams extends PaginationParams { ip?: string; } +/** + * @category Request params + */ +interface AdminCreateAccountParams { + nickname: string; + email: string; + password: string; +} + /** * @category Request params */ @@ -329,6 +338,7 @@ interface AdminGetGroupsParams { export type { AdminGetAccountsParams, + AdminCreateAccountParams, AdminAccountAction, AdminPerformAccountActionParams, AdminGetDomainBlocksParams, diff --git a/packages/pl-api/package.json b/packages/pl-api/package.json index 22462a567..c62ab1309 100644 --- a/packages/pl-api/package.json +++ b/packages/pl-api/package.json @@ -1,6 +1,6 @@ { "name": "pl-api", - "version": "1.0.0-rc.64", + "version": "1.0.0-rc.65", "type": "module", "homepage": "https://github.com/mkljczk/pl-fe/tree/develop/packages/pl-api", "repository": {