UNPKG

@rnaga/wp-node

Version:

👉 **[View Full Documentation at rnaga.github.io/wp-node →](https://rnaga.github.io/wp-node/)**

147 lines • 4.99 kB
import { z } from "zod"; import { Config } from "../config"; import { Components } from "../core/components"; import { User } from "../core/user"; import { UserUtil } from "../core/utils/user.util"; import * as val from "../validators"; import { Crud } from "./crud"; import type * as types from "../types"; type UserUpsert = z.infer<typeof val.trx.userUpsert>; type DataType<T extends "view" | "edit" | "embed"> = T extends "edit" ? Exclude<User["props"], "user_pass"> & { metas: Record<string, any>; roles: string[]; capabilities: string[]; posts: number; } : { ID: number; display_name: string; user_nicename: string; user_login: string; user_url: string; }; type ReturnTypeUserUtilGetSites = Awaited<ReturnType<InstanceType<typeof UserUtil>["getSites"]>>; type ReturnTypeUserUtilGetBlogs = Awaited<ReturnType<InstanceType<typeof UserUtil>["getBlogs"]>>; type Blog = Pick<NonNullable<ReturnTypeUserUtilGetSites["primary_blog"]> & ReturnTypeUserUtilGetBlogs[number], "site_id" | "blog_id" | "blogname" | "rolenames" | "capabilities"> & { blog_roles: Record<string, types.Role> | undefined; }; type DataTypeGetSites = { user: ReturnTypeUserUtilGetSites["user"]; primary_blog: Blog; is_multisite: ReturnTypeUserUtilGetSites["is_multisite"]; sites: undefined | { site_id: number; sitename: string; siteurl: string; is_superadmin: boolean; blogs: Blog[] | undefined; }[]; }; export declare class UserCrud extends Crud { private config; constructor(components: Components, config: Config); getAsUpsert(userId: number): Promise<{ data: { user_pass: string; user_nicename: string; user_email: string; user_activation_key: string; user_status: number; display_name: string; spam: number; deleted: number; user_login: string; user_registered: string | undefined; meta_input: Record<string, any>; nickname: string; first_name: string; last_name: string; description: string; rich_editing: number | "true" | "false"; syntax_highlighting: number | "true" | "false"; comment_shortcuts: number | "true" | "false"; admin_color: string; use_ssl: string; show_admin_bar_front: number | "true" | "false"; user_url?: string | undefined; ID?: number | undefined; role?: string[] | "editor" | "author" | "superadmin" | "administrator" | "contributor" | "subscriber" | "anonymous" | ("editor" | "author" | "superadmin" | "administrator" | "contributor" | "subscriber" | "anonymous")[] | undefined; locale?: string | undefined; }; info: undefined; }>; private checkRoleUpdatePermission; get<T extends "view" | "edit" | "embed">(userId?: number, options?: Partial<{ context: T; }>): Promise<{ data: DataType<T>; info: undefined; }>; getBlogs(userId: number): Promise<{ data: { site_id: number; blog_id: number; blogname: string | undefined; rolenames: string[] | undefined; }[]; info: undefined; }>; getAvailableSites(): Promise<{ data: DataTypeGetSites; info: undefined; }>; create(input: Partial<UserUpsert>): Promise<{ data: types.WpUsers; info: undefined; }>; updateSuperAdmin(userId: number, options?: Partial<{ siteId: number; blogId: number; remove: boolean; }>): Promise<{ data: boolean; info: undefined; }>; updateRole(userId: number, role: string[], options?: Partial<{ siteId: number; blogId: number; }>): Promise<{ data: boolean; info: undefined; }>; update(userId: number, data: Partial<UserUpsert>, options?: Partial<{ siteId: number; blogId: number; attachRole: boolean; removeRole: boolean; }>): Promise<{ data: number; info: undefined; }>; updatePassword(userId: number, newPassword: string): Promise<{ data: number; info: undefined; }>; delete(userId: number, options?: Partial<{ reassign: number; reassignList: Record<number, number>; }>): Promise<{ data: boolean; info: undefined; }>; list<T extends "view" | "edit" | "embed">(args?: Partial<z.infer<typeof val.crud.userListParams>>, options?: { context?: T; }): Promise<{ data: DataType<T>[]; info: { pagination: { page: number; limit: number; totalPage: number; count: number; }; context: string | T; }; }>; } export {}; //# sourceMappingURL=user.crud.d.ts.map