@rnaga/wp-node
Version:
👉 **[View Full Documentation at rnaga.github.io/wp-node →](https://rnaga.github.io/wp-node/)**
147 lines • 4.99 kB
TypeScript
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